Skip to content

feat(esp_delta_ota): Added pytest for the delta OTA example#609

Merged
mahavirj merged 6 commits intoespressif:masterfrom
hrushikesh430:feat/added_pytest_for_delta_ota
Mar 4, 2026
Merged

feat(esp_delta_ota): Added pytest for the delta OTA example#609
mahavirj merged 6 commits intoespressif:masterfrom
hrushikesh430:feat/added_pytest_for_delta_ota

Conversation

@hrushikesh430
Copy link
Collaborator

Description

  1. Added pytest for the esp https delta OTA example

@hrushikesh430 hrushikesh430 self-assigned this Nov 11, 2025
@hrushikesh430 hrushikesh430 marked this pull request as draft November 11, 2025 11:20
@hrushikesh430 hrushikesh430 force-pushed the feat/added_pytest_for_delta_ota branch 8 times, most recently from d5697af to 58d4719 Compare November 19, 2025 06:56
@hrushikesh430 hrushikesh430 force-pushed the feat/added_pytest_for_delta_ota branch from 58d4719 to 3cc2130 Compare December 8, 2025 06:44
@hrushikesh430 hrushikesh430 force-pushed the feat/added_pytest_for_delta_ota branch 4 times, most recently from 8a2e671 to a87ade5 Compare December 18, 2025 09:49
@hrushikesh430 hrushikesh430 force-pushed the feat/added_pytest_for_delta_ota branch 6 times, most recently from 6021f5b to 823b8ba Compare January 12, 2026 10:37
@hrushikesh430 hrushikesh430 force-pushed the feat/added_pytest_for_delta_ota branch 5 times, most recently from 0a4ec06 to 23e674c Compare January 20, 2026 11:31
@hrushikesh430 hrushikesh430 force-pushed the feat/added_pytest_for_delta_ota branch from 23e674c to 1290fca Compare January 28, 2026 11:48
@hrushikesh430 hrushikesh430 force-pushed the feat/added_pytest_for_delta_ota branch 3 times, most recently from e48c135 to 2764f8b Compare February 11, 2026 07:08
@hrushikesh430 hrushikesh430 marked this pull request as ready for review February 11, 2026 09:56
@hrushikesh430
Copy link
Collaborator Author

@mahavirj PTAL.

Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds CI-oriented pytest coverage for the esp_delta_ota/examples/https_delta_ota example by introducing a local HTTPS server mode on-device, a partition to hold the generated patch, and build/test manifest rules to enable the app for ESP32 CI runs.

Changes:

  • Added a pytest-based delta OTA flow that generates a patch, writes it to a dedicated patch_data partition, and triggers OTA via a local HTTPS server on the DUT.
  • Added CI-test-only local HTTPS server implementation and Kconfig/CMake integration to embed server certs/keys.
  • Updated partition table and build-app rules to support/enable CI testing for ESP32.

Reviewed changes

Copilot reviewed 14 out of 15 changed files in this pull request and generated 7 comments.

Show a summary per file
File Description
esp_delta_ota/examples/https_delta_ota/tools/requirements.txt Adds esptool dependency for tooling used by pytest/patch generation.
esp_delta_ota/examples/https_delta_ota/sdkconfig.ci CI config enabling stdin URL flow, CI test mode, and HTTPS server features.
esp_delta_ota/examples/https_delta_ota/pytest_https_delta_ota.py New pytest test that generates/writes patch and drives OTA via stdin + local server.
esp_delta_ota/examples/https_delta_ota/partitions.csv Fixes explicit offsets and adds patch_data partition for CI patch serving.
esp_delta_ota/examples/https_delta_ota/main/tests/test_local_server_ota.h Declares CI-test server + stdin parsing helpers.
esp_delta_ota/examples/https_delta_ota/main/tests/test_local_server_ota.c Implements local HTTPS server + stdin parsing to set patch size/url.
esp_delta_ota/examples/https_delta_ota/main/tests/hello_world_esp32.bin Adds prebuilt target binary used as “new firmware” for delta patch generation.
esp_delta_ota/examples/https_delta_ota/main/tests/certs/servercert.pem Adds embedded server certificate for DUT local HTTPS server (CI mode).
esp_delta_ota/examples/https_delta_ota/main/tests/certs/prvtkey.pem Adds embedded private key for DUT local HTTPS server (CI mode).
esp_delta_ota/examples/https_delta_ota/main/main.c Adds stdin URL mode and CI-test local server startup; switches embedded cert symbol names.
esp_delta_ota/examples/https_delta_ota/main/Kconfig.projbuild Adds CI-test enable flag and derived “URL from stdin” config.
esp_delta_ota/examples/https_delta_ota/main/CMakeLists.txt Conditionally includes CI server source and embeds TLS assets.
esp_delta_ota/examples/https_delta_ota/CMakeLists.txt Updates CMake minimum version and includes esp_eth component.
esp_delta_ota/.build-test-rules.yml New build/test enablement rules for esp_delta_ota apps (ESP32 only).
.idf_build_apps.toml Registers esp_delta_ota/.build-test-rules.yml manifest in the root build-apps config.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@hrushikesh430 hrushikesh430 force-pushed the feat/added_pytest_for_delta_ota branch from 5b27326 to 888c5cc Compare February 12, 2026 05:58
Tested both firmware as well as tool in same pytest.
- Unable to connect the python server through device, as the application
runs on the device and pytest runs in the container.
Unable to take the dut.app.partition_table, need to set the
IDF_PATH
@hrushikesh430
Copy link
Collaborator Author

@mahavirj PTAL.

@hrushikesh430 hrushikesh430 force-pushed the feat/added_pytest_for_delta_ota branch from 5ce888b to a7fa79e Compare February 16, 2026 09:34
- Removed esp_eth and esp_https_server dependency from the
CMakelists.txt
@hrushikesh430 hrushikesh430 force-pushed the feat/added_pytest_for_delta_ota branch from 95b87d5 to df4ee62 Compare March 4, 2026 06:41
@mahavirj mahavirj merged commit 0f45b78 into espressif:master Mar 4, 2026
85 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants