From 095bf352a52e84c93ba07c9f6f01520eac3cd1c4 Mon Sep 17 00:00:00 2001 From: Petr Opravil Date: Tue, 7 Apr 2026 13:13:59 +0200 Subject: [PATCH 01/16] fix(components): Add missing override path to ESP32S3_EYE --- bsp/esp32_s3_eye/idf_component.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/bsp/esp32_s3_eye/idf_component.yml b/bsp/esp32_s3_eye/idf_component.yml index 286df3090..861f4df6f 100644 --- a/bsp/esp32_s3_eye/idf_component.yml +++ b/bsp/esp32_s3_eye/idf_component.yml @@ -19,6 +19,7 @@ dependencies: espressif/esp_lvgl_port: version: "^2" public: true + override_path: "../../components/esp_lvgl_port" esp_video: version: "~2.0" From e34e425a5a00054592d145ecf765690d59ad5c15 Mon Sep 17 00:00:00 2001 From: Petr Opravil Date: Thu, 2 Apr 2026 13:14:42 +0200 Subject: [PATCH 02/16] feat(ci): Add benchmark action WIP --- .github/workflows/benchmark.yml | 98 +++++++++++++++++++++++++++++++++ 1 file changed, 98 insertions(+) create mode 100644 .github/workflows/benchmark.yml diff --git a/.github/workflows/benchmark.yml b/.github/workflows/benchmark.yml new file mode 100644 index 000000000..71d4e1d57 --- /dev/null +++ b/.github/workflows/benchmark.yml @@ -0,0 +1,98 @@ +name: Run LVGL benchmarks and publish their outputs + +on: + push: + branches: + - master + schedule: + - cron: '0 20 * * SAT' + # TODO: Remove + pull_request: + types: [opened, reopened, synchronize, labeled] + +permissions: + checks: write + +jobs: + build_benchmarks: + strategy: + matrix: + idf_ver: + - "release-v5.5" + env: + BENCHMARK_PROJECT_DIR: "examples/display_lvgl_benchmark" + runs-on: ubuntu-latest + container: espressif/idf:${{ matrix.idf_ver }} + steps: + - uses: actions/checkout@v6 + - name: Build benchmark binaries + shell: bash + run: | + export IDF_PYTHON_CHECK_CONSTRAINTS=yes + ${IDF_PATH}/install.sh --enable-ci + source ${IDF_PATH}/export.sh + + idf-build-apps build \ + --path ${{ env.BENCHMARK_PROJECT_DIR }} \ + --target all \ + --collect-app-info build_info.json + - uses: actions/upload-artifact@v7 + if: github.repository_owner == 'espressif' + with: + name: app_binaries + path: | + ${{ env.BENCHMARK_PROJECT_DIR }}/build_*/bootloader/bootloader.bin + ${{ env.BENCHMARK_PROJECT_DIR }}/build_*/partition_table/partition-table.bin + ${{ env.BENCHMARK_PROJECT_DIR }}/build_*/*.bin + ${{ env.BENCHMARK_PROJECT_DIR }}/build_*/flasher_args.json + ${{ env.BENCHMARK_PROJECT_DIR }}/build_*/config/sdkconfig.json + build_info*.json + + run_benchmarks: + name: Run benchmarks + if: github.repository_owner == 'espressif' + needs: build_benchmarks + strategy: + matrix: + idf_ver: + - "release-v5.5" + env: + BENCHMARK_PROJECT_DIR: "examples/display_lvgl_benchmark" + TEST_RESULT_NAME: test_results_lvgl_benchmarks + TEST_RESULT_FILE: test_results_lvgl_benchmarks.xml + runs-on: [self-hosted, Linux, bspwall] + container: + image: espressif/idf:${{ matrix.idf_ver }} + options: --privileged -v /dev/boards:/dev/boards/ + steps: + - uses: actions/checkout@v4 + - uses: actions/download-artifact@v4 + with: + pattern: app_binaries + merge-multiple: true + - name: Run apps + run: | + export IDF_PYTHON_CHECK_CONSTRAINTS=yes + ${IDF_PATH}/install.sh --enable-ci --enable-pytest + . ${IDF_PATH}/export.sh + pip install --prefer-binary pytest-custom_exit_code pytest-xdist + + export PYTEST_EMBEDDED_CACHE_DIR=/tmp/pytest-embedded-cache-dummy + mkdir -p /tmp/pytest-embedded-cache-dummy + pytest \ + ${{ env.BENCHMARK_PROJECT_DIR }} \ + -c pytest.ini \ + --suppress-no-test-exit-code \ + --junit-xml=${{ env.TEST_RESULT_FILE }} \ + -p no:idf-ci + - name: Upload test results + uses: actions/upload-artifact@v4 + if: always() + with: + name: ${{ env.TEST_RESULT_NAME }} + path: | + ${{ env.TEST_RESULT_FILE }} + *.log + benchmark_*.md + benchmark_*.json + benchmark.json \ No newline at end of file From 6e7c4f081748b5b7bf65ae636a2083867b64bee9 Mon Sep 17 00:00:00 2001 From: Petr Opravil Date: Thu, 9 Apr 2026 11:34:09 +0200 Subject: [PATCH 03/16] fix(ci): Disable idf-ci plugin --- .github/workflows/build-run-applications.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build-run-applications.yml b/.github/workflows/build-run-applications.yml index 285979b1a..f7f9822b0 100644 --- a/.github/workflows/build-run-applications.yml +++ b/.github/workflows/build-run-applications.yml @@ -177,7 +177,7 @@ jobs: export PYTEST_EMBEDDED_CACHE_DIR=/tmp/pytest-embedded-cache-dummy mkdir -p /tmp/pytest-embedded-cache-dummy - pytest --suppress-no-test-exit-code --ignore-glob '*/managed_components/*' --ignore=.github --junit-xml=${{ env.TEST_RESULT_FILE }} -k "${{ matrix.runner.example }} and not test_example_display_sensors" -n auto ${{ env.PYTEST_BENCHMARK_IGNORE }} + pytest --suppress-no-test-exit-code --ignore-glob '*/managed_components/*' --ignore=.github --junit-xml=${{ env.TEST_RESULT_FILE }} -p no:idf-ci -k "${{ matrix.runner.example }} and not test_example_display_sensors" -n auto ${{ env.PYTEST_BENCHMARK_IGNORE }} - name: Upload test results uses: actions/upload-artifact@v4 if: always() From 8640d025c038d30bf5abcd848e2ab8160f7e106f Mon Sep 17 00:00:00 2001 From: Petr Opravil Date: Fri, 10 Apr 2026 14:48:29 +0200 Subject: [PATCH 04/16] WIP --- examples/display_lvgl_benchmark/sdkconfig.bsp.esp-box | 1 + examples/display_lvgl_benchmark/sdkconfig.bsp.esp-box-3 | 1 + examples/display_lvgl_benchmark/sdkconfig.bsp.esp-box-lite | 1 + .../sdkconfig.bsp.esp32_p4_function_ev_board | 1 + .../display_lvgl_benchmark/sdkconfig.bsp.esp32_s2_kaluga_kit | 1 + examples/display_lvgl_benchmark/sdkconfig.bsp.esp32_s3_eye | 1 + examples/display_lvgl_benchmark/sdkconfig.bsp.esp32_s3_korvo_2 | 1 + .../display_lvgl_benchmark/sdkconfig.bsp.esp32_s3_lcd_ev_board | 1 + examples/display_lvgl_benchmark/sdkconfig.bsp.m5dial | 1 + examples/display_lvgl_benchmark/sdkconfig.bsp.m5stack_core_s3 | 1 + examples/display_lvgl_benchmark/sdkconfig.defaults.esp32p4 | 1 + 11 files changed, 11 insertions(+) diff --git a/examples/display_lvgl_benchmark/sdkconfig.bsp.esp-box b/examples/display_lvgl_benchmark/sdkconfig.bsp.esp-box index c78ce06b1..4bc3075b9 100644 --- a/examples/display_lvgl_benchmark/sdkconfig.bsp.esp-box +++ b/examples/display_lvgl_benchmark/sdkconfig.bsp.esp-box @@ -16,6 +16,7 @@ CONFIG_LV_MEM_SIZE_KILOBYTES=48 #CONFIG_LV_ATTRIBUTE_FAST_MEM_USE_IRAM=y CONFIG_LV_FONT_MONTSERRAT_12=y CONFIG_LV_FONT_MONTSERRAT_16=y +CONFIG_LV_FONT_MONTSERRAT_18=y CONFIG_LV_USE_DEMO_WIDGETS=y CONFIG_LV_USE_DEMO_BENCHMARK=y diff --git a/examples/display_lvgl_benchmark/sdkconfig.bsp.esp-box-3 b/examples/display_lvgl_benchmark/sdkconfig.bsp.esp-box-3 index 40455e2cf..59b0741d0 100644 --- a/examples/display_lvgl_benchmark/sdkconfig.bsp.esp-box-3 +++ b/examples/display_lvgl_benchmark/sdkconfig.bsp.esp-box-3 @@ -18,6 +18,7 @@ CONFIG_LV_MEM_SIZE_KILOBYTES=48 #CONFIG_LV_ATTRIBUTE_FAST_MEM_USE_IRAM=y CONFIG_LV_FONT_MONTSERRAT_12=y CONFIG_LV_FONT_MONTSERRAT_16=y +CONFIG_LV_FONT_MONTSERRAT_18=y CONFIG_LV_USE_DEMO_WIDGETS=y CONFIG_LV_USE_DEMO_BENCHMARK=y CONFIG_CODEC_I2C_BACKWARD_COMPATIBLE=n diff --git a/examples/display_lvgl_benchmark/sdkconfig.bsp.esp-box-lite b/examples/display_lvgl_benchmark/sdkconfig.bsp.esp-box-lite index c78ce06b1..4bc3075b9 100644 --- a/examples/display_lvgl_benchmark/sdkconfig.bsp.esp-box-lite +++ b/examples/display_lvgl_benchmark/sdkconfig.bsp.esp-box-lite @@ -16,6 +16,7 @@ CONFIG_LV_MEM_SIZE_KILOBYTES=48 #CONFIG_LV_ATTRIBUTE_FAST_MEM_USE_IRAM=y CONFIG_LV_FONT_MONTSERRAT_12=y CONFIG_LV_FONT_MONTSERRAT_16=y +CONFIG_LV_FONT_MONTSERRAT_18=y CONFIG_LV_USE_DEMO_WIDGETS=y CONFIG_LV_USE_DEMO_BENCHMARK=y diff --git a/examples/display_lvgl_benchmark/sdkconfig.bsp.esp32_p4_function_ev_board b/examples/display_lvgl_benchmark/sdkconfig.bsp.esp32_p4_function_ev_board index 95afbbdbf..9f6f64e5d 100644 --- a/examples/display_lvgl_benchmark/sdkconfig.bsp.esp32_p4_function_ev_board +++ b/examples/display_lvgl_benchmark/sdkconfig.bsp.esp32_p4_function_ev_board @@ -14,6 +14,7 @@ CONFIG_BSP_DISPLAY_LVGL_AVOID_TEAR=y CONFIG_BSP_DISPLAY_LVGL_DIRECT_MODE=y CONFIG_LV_FONT_MONTSERRAT_12=y CONFIG_LV_FONT_MONTSERRAT_16=y +CONFIG_LV_FONT_MONTSERRAT_18=y CONFIG_LV_FONT_MONTSERRAT_24=y CONFIG_LV_USE_DEMO_WIDGETS=y CONFIG_LV_USE_DEMO_BENCHMARK=y diff --git a/examples/display_lvgl_benchmark/sdkconfig.bsp.esp32_s2_kaluga_kit b/examples/display_lvgl_benchmark/sdkconfig.bsp.esp32_s2_kaluga_kit index 9da8c02bf..d8ba9822c 100644 --- a/examples/display_lvgl_benchmark/sdkconfig.bsp.esp32_s2_kaluga_kit +++ b/examples/display_lvgl_benchmark/sdkconfig.bsp.esp32_s2_kaluga_kit @@ -15,6 +15,7 @@ CONFIG_LV_MEM_SIZE_KILOBYTES=48 #CONFIG_LV_ATTRIBUTE_FAST_MEM_USE_IRAM=y CONFIG_LV_FONT_MONTSERRAT_12=y CONFIG_LV_FONT_MONTSERRAT_16=y +CONFIG_LV_FONT_MONTSERRAT_18=y CONFIG_LV_USE_DEMO_WIDGETS=y CONFIG_LV_USE_DEMO_BENCHMARK=y CONFIG_LV_DEMO_MUSIC_AUTO_PLAY=y diff --git a/examples/display_lvgl_benchmark/sdkconfig.bsp.esp32_s3_eye b/examples/display_lvgl_benchmark/sdkconfig.bsp.esp32_s3_eye index 4df54c41a..07e724155 100644 --- a/examples/display_lvgl_benchmark/sdkconfig.bsp.esp32_s3_eye +++ b/examples/display_lvgl_benchmark/sdkconfig.bsp.esp32_s3_eye @@ -18,6 +18,7 @@ CONFIG_LV_MEM_SIZE_KILOBYTES=48 #CONFIG_LV_ATTRIBUTE_FAST_MEM_USE_IRAM=y CONFIG_LV_FONT_MONTSERRAT_12=y CONFIG_LV_FONT_MONTSERRAT_16=y +CONFIG_LV_FONT_MONTSERRAT_18=y CONFIG_LV_USE_DEMO_WIDGETS=y CONFIG_LV_USE_DEMO_BENCHMARK=y CONFIG_CODEC_I2C_BACKWARD_COMPATIBLE=n diff --git a/examples/display_lvgl_benchmark/sdkconfig.bsp.esp32_s3_korvo_2 b/examples/display_lvgl_benchmark/sdkconfig.bsp.esp32_s3_korvo_2 index 7d6952e0a..5d0876b1e 100644 --- a/examples/display_lvgl_benchmark/sdkconfig.bsp.esp32_s3_korvo_2 +++ b/examples/display_lvgl_benchmark/sdkconfig.bsp.esp32_s3_korvo_2 @@ -18,6 +18,7 @@ CONFIG_LV_MEM_SIZE_KILOBYTES=48 #CONFIG_LV_ATTRIBUTE_FAST_MEM_USE_IRAM=y CONFIG_LV_FONT_MONTSERRAT_12=y CONFIG_LV_FONT_MONTSERRAT_16=y +CONFIG_LV_FONT_MONTSERRAT_18=y CONFIG_LV_USE_DEMO_WIDGETS=y CONFIG_LV_USE_DEMO_BENCHMARK=y CONFIG_CODEC_I2C_BACKWARD_COMPATIBLE=n diff --git a/examples/display_lvgl_benchmark/sdkconfig.bsp.esp32_s3_lcd_ev_board b/examples/display_lvgl_benchmark/sdkconfig.bsp.esp32_s3_lcd_ev_board index 1bc1bf9cf..31f1ae0db 100644 --- a/examples/display_lvgl_benchmark/sdkconfig.bsp.esp32_s3_lcd_ev_board +++ b/examples/display_lvgl_benchmark/sdkconfig.bsp.esp32_s3_lcd_ev_board @@ -22,6 +22,7 @@ CONFIG_BSP_DISPLAY_LVGL_DIRECT_MODE=y #CONFIG_LV_ATTRIBUTE_FAST_MEM_USE_IRAM=y CONFIG_LV_FONT_MONTSERRAT_12=y CONFIG_LV_FONT_MONTSERRAT_16=y +CONFIG_LV_FONT_MONTSERRAT_18=y CONFIG_LV_FONT_MONTSERRAT_24=y CONFIG_LV_USE_DEMO_WIDGETS=y CONFIG_LV_USE_DEMO_BENCHMARK=y diff --git a/examples/display_lvgl_benchmark/sdkconfig.bsp.m5dial b/examples/display_lvgl_benchmark/sdkconfig.bsp.m5dial index 70ed7224e..b3d0ded7a 100644 --- a/examples/display_lvgl_benchmark/sdkconfig.bsp.m5dial +++ b/examples/display_lvgl_benchmark/sdkconfig.bsp.m5dial @@ -13,6 +13,7 @@ CONFIG_LV_MEM_SIZE_KILOBYTES=48 #CONFIG_LV_ATTRIBUTE_FAST_MEM_USE_IRAM=y CONFIG_LV_FONT_MONTSERRAT_12=y CONFIG_LV_FONT_MONTSERRAT_16=y +CONFIG_LV_FONT_MONTSERRAT_18=y CONFIG_LV_USE_DEMO_WIDGETS=y CONFIG_LV_USE_DEMO_BENCHMARK=y CONFIG_SPIRAM=n diff --git a/examples/display_lvgl_benchmark/sdkconfig.bsp.m5stack_core_s3 b/examples/display_lvgl_benchmark/sdkconfig.bsp.m5stack_core_s3 index 196157edc..47077c831 100644 --- a/examples/display_lvgl_benchmark/sdkconfig.bsp.m5stack_core_s3 +++ b/examples/display_lvgl_benchmark/sdkconfig.bsp.m5stack_core_s3 @@ -18,6 +18,7 @@ CONFIG_LV_MEM_SIZE_KILOBYTES=48 #CONFIG_LV_ATTRIBUTE_FAST_MEM_USE_IRAM=y CONFIG_LV_FONT_MONTSERRAT_12=y CONFIG_LV_FONT_MONTSERRAT_16=y +CONFIG_LV_FONT_MONTSERRAT_18=y CONFIG_LV_USE_DEMO_WIDGETS=y CONFIG_LV_USE_DEMO_BENCHMARK=y CONFIG_CODEC_I2C_BACKWARD_COMPATIBLE=n diff --git a/examples/display_lvgl_benchmark/sdkconfig.defaults.esp32p4 b/examples/display_lvgl_benchmark/sdkconfig.defaults.esp32p4 index 2697aa16d..8ef8f0d00 100644 --- a/examples/display_lvgl_benchmark/sdkconfig.defaults.esp32p4 +++ b/examples/display_lvgl_benchmark/sdkconfig.defaults.esp32p4 @@ -20,6 +20,7 @@ CONFIG_BSP_DISPLAY_LVGL_AVOID_TEAR=y CONFIG_BSP_DISPLAY_LVGL_DIRECT_MODE=y CONFIG_LV_FONT_MONTSERRAT_12=y CONFIG_LV_FONT_MONTSERRAT_16=y +CONFIG_LV_FONT_MONTSERRAT_18=y CONFIG_LV_FONT_MONTSERRAT_24=y CONFIG_LV_USE_DEMO_WIDGETS=y CONFIG_LV_USE_DEMO_BENCHMARK=y From 30ef595160546a55c3750474dadf87c650a1f4f7 Mon Sep 17 00:00:00 2001 From: Petr Opravil Date: Fri, 10 Apr 2026 12:53:30 +0200 Subject: [PATCH 05/16] fix(examples): Fix LVGL benchmark --- examples/display_lvgl_benchmark/main/main.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/examples/display_lvgl_benchmark/main/main.c b/examples/display_lvgl_benchmark/main/main.c index 21bf87c21..24b594ea7 100644 --- a/examples/display_lvgl_benchmark/main/main.c +++ b/examples/display_lvgl_benchmark/main/main.c @@ -31,10 +31,11 @@ void app_main(void) }; cfg.lvgl_port_cfg.task_stack = 10000; bsp_display_start_with_config(&cfg); - bsp_display_start(); #endif + bsp_display_start(); /* Set display brightness to 100% */ + bsp_display_brightness_init(); bsp_display_backlight_on(); ESP_LOGI(TAG, "Display LVGL demo"); From 2b70ccb8c8f04aa6d0c361b1f799b2ac44ada0c4 Mon Sep 17 00:00:00 2001 From: Petr Opravil Date: Mon, 13 Apr 2026 14:42:06 +0200 Subject: [PATCH 06/16] WIP - Test pytest run --- examples/display_lvgl_benchmark/main/main.c | 56 +++++++++++++++++++++ 1 file changed, 56 insertions(+) diff --git a/examples/display_lvgl_benchmark/main/main.c b/examples/display_lvgl_benchmark/main/main.c index 24b594ea7..f5900b141 100644 --- a/examples/display_lvgl_benchmark/main/main.c +++ b/examples/display_lvgl_benchmark/main/main.c @@ -21,6 +21,7 @@ static char *TAG = "app_main"; #define LOG_MEM_INFO (0) + void app_main(void) { /* Initialize display and LVGL */ @@ -31,8 +32,63 @@ void app_main(void) }; cfg.lvgl_port_cfg.task_stack = 10000; bsp_display_start_with_config(&cfg); +#elif defined(BSP_BOARD_ESP_BOX_3) + bsp_display_cfg_t cfg = { + .lvgl_port_cfg = ESP_LVGL_PORT_INIT_CONFIG(), + .buffer_size = BSP_LCD_H_RES * 100, + .double_buffer = 0, + .flags = { + .buff_dma = true, + .buff_spiram = false, + } + }; + cfg.lvgl_port_cfg.task_stack = 10000; + bsp_display_start_with_config(&cfg); +#elif defined(BSP_BOARD_ESP32_S3_EYE) + bsp_display_cfg_t cfg = { + .lvgl_port_cfg = ESP_LVGL_PORT_INIT_CONFIG(), + .buffer_size = BSP_LCD_H_RES * CONFIG_BSP_LCD_DRAW_BUF_HEIGHT, +#if CONFIG_BSP_LCD_DRAW_BUF_DOUBLE + .double_buffer = 1, +#else + .double_buffer = 0, #endif + .flags = { + .buff_dma = true, + .buff_spiram = false, + .sw_rotate = false, + } + }; + cfg.lvgl_port_cfg.task_stack = 10000; + bsp_display_start_with_config(&cfg); +#elif defined(BSP_BOARD_M5DIAL) + bsp_display_cfg_t cfg = { + .lvgl_port_cfg = ESP_LVGL_PORT_INIT_CONFIG(), + .buffer_size = BSP_LCD_DRAW_BUFF_SIZE, + .double_buffer = BSP_LCD_DRAW_BUFF_DOUBLE, + .flags = { + .buff_dma = true, + .buff_spiram = false, + } + }; + cfg.lvgl_port_cfg.task_stack = 10000; + bsp_display_start_with_config(&cfg); +#elif defined(BSP_BOARD_M5STACK_CORE_S3) + bsp_display_cfg_t cfg = { + .lvgl_port_cfg = ESP_LVGL_PORT_INIT_CONFIG(), + .buffer_size = BSP_LCD_DRAW_BUFF_SIZE, + .double_buffer = BSP_LCD_DRAW_BUFF_DOUBLE, + .flags = { + .buff_dma = true, + .buff_spiram = false, + } + }; + cfg.lvgl_port_cfg.task_affinity = 1; /* For camera */ + cfg.lvgl_port_cfg.task_stack = 10000; + bsp_display_start_with_config(&cfg); +#else bsp_display_start(); +#endif /* Set display brightness to 100% */ bsp_display_brightness_init(); From cef44f4753c0c046a621931908c1541c852ebae1 Mon Sep 17 00:00:00 2001 From: Petr Opravil Date: Tue, 14 Apr 2026 10:30:57 +0200 Subject: [PATCH 07/16] Prepare components deprecation --- components/bh1750/idf_component.yml | 2 +- components/es7210/idf_component.yml | 2 +- components/es8311/idf_component.yml | 2 +- components/fbm320/idf_component.yml | 2 +- components/hts221/idf_component.yml | 2 +- components/mag3110/idf_component.yml | 2 +- components/mpu6050/idf_component.yml | 2 +- 7 files changed, 7 insertions(+), 7 deletions(-) diff --git a/components/bh1750/idf_component.yml b/components/bh1750/idf_component.yml index 539f23369..d3ec100a6 100644 --- a/components/bh1750/idf_component.yml +++ b/components/bh1750/idf_component.yml @@ -1,5 +1,5 @@ version: "2.0.0" description: I2C driver for BH1750 light sensor -url: https://github.com/espressif/esp-bsp/tree/master/components/bh1750 +url: https://github.com/espressif/esp-bsp/tree/deprecated/components/bh1750 dependencies: idf : ">=5.3" # esp_driver_i2c requires IDF v5.3 or later diff --git a/components/es7210/idf_component.yml b/components/es7210/idf_component.yml index 6a18eb4d8..70de01e46 100644 --- a/components/es7210/idf_component.yml +++ b/components/es7210/idf_component.yml @@ -3,4 +3,4 @@ dependencies: idf: version: '>=4.4,<6.0' description: ES7210 is a high performance four channels audio ADC -url: https://github.com/espressif/esp-bsp/tree/master/components/es7210 +url: https://github.com/espressif/esp-bsp/tree/deprecated/components/es7210 diff --git a/components/es8311/idf_component.yml b/components/es8311/idf_component.yml index 21ade8e72..0cc271897 100644 --- a/components/es8311/idf_component.yml +++ b/components/es8311/idf_component.yml @@ -1,5 +1,5 @@ version: "1.0.0~1" description: Low power mono audio codec ES8311 -url: https://github.com/espressif/esp-bsp/tree/master/components/es8311 +url: https://github.com/espressif/esp-bsp/tree/deprecated/components/es8311 dependencies: idf : ">=4.4,<6.0" diff --git a/components/fbm320/idf_component.yml b/components/fbm320/idf_component.yml index 24e8982ee..31f87143a 100644 --- a/components/fbm320/idf_component.yml +++ b/components/fbm320/idf_component.yml @@ -1,5 +1,5 @@ version: "1.0.4" description: I2C driver for FBM320 digital barometer -url: https://github.com/espressif/esp-bsp/tree/master/components/fbm320 +url: https://github.com/espressif/esp-bsp/tree/deprecated/components/fbm320 dependencies: idf : ">=4.0" diff --git a/components/hts221/idf_component.yml b/components/hts221/idf_component.yml index 012ad4942..0c68e1779 100644 --- a/components/hts221/idf_component.yml +++ b/components/hts221/idf_component.yml @@ -1,5 +1,5 @@ version: "1.1.4" description: I2C driver for HTS221 humidity and temperature sensor -url: https://github.com/espressif/esp-bsp/tree/master/components/hts221 +url: https://github.com/espressif/esp-bsp/tree/deprecated/components/hts221 dependencies: idf: ">=4.3" diff --git a/components/mag3110/idf_component.yml b/components/mag3110/idf_component.yml index deb032d27..cd98e4bcf 100644 --- a/components/mag3110/idf_component.yml +++ b/components/mag3110/idf_component.yml @@ -1,5 +1,5 @@ version: "1.0.7" description: I2C driver for MAG3110 3-axis digital magnetometer -url: https://github.com/espressif/esp-bsp/tree/master/components/mag3110 +url: https://github.com/espressif/esp-bsp/tree/deprecated/components/mag3110 dependencies: idf : ">=4.0" diff --git a/components/mpu6050/idf_component.yml b/components/mpu6050/idf_component.yml index 14bcd2066..d17d1d4ae 100644 --- a/components/mpu6050/idf_component.yml +++ b/components/mpu6050/idf_component.yml @@ -1,5 +1,5 @@ version: "1.2.1" description: I2C driver for MPU6050 6-axis gyroscope and accelerometer -url: https://github.com/espressif/esp-bsp/tree/master/components/mpu6050 +url: https://github.com/espressif/esp-bsp/tree/deprecated/components/mpu6050 dependencies: idf : ">=4.0" From cf2428426aa58b5fb2219f01a53e480ff20b249f Mon Sep 17 00:00:00 2001 From: Petr Opravil Date: Tue, 14 Apr 2026 10:54:09 +0200 Subject: [PATCH 08/16] Prepare BSP deprecation --- .pre-commit-config.yaml | 3 +++ bsp/esp-box-lite/README.md | 10 +++++----- bsp/esp-box-lite/idf_component.yml | 2 +- bsp/esp-box/README.md | 10 +++++----- bsp/esp-box/idf_component.yml | 2 +- bsp/esp32_azure_iot_kit/idf_component.yml | 2 +- bsp/esp32_s2_kaluga_kit/README.md | 10 +++++----- bsp/esp32_s2_kaluga_kit/idf_component.yml | 2 +- 8 files changed, 22 insertions(+), 19 deletions(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 4ee1d6640..895dfd66c 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -49,6 +49,9 @@ repos: additional_dependencies: - idf_component_manager==2.4.1 - py-markdown-table + # TODO: Remove this when removing these BSPs + exclude: '^.*/(esp-box|esp-box-lite|esp32_s2_kaluga_kit)/.*$' + - repo: local hooks: diff --git a/bsp/esp-box-lite/README.md b/bsp/esp-box-lite/README.md index 73d8204be..3f61b2977 100644 --- a/bsp/esp-box-lite/README.md +++ b/bsp/esp-box-lite/README.md @@ -49,11 +49,11 @@ ESP32-S3-BOX-Lite also uses a Type-C USB connector that provides 5 V of power in | Example | Description | Try with ESP Launchpad | | ------- | ----------- | ---------------------- | -| [Display Example](https://github.com/espressif/esp-bsp/tree/master/examples/display) | Show an image on the screen with a simple startup animation (LVGL) | [Flash Example](https://espressif.github.io/esp-launchpad/?flashConfigURL=https://espressif.github.io/esp-bsp/config.toml&app=display-) | -| [Display, Audio and Photo Example](https://github.com/espressif/esp-bsp/tree/master/examples/display_audio_photo) | Complex demo: browse files from filesystem and play/display JPEG, WAV, or TXT files (LVGL) | [Flash Example](https://espressif.github.io/esp-launchpad/?flashConfigURL=https://espressif.github.io/esp-bsp/config.toml&app=display_audio_photo-) | -| [LVGL Benchmark Example](https://github.com/espressif/esp-bsp/tree/master/examples/display_lvgl_benchmark) | Run LVGL benchmark tests | - | -| [LVGL Demos Example](https://github.com/espressif/esp-bsp/tree/master/examples/display_lvgl_demos) | Run the LVGL demo player - all LVGL examples are included (LVGL) | [Flash Example](https://espressif.github.io/esp-launchpad/?flashConfigURL=https://espressif.github.io/esp-bsp/config.toml&app=display_lvgl_demos-) | -| [Display Rotation Example](https://github.com/espressif/esp-bsp/tree/master/examples/display_rotation) | Rotate screen using buttons or an accelerometer (`BSP_CAPS_IMU`, if available) | [Flash Example](https://espressif.github.io/esp-launchpad/?flashConfigURL=https://espressif.github.io/esp-bsp/config.toml&app=display_rotation-) | +| [Display Example](https://github.com/espressif/esp-bsp/tree/deprecated/examples/display) | Show an image on the screen with a simple startup animation (LVGL) | [Flash Example](https://espressif.github.io/esp-launchpad/?flashConfigURL=https://espressif.github.io/esp-bsp/config.toml&app=display-) | +| [Display, Audio and Photo Example](https://github.com/espressif/esp-bsp/tree/deprecated/examples/display_audio_photo) | Complex demo: browse files from filesystem and play/display JPEG, WAV, or TXT files (LVGL) | [Flash Example](https://espressif.github.io/esp-launchpad/?flashConfigURL=https://espressif.github.io/esp-bsp/config.toml&app=display_audio_photo-) | +| [LVGL Benchmark Example](https://github.com/espressif/esp-bsp/tree/deprecated/examples/display_lvgl_benchmark) | Run LVGL benchmark tests | - | +| [LVGL Demos Example](https://github.com/espressif/esp-bsp/tree/deprecated/examples/display_lvgl_demos) | Run the LVGL demo player - all LVGL examples are included (LVGL) | [Flash Example](https://espressif.github.io/esp-launchpad/?flashConfigURL=https://espressif.github.io/esp-bsp/config.toml&app=display_lvgl_demos-) | +| [Display Rotation Example](https://github.com/espressif/esp-bsp/tree/deprecated/examples/display_rotation) | Rotate screen using buttons or an accelerometer (`BSP_CAPS_IMU`, if available) | [Flash Example](https://espressif.github.io/esp-launchpad/?flashConfigURL=https://espressif.github.io/esp-bsp/config.toml&app=display_rotation-) | diff --git a/bsp/esp-box-lite/idf_component.yml b/bsp/esp-box-lite/idf_component.yml index 520f6a6cb..717add74f 100644 --- a/bsp/esp-box-lite/idf_component.yml +++ b/bsp/esp-box-lite/idf_component.yml @@ -1,6 +1,6 @@ version: "2.1.0~2" description: Board Support Package (BSP) for ESP32-S3-BOX-Lite -url: https://github.com/espressif/esp-bsp/tree/master/bsp/esp-box-lite +url: https://github.com/espressif/esp-bsp/tree/deprecated/bsp/esp-box-lite targets: - esp32s3 diff --git a/bsp/esp-box/README.md b/bsp/esp-box/README.md index 93c464a8f..0801a97c8 100644 --- a/bsp/esp-box/README.md +++ b/bsp/esp-box/README.md @@ -50,11 +50,11 @@ ESP32-S3-BOX also uses a Type-C USB connector that provides 5 V of power input, | Example | Description | Try with ESP Launchpad | | ------- | ----------- | ---------------------- | -| [Display Example](https://github.com/espressif/esp-bsp/tree/master/examples/display) | Show an image on the screen with a simple startup animation (LVGL) | [Flash Example](https://espressif.github.io/esp-launchpad/?flashConfigURL=https://espressif.github.io/esp-bsp/config.toml&app=display-) | -| [Display, Audio and Photo Example](https://github.com/espressif/esp-bsp/tree/master/examples/display_audio_photo) | Complex demo: browse files from filesystem and play/display JPEG, WAV, or TXT files (LVGL) | [Flash Example](https://espressif.github.io/esp-launchpad/?flashConfigURL=https://espressif.github.io/esp-bsp/config.toml&app=display_audio_photo-) | -| [LVGL Benchmark Example](https://github.com/espressif/esp-bsp/tree/master/examples/display_lvgl_benchmark) | Run LVGL benchmark tests | - | -| [LVGL Demos Example](https://github.com/espressif/esp-bsp/tree/master/examples/display_lvgl_demos) | Run the LVGL demo player - all LVGL examples are included (LVGL) | [Flash Example](https://espressif.github.io/esp-launchpad/?flashConfigURL=https://espressif.github.io/esp-bsp/config.toml&app=display_lvgl_demos-) | -| [Display Rotation Example](https://github.com/espressif/esp-bsp/tree/master/examples/display_rotation) | Rotate screen using buttons or an accelerometer (`BSP_CAPS_IMU`, if available) | [Flash Example](https://espressif.github.io/esp-launchpad/?flashConfigURL=https://espressif.github.io/esp-bsp/config.toml&app=display_rotation-) | +| [Display Example](https://github.com/espressif/esp-bsp/tree/deprecated/examples/display) | Show an image on the screen with a simple startup animation (LVGL) | [Flash Example](https://espressif.github.io/esp-launchpad/?flashConfigURL=https://espressif.github.io/esp-bsp/config.toml&app=display-) | +| [Display, Audio and Photo Example](https://github.com/espressif/esp-bsp/tree/deprecated/examples/display_audio_photo) | Complex demo: browse files from filesystem and play/display JPEG, WAV, or TXT files (LVGL) | [Flash Example](https://espressif.github.io/esp-launchpad/?flashConfigURL=https://espressif.github.io/esp-bsp/config.toml&app=display_audio_photo-) | +| [LVGL Benchmark Example](https://github.com/espressif/esp-bsp/tree/deprecated/examples/display_lvgl_benchmark) | Run LVGL benchmark tests | - | +| [LVGL Demos Example](https://github.com/espressif/esp-bsp/tree/deprecated/examples/display_lvgl_demos) | Run the LVGL demo player - all LVGL examples are included (LVGL) | [Flash Example](https://espressif.github.io/esp-launchpad/?flashConfigURL=https://espressif.github.io/esp-bsp/config.toml&app=display_lvgl_demos-) | +| [Display Rotation Example](https://github.com/espressif/esp-bsp/tree/deprecated/examples/display_rotation) | Rotate screen using buttons or an accelerometer (`BSP_CAPS_IMU`, if available) | [Flash Example](https://espressif.github.io/esp-launchpad/?flashConfigURL=https://espressif.github.io/esp-bsp/config.toml&app=display_rotation-) | diff --git a/bsp/esp-box/idf_component.yml b/bsp/esp-box/idf_component.yml index 6cfec3b6c..733288737 100644 --- a/bsp/esp-box/idf_component.yml +++ b/bsp/esp-box/idf_component.yml @@ -1,7 +1,7 @@ version: "3.1.0~2" description: Board Support Package (BSP) for ESP-BOX -url: https://github.com/espressif/esp-bsp/tree/master/bsp/esp-box +url: https://github.com/espressif/esp-bsp/tree/deprecated/bsp/esp-box targets: - esp32s3 diff --git a/bsp/esp32_azure_iot_kit/idf_component.yml b/bsp/esp32_azure_iot_kit/idf_component.yml index 7859d5532..27386ccf8 100644 --- a/bsp/esp32_azure_iot_kit/idf_component.yml +++ b/bsp/esp32_azure_iot_kit/idf_component.yml @@ -1,6 +1,6 @@ version: "3.0.0~2" description: Board Support Package (BSP) for ESP32-Azure-IoT-Kit -url: https://github.com/espressif/esp-bsp/tree/master/bsp/esp32_azure_iot_kit +url: https://github.com/espressif/esp-bsp/tree/deprecated/bsp/esp32_azure_iot_kit targets: - esp32 diff --git a/bsp/esp32_s2_kaluga_kit/README.md b/bsp/esp32_s2_kaluga_kit/README.md index d18b4ea7a..7d48af87a 100644 --- a/bsp/esp32_s2_kaluga_kit/README.md +++ b/bsp/esp32_s2_kaluga_kit/README.md @@ -57,11 +57,11 @@ The ESP32-S2-Kaluga-1 kit v1.3 is a development kit by Espressif that is mainly | Example | Description | Try with ESP Launchpad | | ------- | ----------- | ---------------------- | -| [Audio Example](https://github.com/espressif/esp-bsp/tree/master/examples/audio) | Play and record WAV file | [Flash Example](https://espressif.github.io/esp-launchpad/?flashConfigURL=https://espressif.github.io/esp-bsp/config.toml&app=audio-) | -| [Display Example](https://github.com/espressif/esp-bsp/tree/master/examples/display) | Show an image on the screen with a simple startup animation (LVGL) | [Flash Example](https://espressif.github.io/esp-launchpad/?flashConfigURL=https://espressif.github.io/esp-bsp/config.toml&app=display-) | -| [Camera Example](https://github.com/espressif/esp-bsp/tree/master/examples/display_camera) | Stream camera output to display (LVGL) | [Flash Example](https://espressif.github.io/esp-launchpad/?flashConfigURL=https://espressif.github.io/esp-bsp/config.toml&app=display_camera-) | -| [LVGL Benchmark Example](https://github.com/espressif/esp-bsp/tree/master/examples/display_lvgl_benchmark) | Run LVGL benchmark tests | - | -| [LVGL Demos Example](https://github.com/espressif/esp-bsp/tree/master/examples/display_lvgl_demos) | Run the LVGL demo player - all LVGL examples are included (LVGL) | [Flash Example](https://espressif.github.io/esp-launchpad/?flashConfigURL=https://espressif.github.io/esp-bsp/config.toml&app=display_lvgl_demos-) | +| [Audio Example](https://github.com/espressif/esp-bsp/tree/deprecated/examples/audio) | Play and record WAV file | [Flash Example](https://espressif.github.io/esp-launchpad/?flashConfigURL=https://espressif.github.io/esp-bsp/config.toml&app=audio-) | +| [Display Example](https://github.com/espressif/esp-bsp/tree/deprecated/examples/display) | Show an image on the screen with a simple startup animation (LVGL) | [Flash Example](https://espressif.github.io/esp-launchpad/?flashConfigURL=https://espressif.github.io/esp-bsp/config.toml&app=display-) | +| [Camera Example](https://github.com/espressif/esp-bsp/tree/deprecated/examples/display_camera) | Stream camera output to display (LVGL) | [Flash Example](https://espressif.github.io/esp-launchpad/?flashConfigURL=https://espressif.github.io/esp-bsp/config.toml&app=display_camera-) | +| [LVGL Benchmark Example](https://github.com/espressif/esp-bsp/tree/deprecated/examples/display_lvgl_benchmark) | Run LVGL benchmark tests | - | +| [LVGL Demos Example](https://github.com/espressif/esp-bsp/tree/deprecated/examples/display_lvgl_demos) | Run the LVGL demo player - all LVGL examples are included (LVGL) | [Flash Example](https://espressif.github.io/esp-launchpad/?flashConfigURL=https://espressif.github.io/esp-bsp/config.toml&app=display_lvgl_demos-) | diff --git a/bsp/esp32_s2_kaluga_kit/idf_component.yml b/bsp/esp32_s2_kaluga_kit/idf_component.yml index 0181785f0..814340a74 100644 --- a/bsp/esp32_s2_kaluga_kit/idf_component.yml +++ b/bsp/esp32_s2_kaluga_kit/idf_component.yml @@ -1,6 +1,6 @@ version: "5.0.1~1" description: Board Support Package (BSP) for ESP32-S2-Kaluga kit -url: https://github.com/espressif/esp-bsp/tree/master/bsp/esp32_s2_kaluga_kit +url: https://github.com/espressif/esp-bsp/tree/deprecated/bsp/esp32_s2_kaluga_kit targets: - esp32s2 From 988f806df7a33c3f2f873046b7ae978b089fcf4e Mon Sep 17 00:00:00 2001 From: Petr Opravil Date: Tue, 14 Apr 2026 12:57:13 +0200 Subject: [PATCH 09/16] Pytest suite rework --- .github/workflows/build-run-applications.yml | 20 +--- conftest.py | 113 +++--------------- examples/display/pytest_display.py | 33 +++-- .../pytest_display_lvgl_benchmark.py | 17 ++- .../pytest_display_lvgl_demos.py | 17 ++- examples/display_sdcard/pytest_sdcard.py | 4 +- .../pytest_generic_button_led.py | 4 +- pytest.ini | 52 ++++---- 8 files changed, 82 insertions(+), 178 deletions(-) diff --git a/.github/workflows/build-run-applications.yml b/.github/workflows/build-run-applications.yml index f7f9822b0..8486e336f 100644 --- a/.github/workflows/build-run-applications.yml +++ b/.github/workflows/build-run-applications.yml @@ -16,15 +16,7 @@ on: schedule: - cron: '0 0 * * *' # every day at midnight workflow_dispatch: - inputs: - WFType: - description: 'Workflow type' - required: true - default: 'Build + Tests' - type: choice - options: - - Build + Tests - - Build + Tests + Benchmark + # Cancel previous CI, if running and changed label or pushed PR (Prevent to wait for runners) concurrency: @@ -142,17 +134,9 @@ jobs: matrix: idf_ver: - "release-v5.5" - runner: - - example: "test_example_display" - - example: "test_example_sdcard" - - example: "test_example_lvgl_demos" - - example: "test_example_generic_button_led" - - example: "test_example_lvgl_benchmark" env: TEST_RESULT_NAME: test_results_${{ matrix.runner.example }}_${{ matrix.idf_ver }} - BENCHMARK_RESULT_NAME: benchmark_${{ matrix.runner.example }}_${{ matrix.idf_ver }} TEST_RESULT_FILE: test_results_${{ matrix.runner.example }}_${{ matrix.idf_ver }}.xml - PYTEST_BENCHMARK_IGNORE: ${{ (contains(github.event.pull_request.labels.*.name, 'Run benchmark') || contains(inputs.WFType, 'Build + Tests + Benchmark') || github.ref_name == 'master') && format(' ') || format('--ignore=examples/display_lvgl_benchmark') }} runs-on: [self-hosted, Linux, bspwall] container: image: espressif/idf:${{ matrix.idf_ver }} @@ -177,7 +161,7 @@ jobs: export PYTEST_EMBEDDED_CACHE_DIR=/tmp/pytest-embedded-cache-dummy mkdir -p /tmp/pytest-embedded-cache-dummy - pytest --suppress-no-test-exit-code --ignore-glob '*/managed_components/*' --ignore=.github --junit-xml=${{ env.TEST_RESULT_FILE }} -p no:idf-ci -k "${{ matrix.runner.example }} and not test_example_display_sensors" -n auto ${{ env.PYTEST_BENCHMARK_IGNORE }} + pytest --junit-xml=${{ env.TEST_RESULT_FILE }} -n auto ${{ env.PYTEST_BENCHMARK_IGNORE }} --dist loadgroup - name: Upload test results uses: actions/upload-artifact@v4 if: always() diff --git a/conftest.py b/conftest.py index f8fc6a5b4..3826186ad 100644 --- a/conftest.py +++ b/conftest.py @@ -1,113 +1,32 @@ -# SPDX-FileCopyrightText: 2024-2025 Espressif Systems (Shanghai) CO LTD +# SPDX-FileCopyrightText: 2024-2026 Espressif Systems (Shanghai) CO LTD # SPDX-License-Identifier: Apache-2.0 import os import uuid import pytest -def pytest_generate_tests(metafunc): - allowed_ids = set() - - # get markers from test case (e.g. 'esp_box_3') - for marker in metafunc.definition.iter_markers(): - allowed_ids.add(marker.name) +# TODO: Rename esp-box-3 port in bsp-wall to esp_box_3 - all_params = [ - pytest.param('/dev/boards/esp-box-3', - '/dev/boards/esp-box-3', - 'build_esp-box-3', - id='esp_box_3'), - pytest.param('/dev/boards/esp32_c3_lcdkit', - '/dev/boards/esp32_c3_lcdkit', - 'build_esp32_c3_lcdkit', - id='esp32_c3_lcdkit'), - pytest.param('/dev/boards/esp32_p4_box', - '/dev/boards/esp32_p4_box', - 'build_esp32_p4_box', - id='esp32_p4_box'), - pytest.param('/dev/boards/esp32_p4_function_ev_board', - '/dev/boards/esp32_p4_function_ev_board', - 'build_esp32_p4_function_ev_board', - id='esp32_p4_function_ev_board'), - pytest.param('/dev/boards/esp32_s3_eye', - '/dev/boards/esp32_s3_eye', - 'build_esp32_s3_eye', - id='esp32_s3_eye'), - pytest.param('/dev/boards/esp32_s3_lcd_ev_board', - '/dev/boards/esp32_s3_lcd_ev_board', - 'build_esp32_s3_lcd_ev_board', - id='esp32_s3_lcd_ev_board'), - pytest.param('/dev/boards/esp32_s3_lcd_ev_board-2', - '/dev/boards/esp32_s3_lcd_ev_board-2', - 'build_esp32_s3_lcd_ev_board', - id='esp32_s3_lcd_ev_board_2'), - pytest.param('/dev/boards/esp32_s3_usb_otg', - '/dev/boards/esp32_s3_usb_otg', - 'build_esp32_s3_usb_otg', - id='esp32_s3_usb_otg'), - pytest.param('/dev/boards/esp_wrover_kit', - '/dev/boards/esp_wrover_kit', - 'build_esp_wrover_kit', - id='esp_wrover_kit'), - pytest.param('/dev/boards/esp32_azure_iot_kit', - '/dev/boards/esp32_azure_iot_kit', - 'build_esp32_azure_iot_kit', - id='esp32_azure_iot_kit'), - pytest.param('/dev/boards/m5dial', - '/dev/boards/m5dial', - 'build_m5dial', - id='m5dial'), - pytest.param('/dev/boards/m5stack_core', - '/dev/boards/m5stack_core', - 'build_m5stack_core', - id='m5stack_core'), - pytest.param('/dev/boards/m5stack_core_2', - '/dev/boards/m5stack_core_2', - 'build_m5stack_core', - id='m5stack_core_2'), - pytest.param('/dev/boards/m5stack_core_s3', - '/dev/boards/m5stack_core_s3', - 'build_m5stack_core_s3', - id='m5stack_core_s3'), - pytest.param('/dev/boards/m5stack_core_s3_se', - '/dev/boards/m5stack_core_s3_se', - 'build_m5stack_core_s3', - id='m5stack_core_s3_se'), - pytest.param('/dev/boards/m5_atom_s3', - '/dev/boards/m5_atom_s3', - 'build_m5_atom_s3', - id='m5_atom_s3'), - pytest.param('/dev/boards/esp32_s3_devkitc_1_1', - '/dev/boards/esp32_s3_devkitc_1_1', - 'build_esp_bsp_devkit', - id='esp_bsp_devkit'), - pytest.param('/dev/boards/esp32_s2_devkitc_1', - '/dev/boards/esp32_s2_devkitc_1', - 'build_esp_bsp_generic', - id='esp_bsp_generic'), - pytest.param('/dev/boards/esp32_s3_korvo_2', - '/dev/boards/esp32_s3_korvo_2', - 'build_esp32_s3_korvo_2', - id='esp32_s3_korvo_2'), - pytest.param('/dev/boards/esp32_p4_eye', - '/dev/boards/esp32_p4_eye', - 'build_esp32_p4_eye', - id='esp32_p4_eye'), - ] - # filter by markers - selected_params = [ - p for p in all_params if p.id in allowed_ids - ] +def pytest_generate_tests(metafunc): + test_parameters = [] - # if not markers, use all - if not selected_params: - selected_params = all_params + for marker in metafunc.definition.iter_markers(): + if "runner_" in marker.name: + bsp_name = marker.name.removeprefix("runner_") + bsp_param = pytest.param( + f'/dev/boards/{bsp_name}', + f'/dev/boards/{bsp_name}', + f'build_{bsp_name}', + # Test are ran one at a time for each board + marks=pytest.mark.xdist_group(name=f'{bsp_name}') + ) + test_parameters.append(bsp_param) if 'port' in metafunc.fixturenames and 'flash_port' in metafunc.fixturenames: metafunc.parametrize( 'port, flash_port, build_dir', - selected_params + test_parameters ) diff --git a/examples/display/pytest_display.py b/examples/display/pytest_display.py index 9e9d52bcd..149af8f57 100644 --- a/examples/display/pytest_display.py +++ b/examples/display/pytest_display.py @@ -1,26 +1,25 @@ -# SPDX-FileCopyrightText: 2023-2024 Espressif Systems (Shanghai) CO LTD +# SPDX-FileCopyrightText: 2023-2026 Espressif Systems (Shanghai) CO LTD # SPDX-License-Identifier: CC0-1.0 import pytest from pytest_embedded import Dut -@pytest.mark.esp_box_3 -@pytest.mark.esp32_p4_function_ev_board -@pytest.mark.esp32_c3_lcdkit -@pytest.mark.esp32_s3_eye -@pytest.mark.esp32_s3_lcd_ev_board -@pytest.mark.esp32_s3_lcd_ev_board_2 -@pytest.mark.esp32_s3_usb_otg -@pytest.mark.esp_wrover_kit -@pytest.mark.esp32_s3_korvo_2 -@pytest.mark.m5dial -@pytest.mark.m5stack_core -@pytest.mark.m5stack_core_2 -@pytest.mark.m5stack_core_s3 -@pytest.mark.m5stack_core_s3_se -@pytest.mark.m5_atom_s3 -@pytest.mark.esp32_p4_eye +@pytest.mark.runner_esp_box_3 +@pytest.mark.runner_esp32_p4_function_ev_board +@pytest.mark.runner_esp32_c3_lcdkit +@pytest.mark.runner_esp32_s3_eye +@pytest.mark.runner_esp32_s3_lcd_ev_board +@pytest.mark.runner_esp32_s3_lcd_ev_board_2 +@pytest.mark.runner_esp32_s3_usb_otg +@pytest.mark.runner_esp_wrover_kit +@pytest.mark.runner_esp32_s3_korvo_2 +@pytest.mark.runner_m5dial +@pytest.mark.runner_m5stack_core +@pytest.mark.runner_m5stack_core_2 +@pytest.mark.runner_m5stack_core_s3 +@pytest.mark.runner_m5_atom_s3 +@pytest.mark.runner_esp32_p4_eye def test_example_display(dut: Dut) -> None: dut.expect_exact('example: Display LVGL animation') dut.expect_exact('main_task: Returned from app_main()') diff --git a/examples/display_lvgl_benchmark/pytest_display_lvgl_benchmark.py b/examples/display_lvgl_benchmark/pytest_display_lvgl_benchmark.py index 2f52e2790..bd7f60bc6 100644 --- a/examples/display_lvgl_benchmark/pytest_display_lvgl_benchmark.py +++ b/examples/display_lvgl_benchmark/pytest_display_lvgl_benchmark.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2023-2025 Espressif Systems (Shanghai) CO LTD +# SPDX-FileCopyrightText: 2023-2026 Espressif Systems (Shanghai) CO LTD # SPDX-License-Identifier: CC0-1.0 import os @@ -54,14 +54,13 @@ def get_test_diff(test1, test2, name, positive): return f"*({sign}{diff})*" -@pytest.mark.esp_box_3 -@pytest.mark.esp32_p4_function_ev_board -@pytest.mark.esp32_s3_eye -@pytest.mark.esp32_s3_lcd_ev_board -@pytest.mark.esp32_s3_lcd_ev_board_2 -@pytest.mark.m5dial -@pytest.mark.m5stack_core_s3 -@pytest.mark.m5stack_core_s3_se +@pytest.mark.runner_esp_box_3 +@pytest.mark.runner_esp32_p4_function_ev_board +@pytest.mark.runner_esp32_s3_eye +@pytest.mark.runner_esp32_s3_lcd_ev_board +@pytest.mark.runner_esp32_s3_lcd_ev_board_2 +@pytest.mark.runner_m5dial +@pytest.mark.runner_m5stack_core_s3 def test_example_lvgl_benchmark(dut: Dut, request) -> None: date = datetime.datetime.now() board = request.node.callspec.id diff --git a/examples/display_lvgl_demos/pytest_display_lvgl_demos.py b/examples/display_lvgl_demos/pytest_display_lvgl_demos.py index bea952ffc..42569e0f8 100644 --- a/examples/display_lvgl_demos/pytest_display_lvgl_demos.py +++ b/examples/display_lvgl_demos/pytest_display_lvgl_demos.py @@ -1,18 +1,17 @@ -# SPDX-FileCopyrightText: 2023-2024 Espressif Systems (Shanghai) CO LTD +# SPDX-FileCopyrightText: 2023-2026 Espressif Systems (Shanghai) CO LTD # SPDX-License-Identifier: CC0-1.0 import pytest from pytest_embedded import Dut -@pytest.mark.esp_box_3 -@pytest.mark.esp32_p4_function_ev_board -@pytest.mark.esp32_s3_eye -@pytest.mark.esp32_s3_lcd_ev_board -@pytest.mark.esp32_s3_lcd_ev_board_2 -@pytest.mark.m5dial -@pytest.mark.m5stack_core_s3 -@pytest.mark.m5stack_core_s3_se +@pytest.mark.runner_esp_box_3 +@pytest.mark.runner_esp32_p4_function_ev_board +@pytest.mark.runner_esp32_s3_eye +@pytest.mark.runner_esp32_s3_lcd_ev_board +@pytest.mark.runner_esp32_s3_lcd_ev_board_2 +@pytest.mark.runner_m5dial +@pytest.mark.runner_m5stack_core_s3 def test_example_lvgl_demos(dut: Dut) -> None: dut.expect_exact('app_main: Display LVGL demo') dut.expect_exact('main_task: Returned from app_main()') diff --git a/examples/display_sdcard/pytest_sdcard.py b/examples/display_sdcard/pytest_sdcard.py index ec8b4fea5..cb9fb7999 100644 --- a/examples/display_sdcard/pytest_sdcard.py +++ b/examples/display_sdcard/pytest_sdcard.py @@ -5,7 +5,7 @@ from pytest_embedded import Dut -@pytest.mark.esp32_p4_function_ev_board -@pytest.mark.esp32_s3_korvo_2 +@pytest.mark.runner_esp32_p4_function_ev_board +@pytest.mark.runner_esp32_s3_korvo_2 def test_example_sdcard(dut: Dut) -> None: dut.expect_exact('example: Testing of SD card passed!') diff --git a/examples/generic_button_led/pytest_generic_button_led.py b/examples/generic_button_led/pytest_generic_button_led.py index 0b13bbe3d..264e1ca89 100644 --- a/examples/generic_button_led/pytest_generic_button_led.py +++ b/examples/generic_button_led/pytest_generic_button_led.py @@ -5,7 +5,7 @@ from pytest_embedded import Dut -@pytest.mark.esp_bsp_devkit -@pytest.mark.esp_bsp_generic +@pytest.mark.runner_esp_bsp_devkit +@pytest.mark.runner_esp_bsp_generic def test_example_generic_button_led(dut: Dut) -> None: dut.expect_exact('main_task: Returned from app_main()') diff --git a/pytest.ini b/pytest.ini index 9d617cbc9..54517c80b 100644 --- a/pytest.ini +++ b/pytest.ini @@ -1,31 +1,10 @@ [pytest] # only the files with prefix `pytest_` would be recognized as pytest test scripts. python_files = pytest_*.py - +strict_markers = true # set traceback to "short" to prevent the overwhelming tracebacks -addopts = -s --embedded-services esp,idf --tb short -markers = - # env markers - esp_box_3: esp-box-3 runner - esp32_c3_lcdkit: esp32_c3_lcdkit runner - esp32_p4_box: esp32_p4_box runner - esp32_p4_function_ev_board: esp32_p4_function_ev_board runner - esp32_s3_eye: esp32_s3_eye runner - esp32_s3_lcd_ev_board: esp32_s3_lcd_ev_board runner - esp32_s3_lcd_ev_board_2: esp32_s3_lcd_ev_board runner - esp32_s3_usb_otg: esp32_s3_usb_otg runner - esp_wrover_kit: esp_wrover_kit runner - m5dial: m5dial runner - m5stack_core: m5stack_core runner - m5stack_core_2: m5stack_core_2 runner - m5stack_core_s3: m5stack_core_s3 runner - m5stack_core_s3_se: m5stack_core_s3_se runner - esp32_azure_iot_kit: esp32_azure_iot_kit runner - esp_bsp_devkit: esp32_s3_devkitc_1_1 runner - esp_bsp_generic: esp32_s3_devkitc_1_1 runner - esp32_s3_korvo_2: esp32_s3_korvo_2 runner - m5_atom_s3: m5 Atom S3 runner - +tb = short +norecursedirs = .github managed_components # log related log_cli = True log_cli_level = INFO @@ -36,3 +15,28 @@ junit_family = xunit1 ## log all to `system-out` when case fail junit_logging = stdout junit_log_passing_tests = False + +addopts = -s --embedded-services esp,idf -p no:idf-ci --suppress-no-test-exit-code + +markers = + # env markers + runner_esp_box_3: esp-box-3 runner + runner_esp32_c3_lcdkit: esp32_c3_lcdkit runner + runner_esp32_p4_box: esp32_p4_box runner + runner_esp32_p4_function_ev_board: esp32_p4_function_ev_board runner + runner_esp32_s3_eye: esp32_s3_eye runner + runner_esp32_s3_lcd_ev_board: esp32_s3_lcd_ev_board runner + runner_esp32_s3_lcd_ev_board_2: esp32_s3_lcd_ev_board runner + runner_esp32_s3_usb_otg: esp32_s3_usb_otg runner + runner_esp_wrover_kit: esp_wrover_kit runner + runner_m5dial: m5dial runner + runner_m5stack_core: m5stack_core runner + runner_m5stack_core_2: m5stack_core_2 runner + runner_m5stack_core_s3: m5stack_core_s3 runner + runner_m5stack_core_s3_se: m5stack_core_s3_se runner + runner_esp32_azure_iot_kit: esp32_azure_iot_kit runner + runner_esp_bsp_devkit: esp32_s3_devkitc_1_1 runner + runner_esp_bsp_generic: esp32_s3_devkitc_1_1 runner + runner_esp32_s3_korvo_2: esp32_s3_korvo_2 runner + runner_m5_atom_s3: m5 Atom S3 runner + runner_esp32_p4_eye: ESP32-P4 EYE runner From d8bd32d424b617d195703a6d7ef2797064b63168 Mon Sep 17 00:00:00 2001 From: Petr Opravil Date: Tue, 14 Apr 2026 16:33:16 +0200 Subject: [PATCH 10/16] Bump versions of github actions --- .github/workflows/benchmark.yml | 6 +++--- .github/workflows/build-run-applications.yml | 10 +++++----- .github/workflows/gh-pages.yml | 14 +++++++------- .github/workflows/pre-commit.yml | 2 +- .github/workflows/squareline.yml | 6 +++--- .github/workflows/upload_component.yml | 4 ++-- .github/workflows/upload_component_noglib.yml | 6 +++--- 7 files changed, 24 insertions(+), 24 deletions(-) diff --git a/.github/workflows/benchmark.yml b/.github/workflows/benchmark.yml index 71d4e1d57..45f91a592 100644 --- a/.github/workflows/benchmark.yml +++ b/.github/workflows/benchmark.yml @@ -65,8 +65,8 @@ jobs: image: espressif/idf:${{ matrix.idf_ver }} options: --privileged -v /dev/boards:/dev/boards/ steps: - - uses: actions/checkout@v4 - - uses: actions/download-artifact@v4 + - uses: actions/checkout@v6 + - uses: actions/download-artifact@v8 with: pattern: app_binaries merge-multiple: true @@ -86,7 +86,7 @@ jobs: --junit-xml=${{ env.TEST_RESULT_FILE }} \ -p no:idf-ci - name: Upload test results - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v7 if: always() with: name: ${{ env.TEST_RESULT_NAME }} diff --git a/.github/workflows/build-run-applications.yml b/.github/workflows/build-run-applications.yml index 8486e336f..154bcb4ec 100644 --- a/.github/workflows/build-run-applications.yml +++ b/.github/workflows/build-run-applications.yml @@ -55,12 +55,12 @@ jobs: runs-on: ubuntu-latest container: espressif/idf:${{ matrix.idf_ver }} steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v6 - name: Get changed files if: github.event_name == 'pull_request' # This action is working only in pull-request (it fails in push to master) id: changed-files - uses: tj-actions/changed-files@v45 + uses: tj-actions/changed-files@v47 with: separator: ';' # idf-build-apps expects files seprated with semicolon @@ -91,7 +91,7 @@ jobs: echo "### ⚠️ Build failed for idf_ver=${{ matrix.idf_ver }}" >> $GITHUB_STEP_SUMMARY echo "This failure was ignored (continue-on-error enabled)." >> $GITHUB_STEP_SUMMARY - - uses: actions/upload-artifact@v4 + - uses: actions/upload-artifact@v7 if: github.repository_owner == 'espressif' # && needs.prepare.outputs.build_only == '0' with: name: app_binaries_${{ matrix.idf_ver }}_${{ matrix.parallel_index }} @@ -142,7 +142,7 @@ jobs: image: espressif/idf:${{ matrix.idf_ver }} options: --privileged -v /dev/boards:/dev/boards/ # Privileged mode has access to serial ports steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v6 - uses: actions/download-artifact@v4 with: pattern: app_binaries_${{ matrix.idf_ver }}_* @@ -163,7 +163,7 @@ jobs: mkdir -p /tmp/pytest-embedded-cache-dummy pytest --junit-xml=${{ env.TEST_RESULT_FILE }} -n auto ${{ env.PYTEST_BENCHMARK_IGNORE }} --dist loadgroup - name: Upload test results - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v7 if: always() with: name: ${{ env.TEST_RESULT_NAME }} diff --git a/.github/workflows/gh-pages.yml b/.github/workflows/gh-pages.yml index 3aa991743..05b330117 100644 --- a/.github/workflows/gh-pages.yml +++ b/.github/workflows/gh-pages.yml @@ -9,7 +9,7 @@ on: push: branches: - master - + permissions: pages: write id-token: write @@ -26,7 +26,7 @@ jobs: container: espressif/idf:${{ matrix.idf_ver }} steps: - name: Checkout repo - uses: actions/checkout@v4 + uses: actions/checkout@v6 with: submodules: 'recursive' @@ -47,7 +47,7 @@ jobs: config_file: examples/.idf_build_apps.toml - name: Upload Artifact - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v7 with: name: built_files path: binaries/ @@ -56,7 +56,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout repo - uses: actions/checkout@v4 + uses: actions/checkout@v6 with: fetch-depth: 0 # all git history @@ -72,7 +72,7 @@ jobs: python .github/ci/release_checker.py > site/release_checker.html - name: Upload Artifact - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v7 with: name: release_checker path: site/ @@ -93,13 +93,13 @@ jobs: runs-on: ubuntu-latest steps: - name: Download built files - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v8 with: name: built_files path: binaries/ - name: Download built files - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v8 with: name: release_checker path: site/ diff --git a/.github/workflows/pre-commit.yml b/.github/workflows/pre-commit.yml index 80c2c1ce9..5f02b1876 100644 --- a/.github/workflows/pre-commit.yml +++ b/.github/workflows/pre-commit.yml @@ -10,6 +10,6 @@ jobs: steps: - name: Install doxygen run: sudo apt-get install -y doxygen - - uses: actions/checkout@v4 + - uses: actions/checkout@v6 - uses: actions/setup-python@v5.2.0 - uses: pre-commit/action@v3.0.1 diff --git a/.github/workflows/squareline.yml b/.github/workflows/squareline.yml index 8461850ef..29715e34d 100644 --- a/.github/workflows/squareline.yml +++ b/.github/workflows/squareline.yml @@ -16,12 +16,12 @@ jobs: create-squareline-packages: runs-on: ubuntu-24.04 steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v6 - name: Generate the packages run: | cd SquareLine python3 gen.py -o out_dir - - uses: actions/upload-artifact@v4 + - uses: actions/upload-artifact@v7 with: name: artifacts path: SquareLine/out_dir/espressif/ @@ -31,7 +31,7 @@ jobs: needs: [ create-squareline-packages ] steps: - name: Download artifacts - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v8 with: name: artifacts path: espressif diff --git a/.github/workflows/upload_component.yml b/.github/workflows/upload_component.yml index 413c8fc31..978413a20 100644 --- a/.github/workflows/upload_component.yml +++ b/.github/workflows/upload_component.yml @@ -46,7 +46,7 @@ jobs: - m5stack_tab5 - esp_vocat steps: - - uses: actions/checkout@v5 + - uses: actions/checkout@v6 - name: Prepare BSP examples run: | @@ -65,7 +65,7 @@ jobs: upload_other_components: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v5 + - uses: actions/checkout@v6 - name: Upload Other components uses: espressif/upload-components-ci-action@v2 with: diff --git a/.github/workflows/upload_component_noglib.yml b/.github/workflows/upload_component_noglib.yml index d76bd504e..9eb2425a5 100644 --- a/.github/workflows/upload_component_noglib.yml +++ b/.github/workflows/upload_component_noglib.yml @@ -4,18 +4,18 @@ on: push: branches: - master - paths: + paths: - 'bsp/**' pull_request: types: [opened, reopened, synchronize] - paths: + paths: - 'bsp/**' jobs: upload_components: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v5 + - uses: actions/checkout@v6 - name: Upload noglib version of BSPs # TODO: Extend this part to all BSPs From 3fb256ae2bbb55e4143432a0c08e634b08774f21 Mon Sep 17 00:00:00 2001 From: Petr Opravil Date: Tue, 14 Apr 2026 16:32:54 +0200 Subject: [PATCH 11/16] WIP --- .github/workflows/benchmark.yml | 14 +++--- .github/workflows/build-run-applications.yml | 2 +- .github/workflows/jira_sync.yml | 29 ------------ .github/workflows/upload_component.yml | 48 ++++---------------- 4 files changed, 17 insertions(+), 76 deletions(-) delete mode 100644 .github/workflows/jira_sync.yml diff --git a/.github/workflows/benchmark.yml b/.github/workflows/benchmark.yml index 45f91a592..1d52b2976 100644 --- a/.github/workflows/benchmark.yml +++ b/.github/workflows/benchmark.yml @@ -6,6 +6,7 @@ on: - master schedule: - cron: '0 20 * * SAT' + workflow_dispatch: # TODO: Remove pull_request: types: [opened, reopened, synchronize, labeled] @@ -15,14 +16,10 @@ permissions: jobs: build_benchmarks: - strategy: - matrix: - idf_ver: - - "release-v5.5" env: BENCHMARK_PROJECT_DIR: "examples/display_lvgl_benchmark" runs-on: ubuntu-latest - container: espressif/idf:${{ matrix.idf_ver }} + container: espressif/idf:release-v5.5 steps: - uses: actions/checkout@v6 - name: Build benchmark binaries @@ -59,7 +56,6 @@ jobs: env: BENCHMARK_PROJECT_DIR: "examples/display_lvgl_benchmark" TEST_RESULT_NAME: test_results_lvgl_benchmarks - TEST_RESULT_FILE: test_results_lvgl_benchmarks.xml runs-on: [self-hosted, Linux, bspwall] container: image: espressif/idf:${{ matrix.idf_ver }} @@ -69,6 +65,7 @@ jobs: - uses: actions/download-artifact@v8 with: pattern: app_binaries + # Restores artifacts to their original paths merge-multiple: true - name: Run apps run: | @@ -77,13 +74,14 @@ jobs: . ${IDF_PATH}/export.sh pip install --prefer-binary pytest-custom_exit_code pytest-xdist + # Run benchmarks with custom config export PYTEST_EMBEDDED_CACHE_DIR=/tmp/pytest-embedded-cache-dummy mkdir -p /tmp/pytest-embedded-cache-dummy pytest \ ${{ env.BENCHMARK_PROJECT_DIR }} \ -c pytest.ini \ --suppress-no-test-exit-code \ - --junit-xml=${{ env.TEST_RESULT_FILE }} \ + --junit-xml=${{ env.TEST_RESULT_NAME }}.xml \ -p no:idf-ci - name: Upload test results uses: actions/upload-artifact@v7 @@ -91,7 +89,7 @@ jobs: with: name: ${{ env.TEST_RESULT_NAME }} path: | - ${{ env.TEST_RESULT_FILE }} + ${{ env.TEST_RESULT_NAME }}.xml *.log benchmark_*.md benchmark_*.json diff --git a/.github/workflows/build-run-applications.yml b/.github/workflows/build-run-applications.yml index 154bcb4ec..c3ee5133f 100644 --- a/.github/workflows/build-run-applications.yml +++ b/.github/workflows/build-run-applications.yml @@ -161,7 +161,7 @@ jobs: export PYTEST_EMBEDDED_CACHE_DIR=/tmp/pytest-embedded-cache-dummy mkdir -p /tmp/pytest-embedded-cache-dummy - pytest --junit-xml=${{ env.TEST_RESULT_FILE }} -n auto ${{ env.PYTEST_BENCHMARK_IGNORE }} --dist loadgroup + pytest --junit-xml=${{ env.TEST_RESULT_FILE }} -n auto --dist loadgroup - name: Upload test results uses: actions/upload-artifact@v7 if: always() diff --git a/.github/workflows/jira_sync.yml b/.github/workflows/jira_sync.yml deleted file mode 100644 index a31f1fd3a..000000000 --- a/.github/workflows/jira_sync.yml +++ /dev/null @@ -1,29 +0,0 @@ -name: Sync Jira with Github - -on: - schedule: - # TODO: Could be removed? - # Triggered every 6 hours - - cron: "0 */6 * * *" - issues: - types: [opened] - issue_comment: - -permissions: - issues: write - -jobs: - jira_sync: - name: Sync Jira with Github - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v5 - - name: Sync Jira with Github - uses: espressif/sync-jira-actions@v1 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - JIRA_PASS: ${{ secrets.JIRA_PASS }} - JIRA_PROJECT: BSP - JIRA_COMPONENT: GitHub - JIRA_URL: ${{ secrets.JIRA_URL }} - JIRA_USER: ${{ secrets.JIRA_USER }} \ No newline at end of file diff --git a/.github/workflows/upload_component.yml b/.github/workflows/upload_component.yml index 978413a20..7c139f30b 100644 --- a/.github/workflows/upload_component.yml +++ b/.github/workflows/upload_component.yml @@ -66,47 +66,19 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v6 + - name: Discover other components + id: discover_components + # Output each idf_component YAML file which specifies a version of itself + run: | + echo "components<> "$GITHUB_OUTPUT" + grep -rl --include="idf_component.y*ml" "^version:" components/ | xargs -I {} dirname {} >> "$GITHUB_OUTPUT" + echo "EOF" >> "$GITHUB_OUTPUT" - name: Upload Other components uses: espressif/upload-components-ci-action@v2 with: - components: | - components/bsp_selector - components/bh1750 - components/ds18b20 - components/es8311 - components/es7210 - components/fbm320 - components/hts221 - components/mag3110 - components/mpu6050 - components/esp_lvgl_port - components/qma6100p - components/lcd_touch/esp_lcd_touch - components/lcd_touch/esp_lcd_touch_ft5x06 - components/lcd_touch/esp_lcd_touch_gt911 - components/lcd_touch/esp_lcd_touch_tt21100 - components/lcd_touch/esp_lcd_touch_gt1151 - components/lcd_touch/esp_lcd_touch_cst816s - components/lcd/esp_lcd_gc9a01 - components/lcd/esp_lcd_ili9341 - components/lcd/esp_lcd_ra8875 - components/lcd_touch/esp_lcd_touch_stmpe610 - components/lcd/esp_lcd_sh1107 - components/lcd/esp_lcd_st7796 - components/lcd/esp_lcd_gc9503 - components/lcd/esp_lcd_ssd1681 - components/lcd/esp_lcd_ili9881c - components/lcd/esp_lcd_lt8912b - components/lcd/esp_lcd_nt35510 - components/io_expander/esp_io_expander - components/io_expander/esp_io_expander_tca9554 - components/io_expander/esp_io_expander_tca95xx_16bit - components/io_expander/esp_io_expander_ht8574 - components/io_expander/esp_io_expander_pi4ioe5v6408 - components/io_expander/esp_io_expander_aw9523 - components/sensors/icm42670 - components/sensors/aht30 - components/sensors/bmi270 + components: ${{ steps.discover_components.outputs.components }} namespace: "espressif" api_token: ${{ secrets.IDF_COMPONENT_API_TOKEN }} dry_run: ${{ github.ref_name != 'master' || github.repository_owner != 'espressif' }} + + From 7507bdd4aa92df5c716a762bfba0fc70c1378eec Mon Sep 17 00:00:00 2001 From: Petr Opravil Date: Wed, 15 Apr 2026 13:25:03 +0200 Subject: [PATCH 12/16] Remove unused test --- test_apps/.build-test-rules.yml | 7 +------ test_apps/components/CMakeLists.txt | 16 ---------------- test_apps/components/main/CMakeLists.txt | 3 --- test_apps/components/main/test_app_main.c | 16 ---------------- test_apps/components/sdkconfig.defaults | 2 -- 5 files changed, 1 insertion(+), 43 deletions(-) delete mode 100644 test_apps/components/CMakeLists.txt delete mode 100644 test_apps/components/main/CMakeLists.txt delete mode 100644 test_apps/components/main/test_app_main.c delete mode 100644 test_apps/components/sdkconfig.defaults diff --git a/test_apps/.build-test-rules.yml b/test_apps/.build-test-rules.yml index bb063354e..ad674bf21 100644 --- a/test_apps/.build-test-rules.yml +++ b/test_apps/.build-test-rules.yml @@ -1,10 +1,5 @@ # Noglib test_app: Build only in CI, where ENV_BUILD_NOGLIB is set test_apps/noglib: disable: + # TODO: Is this disabled anywhere? - if: ENV_BUILD_NOGLIB == 0 - -# Legacy common components test_app: Build for changes in components which do not have their own test_app or example -test_apps/components: - depends_filepatterns: - - "components/lcd/esp_lcd_ra8875/**" - - "components/lcd_touch/**" diff --git a/test_apps/components/CMakeLists.txt b/test_apps/components/CMakeLists.txt deleted file mode 100644 index 7afaccf17..000000000 --- a/test_apps/components/CMakeLists.txt +++ /dev/null @@ -1,16 +0,0 @@ -# The following lines of boilerplate have to be in your project's -# CMakeLists in this exact order for cmake to work correctly -cmake_minimum_required(VERSION 3.12) - -# lcd_touch components do not have their own dedicated test_app -# so we add them to build here to have at least compilation test -set(EXTRA_COMPONENT_DIRS "../../components/lcd_touch") - -# Explicitly add components that do not have an test_app -# Must be kept in sync with list in .build-test-rules.yml -list(APPEND EXTRA_COMPONENT_DIRS - "../../components/lcd/esp_lcd_ra8875" - ) - -include($ENV{IDF_PATH}/tools/cmake/version.cmake) # $ENV{IDF_VERSION} was added after v4.3... -project(esp_bsp_test_app) diff --git a/test_apps/components/main/CMakeLists.txt b/test_apps/components/main/CMakeLists.txt deleted file mode 100644 index 55e6764a0..000000000 --- a/test_apps/components/main/CMakeLists.txt +++ /dev/null @@ -1,3 +0,0 @@ -idf_component_register(SRCS "test_app_main.c" - INCLUDE_DIRS "" - REQUIRES unity) diff --git a/test_apps/components/main/test_app_main.c b/test_apps/components/main/test_app_main.c deleted file mode 100644 index 65c83a567..000000000 --- a/test_apps/components/main/test_app_main.c +++ /dev/null @@ -1,16 +0,0 @@ -/* - * SPDX-FileCopyrightText: 2015-2021 Espressif Systems (Shanghai) CO LTD - * - * SPDX-License-Identifier: Apache-2.0 - */ - -#include -#include -#include "unity.h" - -void app_main(void) -{ - UNITY_BEGIN(); - unity_run_menu(); - UNITY_END(); -} diff --git a/test_apps/components/sdkconfig.defaults b/test_apps/components/sdkconfig.defaults deleted file mode 100644 index 808f92a17..000000000 --- a/test_apps/components/sdkconfig.defaults +++ /dev/null @@ -1,2 +0,0 @@ -CONFIG_ESP_INT_WDT=n -CONFIG_ESP_TASK_WDT=n From 845a8b354cc584520e2ae0ff51ff3b94acc3d8a3 Mon Sep 17 00:00:00 2001 From: Petr Opravil Date: Wed, 15 Apr 2026 13:26:06 +0200 Subject: [PATCH 13/16] Add missing compilation test and update build rules --- .idf_build_apps.toml | 10 ++++- components/.build-test-rules.yml | 44 +------------------ components/io_expander/.build-test-rules.yml | 27 +++++------- components/lcd/.build-test-rules.yml | 15 +++++-- .../esp_lcd_lt8912b/test_apps/CMakeLists.txt | 4 ++ .../test_apps/main/CMakeLists.txt | 1 + .../test_apps/main/compilation_test.c | 12 +++++ .../test_apps/main/idf_component.yml | 6 +++ .../test_apps/sdkconfig.defaults | 3 ++ .../esp_lcd_ra8875/test_apps/CMakeLists.txt | 4 ++ .../test_apps/main/CMakeLists.txt | 1 + .../test_apps/main/compilation_test.c | 12 +++++ .../test_apps/main/idf_component.yml | 6 +++ .../test_apps/sdkconfig.defaults | 3 ++ .../esp_lcd_sh1107/test_apps/CMakeLists.txt | 4 ++ .../test_apps/main/CMakeLists.txt | 1 + .../test_apps/main/compilation_test.c | 12 +++++ .../test_apps/main/idf_component.yml | 6 +++ .../test_apps/sdkconfig.defaults | 3 ++ components/lcd_touch/.build-test-rules.yml | 22 ++++++++++ .../test_apps/CMakeLists.txt | 4 ++ .../test_apps/main/CMakeLists.txt | 1 + .../test_apps/main/compilation_test.c | 12 +++++ .../test_apps/main/idf_component.yml | 6 +++ .../test_apps/sdkconfig.defaults | 3 ++ .../test_apps/CMakeLists.txt | 4 ++ .../test_apps/main/CMakeLists.txt | 1 + .../test_apps/main/compilation_test.c | 12 +++++ .../test_apps/main/idf_component.yml | 6 +++ .../test_apps/sdkconfig.defaults | 3 ++ .../test_apps/CMakeLists.txt | 4 ++ .../test_apps/main/CMakeLists.txt | 1 + .../test_apps/main/compilation_test.c | 12 +++++ .../test_apps/main/idf_component.yml | 6 +++ .../test_apps/sdkconfig.defaults | 3 ++ .../test_apps/CMakeLists.txt | 4 ++ .../test_apps/main/CMakeLists.txt | 1 + .../test_apps/main/compilation_test.c | 12 +++++ .../test_apps/main/idf_component.yml | 6 +++ .../test_apps/sdkconfig.defaults | 3 ++ components/sensors/.build-test-rules.yml | 11 +++++ .../sensors/aht30/test_apps/CMakeLists.txt | 4 ++ .../aht30/test_apps/main/CMakeLists.txt | 1 + .../aht30/test_apps/main/compilation_test.c | 12 +++++ .../aht30/test_apps/main/idf_component.yml | 6 +++ .../aht30/test_apps/sdkconfig.defaults | 3 ++ 46 files changed, 274 insertions(+), 63 deletions(-) create mode 100644 components/lcd/esp_lcd_lt8912b/test_apps/CMakeLists.txt create mode 100644 components/lcd/esp_lcd_lt8912b/test_apps/main/CMakeLists.txt create mode 100644 components/lcd/esp_lcd_lt8912b/test_apps/main/compilation_test.c create mode 100644 components/lcd/esp_lcd_lt8912b/test_apps/main/idf_component.yml create mode 100644 components/lcd/esp_lcd_lt8912b/test_apps/sdkconfig.defaults create mode 100644 components/lcd/esp_lcd_ra8875/test_apps/CMakeLists.txt create mode 100644 components/lcd/esp_lcd_ra8875/test_apps/main/CMakeLists.txt create mode 100644 components/lcd/esp_lcd_ra8875/test_apps/main/compilation_test.c create mode 100644 components/lcd/esp_lcd_ra8875/test_apps/main/idf_component.yml create mode 100644 components/lcd/esp_lcd_ra8875/test_apps/sdkconfig.defaults create mode 100644 components/lcd/esp_lcd_sh1107/test_apps/CMakeLists.txt create mode 100644 components/lcd/esp_lcd_sh1107/test_apps/main/CMakeLists.txt create mode 100644 components/lcd/esp_lcd_sh1107/test_apps/main/compilation_test.c create mode 100644 components/lcd/esp_lcd_sh1107/test_apps/main/idf_component.yml create mode 100644 components/lcd/esp_lcd_sh1107/test_apps/sdkconfig.defaults create mode 100644 components/lcd_touch/esp_lcd_touch_ft5x06/test_apps/CMakeLists.txt create mode 100644 components/lcd_touch/esp_lcd_touch_ft5x06/test_apps/main/CMakeLists.txt create mode 100644 components/lcd_touch/esp_lcd_touch_ft5x06/test_apps/main/compilation_test.c create mode 100644 components/lcd_touch/esp_lcd_touch_ft5x06/test_apps/main/idf_component.yml create mode 100644 components/lcd_touch/esp_lcd_touch_ft5x06/test_apps/sdkconfig.defaults create mode 100644 components/lcd_touch/esp_lcd_touch_gt1151/test_apps/CMakeLists.txt create mode 100644 components/lcd_touch/esp_lcd_touch_gt1151/test_apps/main/CMakeLists.txt create mode 100644 components/lcd_touch/esp_lcd_touch_gt1151/test_apps/main/compilation_test.c create mode 100644 components/lcd_touch/esp_lcd_touch_gt1151/test_apps/main/idf_component.yml create mode 100644 components/lcd_touch/esp_lcd_touch_gt1151/test_apps/sdkconfig.defaults create mode 100644 components/lcd_touch/esp_lcd_touch_gt911/test_apps/CMakeLists.txt create mode 100644 components/lcd_touch/esp_lcd_touch_gt911/test_apps/main/CMakeLists.txt create mode 100644 components/lcd_touch/esp_lcd_touch_gt911/test_apps/main/compilation_test.c create mode 100644 components/lcd_touch/esp_lcd_touch_gt911/test_apps/main/idf_component.yml create mode 100644 components/lcd_touch/esp_lcd_touch_gt911/test_apps/sdkconfig.defaults create mode 100644 components/lcd_touch/esp_lcd_touch_tt21100/test_apps/CMakeLists.txt create mode 100644 components/lcd_touch/esp_lcd_touch_tt21100/test_apps/main/CMakeLists.txt create mode 100644 components/lcd_touch/esp_lcd_touch_tt21100/test_apps/main/compilation_test.c create mode 100644 components/lcd_touch/esp_lcd_touch_tt21100/test_apps/main/idf_component.yml create mode 100644 components/lcd_touch/esp_lcd_touch_tt21100/test_apps/sdkconfig.defaults create mode 100644 components/sensors/.build-test-rules.yml create mode 100644 components/sensors/aht30/test_apps/CMakeLists.txt create mode 100644 components/sensors/aht30/test_apps/main/CMakeLists.txt create mode 100644 components/sensors/aht30/test_apps/main/compilation_test.c create mode 100644 components/sensors/aht30/test_apps/main/idf_component.yml create mode 100644 components/sensors/aht30/test_apps/sdkconfig.defaults diff --git a/.idf_build_apps.toml b/.idf_build_apps.toml index 3f825c38b..398e4616e 100644 --- a/.idf_build_apps.toml +++ b/.idf_build_apps.toml @@ -2,7 +2,15 @@ recursive = true exclude = [ "SquareLine", ] -manifest_file = ["components/.build-test-rules.yml", "components/io_expander/.build-test-rules.yml", "components/lcd/.build-test-rules.yml", "components/lcd_touch/.build-test-rules.yml", "test_apps/.build-test-rules.yml", "examples/.build-test-rules.yml"] +manifest_file = [ + "components/.build-test-rules.yml", + "components/io_expander/.build-test-rules.yml", + "components/lcd/.build-test-rules.yml", + "components/lcd_touch/.build-test-rules.yml", + "components/sensors/.build-test-rules.yml", + "test_apps/.build-test-rules.yml", + "examples/.build-test-rules.yml", +] check_warnings = true ignore_warning_file = ".ignore_build_warnings.txt" config = "sdkconfig.bsp.*" diff --git a/components/.build-test-rules.yml b/components/.build-test-rules.yml index dac1c6e97..58ab0cd12 100644 --- a/components/.build-test-rules.yml +++ b/components/.build-test-rules.yml @@ -1,24 +1,8 @@ -# esp_lvgl_port: Build only on related changes and components used in examples components/esp_lvgl_port: depends_filepatterns: - "components/esp_lvgl_port/**" - - "components/lcd_touch/esp_lcd_touch_tt21100/**" - - "components/lcd_touch/esp_lcd_touch_gt1151/**" - -components/esp_lvgl_port/examples: - depends_filepatterns: - - "components/esp_lvgl_port/**" - - "components/lcd/sh1107/**" - disable: - - if: IDF_VERSION < "5.2.0" - reason: Requires I2C Driver-NG which was introduced in v5.2 - -components/esp_lvgl_port/test_apps/lvgl_port: - depends_filepatterns: - - "components/esp_lvgl_port/**" - disable: - - if: IDF_VERSION < "5.2.0" - reason: Requires I2C Driver-NG which was introduced in v5.2 + - "components/lcd_touch/**" + - "components/lcd/**" components/esp_lvgl_port/test_apps/simd: depends_filepatterns: @@ -36,36 +20,12 @@ components/ds18b20/examples/ds18b20_read: - if: CONFIG_NAME == "uart" and SOC_UART_SUPPORTED != 1 reason: UART backend variant requires SOC UART support -components/sensors/icm42670: - depends_filepatterns: - - "components/sensors/icm42670/**" - disable: - - if: IDF_VERSION < "5.2.0" - reason: Requires I2C Driver-NG which was introduced in v5.2 - -components/sensors/aht30: - depends_filepatterns: - - "components/sensors/aht30/**" - disable: - - if: IDF_VERSION < "5.2.0" - reason: Requires I2C Driver-NG which was introduced in v5.2 - components/qma6100p: depends_filepatterns: - "components/qma6100p/**" - disable: - - if: IDF_VERSION < "5.2.0" - reason: Requires I2C Driver-NG which was introduced in v5.2 components/bh1750: depends_filepatterns: - "components/bh1750/**" disable: - if: IDF_VERSION < "5.3.0" - -components/lcd_touch/esp_lcd_touch_cst816s/test_apps: - depends_filepatterns: - - "components/lcd_touch/esp_lcd_touch_cst816s/**" - disable: - - if: IDF_VERSION < "5.2.0" - reason: Requires I2C Driver-NG which was introduced in v5.2 diff --git a/components/io_expander/.build-test-rules.yml b/components/io_expander/.build-test-rules.yml index 2859ca252..77992fa5b 100644 --- a/components/io_expander/.build-test-rules.yml +++ b/components/io_expander/.build-test-rules.yml @@ -1,31 +1,24 @@ +components/io_expander/esp_io_expander_aw9523: + depends_filepatterns: + - "components/io_expander/esp_io_expander/**" + - "components/io_expander/esp_io_expander_aw9523/**" + components/io_expander/esp_io_expander_ht8574: depends_filepatterns: - "components/io_expander/esp_io_expander/**" - "components/io_expander/esp_io_expander_ht8574/**" - disable: - - if: IDF_VERSION < "5.2.0" - reason: Requires I2C Driver-NG which was introduced in v5.2 + +components/io_expander/esp_io_expander_pi4ioe5v6408: + depends_filepatterns: + - "components/io_expander/esp_io_expander/**" + - "components/io_expander/esp_io_expander_pi4ioe5v6408/**" components/io_expander/esp_io_expander_tca95xx_16bit: depends_filepatterns: - "components/io_expander/esp_io_expander/**" - "components/io_expander/esp_io_expander_tca95xx_16bit/**" - disable: - - if: IDF_VERSION < "5.2.0" - reason: Requires I2C Driver-NG which was introduced in v5.2 components/io_expander/esp_io_expander_tca9554: depends_filepatterns: - "components/io_expander/esp_io_expander/**" - "components/io_expander/esp_io_expander_tca9554/**" - disable: - - if: IDF_VERSION < "5.2.0" - reason: Requires I2C Driver-NG which was introduced in v5.2 - -components/io_expander/esp_io_expander_pi4ioe5v6408: - depends_filepatterns: - - "components/io_expander/esp_io_expander/**" - - "components/io_expander/esp_io_expander_pi4ioe5v6408/**" - disable: - - if: IDF_VERSION < "5.2.0" - reason: Requires I2C Driver-NG which was introduced in v5.2 diff --git a/components/lcd/.build-test-rules.yml b/components/lcd/.build-test-rules.yml index d4e2173a1..40f35997c 100644 --- a/components/lcd/.build-test-rules.yml +++ b/components/lcd/.build-test-rules.yml @@ -6,9 +6,6 @@ components/lcd/esp_lcd_gc9a01: components/lcd/esp_lcd_gc9503: depends_filepatterns: - "components/lcd/esp_lcd_gc9503/**" - disable: - - if: IDF_VERSION < "5.2.0" - reason: Component is supported only for IDF >= 5.2 components/lcd/esp_lcd_ili9341: depends_filepatterns: @@ -23,6 +20,10 @@ components/lcd/esp_lcd_ili9881c: - if: IDF_TARGET not in ["esp32p4"] reason: Component is supported only for esp32p4 target +components/lcd/esp_lcd_lt8912b: + depends_filepatterns: + - "components/lcd/esp_lcd_lt8912b/**" + components/lcd/esp_lcd_nt35510: depends_filepatterns: - "components/lcd/esp_lcd_nt35510/**" @@ -32,6 +33,14 @@ components/lcd/esp_lcd_nt35510: - if: IDF_TARGET not in ["esp32", "esp32s2", "esp32s3"] reason: Test on these targets is sufficient +components/lcd/esp_lcd_ra8875: + depends_filepatterns: + - "components/lcd/esp_lcd_ra8875/**" + +components/lcd/esp_lcd_sh1107: + depends_filepatterns: + - "components/lcd/esp_lcd_sh1107/**" + components/lcd/esp_lcd_ssd1681: depends_filepatterns: - "components/lcd/esp_lcd_ssd1681/**" diff --git a/components/lcd/esp_lcd_lt8912b/test_apps/CMakeLists.txt b/components/lcd/esp_lcd_lt8912b/test_apps/CMakeLists.txt new file mode 100644 index 000000000..4f279c547 --- /dev/null +++ b/components/lcd/esp_lcd_lt8912b/test_apps/CMakeLists.txt @@ -0,0 +1,4 @@ +cmake_minimum_required(VERSION 3.16) +set(COMPONENTS main) +include($ENV{IDF_PATH}/tools/cmake/project.cmake) +project(compilation_test) diff --git a/components/lcd/esp_lcd_lt8912b/test_apps/main/CMakeLists.txt b/components/lcd/esp_lcd_lt8912b/test_apps/main/CMakeLists.txt new file mode 100644 index 000000000..83cbf0105 --- /dev/null +++ b/components/lcd/esp_lcd_lt8912b/test_apps/main/CMakeLists.txt @@ -0,0 +1 @@ +idf_component_register( SRCS "compilation_test.c" ) \ No newline at end of file diff --git a/components/lcd/esp_lcd_lt8912b/test_apps/main/compilation_test.c b/components/lcd/esp_lcd_lt8912b/test_apps/main/compilation_test.c new file mode 100644 index 000000000..4cba210cd --- /dev/null +++ b/components/lcd/esp_lcd_lt8912b/test_apps/main/compilation_test.c @@ -0,0 +1,12 @@ +/* + * SPDX-FileCopyrightText: 2024-2026 Espressif Systems (Shanghai) CO LTD + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#include "esp_lcd_lt8912b.h" + +void app_main(void) +{ + // Just enough to test component compilation +} diff --git a/components/lcd/esp_lcd_lt8912b/test_apps/main/idf_component.yml b/components/lcd/esp_lcd_lt8912b/test_apps/main/idf_component.yml new file mode 100644 index 000000000..3dc7f36dc --- /dev/null +++ b/components/lcd/esp_lcd_lt8912b/test_apps/main/idf_component.yml @@ -0,0 +1,6 @@ +## IDF Component Manager Manifest File +dependencies: + esp_lcd_lt8912b: + version: "*" + path: "../../../esp_lcd_lt8912b" + idf: ">=5.3" \ No newline at end of file diff --git a/components/lcd/esp_lcd_lt8912b/test_apps/sdkconfig.defaults b/components/lcd/esp_lcd_lt8912b/test_apps/sdkconfig.defaults new file mode 100644 index 000000000..2f321a4bf --- /dev/null +++ b/components/lcd/esp_lcd_lt8912b/test_apps/sdkconfig.defaults @@ -0,0 +1,3 @@ +CONFIG_ESP_INT_WDT=n +CONFIG_ESP_TASK_WDT=n +CONFIG_IDF_TARGET="esp32p4" \ No newline at end of file diff --git a/components/lcd/esp_lcd_ra8875/test_apps/CMakeLists.txt b/components/lcd/esp_lcd_ra8875/test_apps/CMakeLists.txt new file mode 100644 index 000000000..4f279c547 --- /dev/null +++ b/components/lcd/esp_lcd_ra8875/test_apps/CMakeLists.txt @@ -0,0 +1,4 @@ +cmake_minimum_required(VERSION 3.16) +set(COMPONENTS main) +include($ENV{IDF_PATH}/tools/cmake/project.cmake) +project(compilation_test) diff --git a/components/lcd/esp_lcd_ra8875/test_apps/main/CMakeLists.txt b/components/lcd/esp_lcd_ra8875/test_apps/main/CMakeLists.txt new file mode 100644 index 000000000..83cbf0105 --- /dev/null +++ b/components/lcd/esp_lcd_ra8875/test_apps/main/CMakeLists.txt @@ -0,0 +1 @@ +idf_component_register( SRCS "compilation_test.c" ) \ No newline at end of file diff --git a/components/lcd/esp_lcd_ra8875/test_apps/main/compilation_test.c b/components/lcd/esp_lcd_ra8875/test_apps/main/compilation_test.c new file mode 100644 index 000000000..733b61f4b --- /dev/null +++ b/components/lcd/esp_lcd_ra8875/test_apps/main/compilation_test.c @@ -0,0 +1,12 @@ +/* + * SPDX-FileCopyrightText: 2024-2026 Espressif Systems (Shanghai) CO LTD + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#include "esp_lcd_ra8875.h" + +void app_main(void) +{ + // Just enough to test component compilation +} diff --git a/components/lcd/esp_lcd_ra8875/test_apps/main/idf_component.yml b/components/lcd/esp_lcd_ra8875/test_apps/main/idf_component.yml new file mode 100644 index 000000000..167d019f1 --- /dev/null +++ b/components/lcd/esp_lcd_ra8875/test_apps/main/idf_component.yml @@ -0,0 +1,6 @@ +## IDF Component Manager Manifest File +dependencies: + esp_lcd_ra8875: + version: "*" + path: "../../../esp_lcd_ra8875" + idf: ">=5.3" \ No newline at end of file diff --git a/components/lcd/esp_lcd_ra8875/test_apps/sdkconfig.defaults b/components/lcd/esp_lcd_ra8875/test_apps/sdkconfig.defaults new file mode 100644 index 000000000..2f321a4bf --- /dev/null +++ b/components/lcd/esp_lcd_ra8875/test_apps/sdkconfig.defaults @@ -0,0 +1,3 @@ +CONFIG_ESP_INT_WDT=n +CONFIG_ESP_TASK_WDT=n +CONFIG_IDF_TARGET="esp32p4" \ No newline at end of file diff --git a/components/lcd/esp_lcd_sh1107/test_apps/CMakeLists.txt b/components/lcd/esp_lcd_sh1107/test_apps/CMakeLists.txt new file mode 100644 index 000000000..4f279c547 --- /dev/null +++ b/components/lcd/esp_lcd_sh1107/test_apps/CMakeLists.txt @@ -0,0 +1,4 @@ +cmake_minimum_required(VERSION 3.16) +set(COMPONENTS main) +include($ENV{IDF_PATH}/tools/cmake/project.cmake) +project(compilation_test) diff --git a/components/lcd/esp_lcd_sh1107/test_apps/main/CMakeLists.txt b/components/lcd/esp_lcd_sh1107/test_apps/main/CMakeLists.txt new file mode 100644 index 000000000..83cbf0105 --- /dev/null +++ b/components/lcd/esp_lcd_sh1107/test_apps/main/CMakeLists.txt @@ -0,0 +1 @@ +idf_component_register( SRCS "compilation_test.c" ) \ No newline at end of file diff --git a/components/lcd/esp_lcd_sh1107/test_apps/main/compilation_test.c b/components/lcd/esp_lcd_sh1107/test_apps/main/compilation_test.c new file mode 100644 index 000000000..05d00d5b7 --- /dev/null +++ b/components/lcd/esp_lcd_sh1107/test_apps/main/compilation_test.c @@ -0,0 +1,12 @@ +/* + * SPDX-FileCopyrightText: 2024-2026 Espressif Systems (Shanghai) CO LTD + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#include "esp_lcd_sh1107.h" + +void app_main(void) +{ + // Just enough to test component compilation +} diff --git a/components/lcd/esp_lcd_sh1107/test_apps/main/idf_component.yml b/components/lcd/esp_lcd_sh1107/test_apps/main/idf_component.yml new file mode 100644 index 000000000..fa8a8cff8 --- /dev/null +++ b/components/lcd/esp_lcd_sh1107/test_apps/main/idf_component.yml @@ -0,0 +1,6 @@ +## IDF Component Manager Manifest File +dependencies: + esp_lcd_sh1107: + version: "*" + path: "../../../esp_lcd_sh1107" + idf: ">=5.3" \ No newline at end of file diff --git a/components/lcd/esp_lcd_sh1107/test_apps/sdkconfig.defaults b/components/lcd/esp_lcd_sh1107/test_apps/sdkconfig.defaults new file mode 100644 index 000000000..2f321a4bf --- /dev/null +++ b/components/lcd/esp_lcd_sh1107/test_apps/sdkconfig.defaults @@ -0,0 +1,3 @@ +CONFIG_ESP_INT_WDT=n +CONFIG_ESP_TASK_WDT=n +CONFIG_IDF_TARGET="esp32p4" \ No newline at end of file diff --git a/components/lcd_touch/.build-test-rules.yml b/components/lcd_touch/.build-test-rules.yml index 3c2b9c8d1..256f7aa61 100644 --- a/components/lcd_touch/.build-test-rules.yml +++ b/components/lcd_touch/.build-test-rules.yml @@ -1,8 +1,30 @@ # LCD Touch components: Build only on related changes components/lcd_touch/esp_lcd_touch_cst816s: depends_filepatterns: + - "components/lcd_touch/**" - "components/lcd_touch/esp_lcd_touch_cst816s/**" +components/lcd_touch/esp_lcd_touch_ft5x06: + depends_filepatterns: + - "components/lcd_touch/**" + - "components/lcd_touch/esp_lcd_touch_ft5x06/**" + +components/lcd_touch/esp_lcd_touch_gt911: + depends_filepatterns: + - "components/lcd_touch/**" + - "components/lcd_touch/esp_lcd_touch_gt911/**" + +components/lcd_touch/esp_lcd_touch_gt1151: + depends_filepatterns: + - "components/lcd_touch/**" + - "components/lcd_touch/esp_lcd_touch_gt1151/**" + components/lcd_touch/esp_lcd_touch_stmpe610: depends_filepatterns: + - "components/lcd_touch/**" - "components/lcd_touch/esp_lcd_touch_stmpe610/**" + +components/lcd_touch/esp_lcd_touch_tt21100: + depends_filepatterns: + - "components/lcd_touch/**" + - "components/lcd_touch/esp_lcd_touch_tt21100/**" \ No newline at end of file diff --git a/components/lcd_touch/esp_lcd_touch_ft5x06/test_apps/CMakeLists.txt b/components/lcd_touch/esp_lcd_touch_ft5x06/test_apps/CMakeLists.txt new file mode 100644 index 000000000..4f279c547 --- /dev/null +++ b/components/lcd_touch/esp_lcd_touch_ft5x06/test_apps/CMakeLists.txt @@ -0,0 +1,4 @@ +cmake_minimum_required(VERSION 3.16) +set(COMPONENTS main) +include($ENV{IDF_PATH}/tools/cmake/project.cmake) +project(compilation_test) diff --git a/components/lcd_touch/esp_lcd_touch_ft5x06/test_apps/main/CMakeLists.txt b/components/lcd_touch/esp_lcd_touch_ft5x06/test_apps/main/CMakeLists.txt new file mode 100644 index 000000000..83cbf0105 --- /dev/null +++ b/components/lcd_touch/esp_lcd_touch_ft5x06/test_apps/main/CMakeLists.txt @@ -0,0 +1 @@ +idf_component_register( SRCS "compilation_test.c" ) \ No newline at end of file diff --git a/components/lcd_touch/esp_lcd_touch_ft5x06/test_apps/main/compilation_test.c b/components/lcd_touch/esp_lcd_touch_ft5x06/test_apps/main/compilation_test.c new file mode 100644 index 000000000..c97f9e3b1 --- /dev/null +++ b/components/lcd_touch/esp_lcd_touch_ft5x06/test_apps/main/compilation_test.c @@ -0,0 +1,12 @@ +/* + * SPDX-FileCopyrightText: 2024-2026 Espressif Systems (Shanghai) CO LTD + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#include "esp_lcd_touch_ft5x06.h" + +void app_main(void) +{ + // Just enough to test component compilation +} diff --git a/components/lcd_touch/esp_lcd_touch_ft5x06/test_apps/main/idf_component.yml b/components/lcd_touch/esp_lcd_touch_ft5x06/test_apps/main/idf_component.yml new file mode 100644 index 000000000..9a74f8d66 --- /dev/null +++ b/components/lcd_touch/esp_lcd_touch_ft5x06/test_apps/main/idf_component.yml @@ -0,0 +1,6 @@ +## IDF Component Manager Manifest File +dependencies: + esp_lcd_touch_ft5x06: + version: "*" + path: "../../../esp_lcd_touch_ft5x06" + idf: ">=5.3" \ No newline at end of file diff --git a/components/lcd_touch/esp_lcd_touch_ft5x06/test_apps/sdkconfig.defaults b/components/lcd_touch/esp_lcd_touch_ft5x06/test_apps/sdkconfig.defaults new file mode 100644 index 000000000..2f321a4bf --- /dev/null +++ b/components/lcd_touch/esp_lcd_touch_ft5x06/test_apps/sdkconfig.defaults @@ -0,0 +1,3 @@ +CONFIG_ESP_INT_WDT=n +CONFIG_ESP_TASK_WDT=n +CONFIG_IDF_TARGET="esp32p4" \ No newline at end of file diff --git a/components/lcd_touch/esp_lcd_touch_gt1151/test_apps/CMakeLists.txt b/components/lcd_touch/esp_lcd_touch_gt1151/test_apps/CMakeLists.txt new file mode 100644 index 000000000..4f279c547 --- /dev/null +++ b/components/lcd_touch/esp_lcd_touch_gt1151/test_apps/CMakeLists.txt @@ -0,0 +1,4 @@ +cmake_minimum_required(VERSION 3.16) +set(COMPONENTS main) +include($ENV{IDF_PATH}/tools/cmake/project.cmake) +project(compilation_test) diff --git a/components/lcd_touch/esp_lcd_touch_gt1151/test_apps/main/CMakeLists.txt b/components/lcd_touch/esp_lcd_touch_gt1151/test_apps/main/CMakeLists.txt new file mode 100644 index 000000000..83cbf0105 --- /dev/null +++ b/components/lcd_touch/esp_lcd_touch_gt1151/test_apps/main/CMakeLists.txt @@ -0,0 +1 @@ +idf_component_register( SRCS "compilation_test.c" ) \ No newline at end of file diff --git a/components/lcd_touch/esp_lcd_touch_gt1151/test_apps/main/compilation_test.c b/components/lcd_touch/esp_lcd_touch_gt1151/test_apps/main/compilation_test.c new file mode 100644 index 000000000..c68afdee7 --- /dev/null +++ b/components/lcd_touch/esp_lcd_touch_gt1151/test_apps/main/compilation_test.c @@ -0,0 +1,12 @@ +/* + * SPDX-FileCopyrightText: 2024-2026 Espressif Systems (Shanghai) CO LTD + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#include "esp_lcd_touch_gt1151.h" + +void app_main(void) +{ + // Just enough to test component compilation +} diff --git a/components/lcd_touch/esp_lcd_touch_gt1151/test_apps/main/idf_component.yml b/components/lcd_touch/esp_lcd_touch_gt1151/test_apps/main/idf_component.yml new file mode 100644 index 000000000..50aa27db5 --- /dev/null +++ b/components/lcd_touch/esp_lcd_touch_gt1151/test_apps/main/idf_component.yml @@ -0,0 +1,6 @@ +## IDF Component Manager Manifest File +dependencies: + esp_lcd_touch_gt1151: + version: "*" + path: "../../../esp_lcd_touch_gt1151" + idf: ">=5.3" \ No newline at end of file diff --git a/components/lcd_touch/esp_lcd_touch_gt1151/test_apps/sdkconfig.defaults b/components/lcd_touch/esp_lcd_touch_gt1151/test_apps/sdkconfig.defaults new file mode 100644 index 000000000..2f321a4bf --- /dev/null +++ b/components/lcd_touch/esp_lcd_touch_gt1151/test_apps/sdkconfig.defaults @@ -0,0 +1,3 @@ +CONFIG_ESP_INT_WDT=n +CONFIG_ESP_TASK_WDT=n +CONFIG_IDF_TARGET="esp32p4" \ No newline at end of file diff --git a/components/lcd_touch/esp_lcd_touch_gt911/test_apps/CMakeLists.txt b/components/lcd_touch/esp_lcd_touch_gt911/test_apps/CMakeLists.txt new file mode 100644 index 000000000..4f279c547 --- /dev/null +++ b/components/lcd_touch/esp_lcd_touch_gt911/test_apps/CMakeLists.txt @@ -0,0 +1,4 @@ +cmake_minimum_required(VERSION 3.16) +set(COMPONENTS main) +include($ENV{IDF_PATH}/tools/cmake/project.cmake) +project(compilation_test) diff --git a/components/lcd_touch/esp_lcd_touch_gt911/test_apps/main/CMakeLists.txt b/components/lcd_touch/esp_lcd_touch_gt911/test_apps/main/CMakeLists.txt new file mode 100644 index 000000000..83cbf0105 --- /dev/null +++ b/components/lcd_touch/esp_lcd_touch_gt911/test_apps/main/CMakeLists.txt @@ -0,0 +1 @@ +idf_component_register( SRCS "compilation_test.c" ) \ No newline at end of file diff --git a/components/lcd_touch/esp_lcd_touch_gt911/test_apps/main/compilation_test.c b/components/lcd_touch/esp_lcd_touch_gt911/test_apps/main/compilation_test.c new file mode 100644 index 000000000..b79a78baf --- /dev/null +++ b/components/lcd_touch/esp_lcd_touch_gt911/test_apps/main/compilation_test.c @@ -0,0 +1,12 @@ +/* + * SPDX-FileCopyrightText: 2024-2026 Espressif Systems (Shanghai) CO LTD + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#include "esp_lcd_touch_gt911.h" + +void app_main(void) +{ + // Just enough to test component compilation +} diff --git a/components/lcd_touch/esp_lcd_touch_gt911/test_apps/main/idf_component.yml b/components/lcd_touch/esp_lcd_touch_gt911/test_apps/main/idf_component.yml new file mode 100644 index 000000000..79245e01e --- /dev/null +++ b/components/lcd_touch/esp_lcd_touch_gt911/test_apps/main/idf_component.yml @@ -0,0 +1,6 @@ +## IDF Component Manager Manifest File +dependencies: + esp_lcd_touch_gt911: + version: "*" + path: "../../../esp_lcd_touch_gt911" + idf: ">=5.3" \ No newline at end of file diff --git a/components/lcd_touch/esp_lcd_touch_gt911/test_apps/sdkconfig.defaults b/components/lcd_touch/esp_lcd_touch_gt911/test_apps/sdkconfig.defaults new file mode 100644 index 000000000..2f321a4bf --- /dev/null +++ b/components/lcd_touch/esp_lcd_touch_gt911/test_apps/sdkconfig.defaults @@ -0,0 +1,3 @@ +CONFIG_ESP_INT_WDT=n +CONFIG_ESP_TASK_WDT=n +CONFIG_IDF_TARGET="esp32p4" \ No newline at end of file diff --git a/components/lcd_touch/esp_lcd_touch_tt21100/test_apps/CMakeLists.txt b/components/lcd_touch/esp_lcd_touch_tt21100/test_apps/CMakeLists.txt new file mode 100644 index 000000000..4f279c547 --- /dev/null +++ b/components/lcd_touch/esp_lcd_touch_tt21100/test_apps/CMakeLists.txt @@ -0,0 +1,4 @@ +cmake_minimum_required(VERSION 3.16) +set(COMPONENTS main) +include($ENV{IDF_PATH}/tools/cmake/project.cmake) +project(compilation_test) diff --git a/components/lcd_touch/esp_lcd_touch_tt21100/test_apps/main/CMakeLists.txt b/components/lcd_touch/esp_lcd_touch_tt21100/test_apps/main/CMakeLists.txt new file mode 100644 index 000000000..83cbf0105 --- /dev/null +++ b/components/lcd_touch/esp_lcd_touch_tt21100/test_apps/main/CMakeLists.txt @@ -0,0 +1 @@ +idf_component_register( SRCS "compilation_test.c" ) \ No newline at end of file diff --git a/components/lcd_touch/esp_lcd_touch_tt21100/test_apps/main/compilation_test.c b/components/lcd_touch/esp_lcd_touch_tt21100/test_apps/main/compilation_test.c new file mode 100644 index 000000000..2f81a85f2 --- /dev/null +++ b/components/lcd_touch/esp_lcd_touch_tt21100/test_apps/main/compilation_test.c @@ -0,0 +1,12 @@ +/* + * SPDX-FileCopyrightText: 2024-2026 Espressif Systems (Shanghai) CO LTD + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#include "esp_lcd_touch_tt21100.h" + +void app_main(void) +{ + // Just enough to test component compilation +} diff --git a/components/lcd_touch/esp_lcd_touch_tt21100/test_apps/main/idf_component.yml b/components/lcd_touch/esp_lcd_touch_tt21100/test_apps/main/idf_component.yml new file mode 100644 index 000000000..cc78d5d1a --- /dev/null +++ b/components/lcd_touch/esp_lcd_touch_tt21100/test_apps/main/idf_component.yml @@ -0,0 +1,6 @@ +## IDF Component Manager Manifest File +dependencies: + esp_lcd_touch_tt21100: + version: "*" + path: "../../../esp_lcd_touch_tt21100" + idf: ">=5.3" \ No newline at end of file diff --git a/components/lcd_touch/esp_lcd_touch_tt21100/test_apps/sdkconfig.defaults b/components/lcd_touch/esp_lcd_touch_tt21100/test_apps/sdkconfig.defaults new file mode 100644 index 000000000..2f321a4bf --- /dev/null +++ b/components/lcd_touch/esp_lcd_touch_tt21100/test_apps/sdkconfig.defaults @@ -0,0 +1,3 @@ +CONFIG_ESP_INT_WDT=n +CONFIG_ESP_TASK_WDT=n +CONFIG_IDF_TARGET="esp32p4" \ No newline at end of file diff --git a/components/sensors/.build-test-rules.yml b/components/sensors/.build-test-rules.yml new file mode 100644 index 000000000..2af00385c --- /dev/null +++ b/components/sensors/.build-test-rules.yml @@ -0,0 +1,11 @@ +components/sensors/aht30: + depends_filepatterns: + - "components/sensors/aht30/**" + +components/sensors/bmi270: + depends_filepatterns: + - "components/sensors/bmi270/**" + +components/sensors/icm42670: + depends_filepatterns: + - "components/sensors/icm42670/**" diff --git a/components/sensors/aht30/test_apps/CMakeLists.txt b/components/sensors/aht30/test_apps/CMakeLists.txt new file mode 100644 index 000000000..4f279c547 --- /dev/null +++ b/components/sensors/aht30/test_apps/CMakeLists.txt @@ -0,0 +1,4 @@ +cmake_minimum_required(VERSION 3.16) +set(COMPONENTS main) +include($ENV{IDF_PATH}/tools/cmake/project.cmake) +project(compilation_test) diff --git a/components/sensors/aht30/test_apps/main/CMakeLists.txt b/components/sensors/aht30/test_apps/main/CMakeLists.txt new file mode 100644 index 000000000..83cbf0105 --- /dev/null +++ b/components/sensors/aht30/test_apps/main/CMakeLists.txt @@ -0,0 +1 @@ +idf_component_register( SRCS "compilation_test.c" ) \ No newline at end of file diff --git a/components/sensors/aht30/test_apps/main/compilation_test.c b/components/sensors/aht30/test_apps/main/compilation_test.c new file mode 100644 index 000000000..832ae25ff --- /dev/null +++ b/components/sensors/aht30/test_apps/main/compilation_test.c @@ -0,0 +1,12 @@ +/* + * SPDX-FileCopyrightText: 2024-2026 Espressif Systems (Shanghai) CO LTD + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#include "aht30.h" + +void app_main(void) +{ + // Just enough to test component compilation +} diff --git a/components/sensors/aht30/test_apps/main/idf_component.yml b/components/sensors/aht30/test_apps/main/idf_component.yml new file mode 100644 index 000000000..6b5edb0d6 --- /dev/null +++ b/components/sensors/aht30/test_apps/main/idf_component.yml @@ -0,0 +1,6 @@ +## IDF Component Manager Manifest File +dependencies: + aht30: + version: "*" + path: "../../../aht30" + idf: ">=5.3" \ No newline at end of file diff --git a/components/sensors/aht30/test_apps/sdkconfig.defaults b/components/sensors/aht30/test_apps/sdkconfig.defaults new file mode 100644 index 000000000..2f321a4bf --- /dev/null +++ b/components/sensors/aht30/test_apps/sdkconfig.defaults @@ -0,0 +1,3 @@ +CONFIG_ESP_INT_WDT=n +CONFIG_ESP_TASK_WDT=n +CONFIG_IDF_TARGET="esp32p4" \ No newline at end of file From c2a8559fc7c7bb85c60d3bb975bbc4977685828c Mon Sep 17 00:00:00 2001 From: Petr Opravil Date: Wed, 15 Apr 2026 13:40:22 +0200 Subject: [PATCH 14/16] Fix benchmark markdown and json files --- conftest.py | 1 + 1 file changed, 1 insertion(+) diff --git a/conftest.py b/conftest.py index 3826186ad..82f8d7fb8 100644 --- a/conftest.py +++ b/conftest.py @@ -18,6 +18,7 @@ def pytest_generate_tests(metafunc): f'/dev/boards/{bsp_name}', f'/dev/boards/{bsp_name}', f'build_{bsp_name}', + id=f'{bsp_name}', # Test are ran one at a time for each board marks=pytest.mark.xdist_group(name=f'{bsp_name}') ) From 2e275da504c1f4266ef2a76733b56179fc0f6051 Mon Sep 17 00:00:00 2001 From: Petr Opravil Date: Wed, 15 Apr 2026 15:11:29 +0200 Subject: [PATCH 15/16] test --- examples/generic_button_led/pytest_generic_button_led.py | 4 ++-- pytest.ini | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/examples/generic_button_led/pytest_generic_button_led.py b/examples/generic_button_led/pytest_generic_button_led.py index 264e1ca89..6ba01996b 100644 --- a/examples/generic_button_led/pytest_generic_button_led.py +++ b/examples/generic_button_led/pytest_generic_button_led.py @@ -5,7 +5,7 @@ from pytest_embedded import Dut -@pytest.mark.runner_esp_bsp_devkit -@pytest.mark.runner_esp_bsp_generic +@pytest.mark.runner_esp32_s3_devkitc_1_1 +@pytest.mark.runner_esp32_s2_devkitc_1 def test_example_generic_button_led(dut: Dut) -> None: dut.expect_exact('main_task: Returned from app_main()') diff --git a/pytest.ini b/pytest.ini index 54517c80b..b9d642ae8 100644 --- a/pytest.ini +++ b/pytest.ini @@ -35,8 +35,8 @@ markers = runner_m5stack_core_s3: m5stack_core_s3 runner runner_m5stack_core_s3_se: m5stack_core_s3_se runner runner_esp32_azure_iot_kit: esp32_azure_iot_kit runner - runner_esp_bsp_devkit: esp32_s3_devkitc_1_1 runner - runner_esp_bsp_generic: esp32_s3_devkitc_1_1 runner + runner_esp32_s2_devkitc_1: esp32_s2_devkitc_1 runner + runner_esp32_s3_devkitc_1_1: esp32_s3_devkitc_1_1 runner runner_esp32_s3_korvo_2: esp32_s3_korvo_2 runner runner_m5_atom_s3: m5 Atom S3 runner runner_esp32_p4_eye: ESP32-P4 EYE runner From 565a663eeeb3d81521d53bfba5e77b78deae1f34 Mon Sep 17 00:00:00 2001 From: Petr Opravil Date: Thu, 16 Apr 2026 10:36:23 +0200 Subject: [PATCH 16/16] Add custom overwritable build dir to pytest --- conftest.py | 4 +++- examples/display/pytest_display.py | 4 ++-- .../display_lvgl_benchmark/pytest_display_lvgl_benchmark.py | 4 ++-- examples/display_lvgl_demos/pytest_display_lvgl_demos.py | 4 ++-- examples/generic_button_led/pytest_generic_button_led.py | 4 ++-- 5 files changed, 11 insertions(+), 9 deletions(-) diff --git a/conftest.py b/conftest.py index 82f8d7fb8..97a2bef85 100644 --- a/conftest.py +++ b/conftest.py @@ -14,10 +14,12 @@ def pytest_generate_tests(metafunc): for marker in metafunc.definition.iter_markers(): if "runner_" in marker.name: bsp_name = marker.name.removeprefix("runner_") + # Some runners share a build directory thus must overwrite it + build_dir = marker.kwargs.get("build_dir", f'build_{bsp_name}') bsp_param = pytest.param( f'/dev/boards/{bsp_name}', f'/dev/boards/{bsp_name}', - f'build_{bsp_name}', + build_dir, id=f'{bsp_name}', # Test are ran one at a time for each board marks=pytest.mark.xdist_group(name=f'{bsp_name}') diff --git a/examples/display/pytest_display.py b/examples/display/pytest_display.py index 149af8f57..7c0fc0ce2 100644 --- a/examples/display/pytest_display.py +++ b/examples/display/pytest_display.py @@ -5,12 +5,12 @@ from pytest_embedded import Dut -@pytest.mark.runner_esp_box_3 +@pytest.mark.runner_esp_box_3(build_dir="build_esp-box-3") @pytest.mark.runner_esp32_p4_function_ev_board @pytest.mark.runner_esp32_c3_lcdkit @pytest.mark.runner_esp32_s3_eye @pytest.mark.runner_esp32_s3_lcd_ev_board -@pytest.mark.runner_esp32_s3_lcd_ev_board_2 +@pytest.mark.runner_esp32_s3_lcd_ev_board_2(build_dir="build_esp32_s3_lcd_ev_board") @pytest.mark.runner_esp32_s3_usb_otg @pytest.mark.runner_esp_wrover_kit @pytest.mark.runner_esp32_s3_korvo_2 diff --git a/examples/display_lvgl_benchmark/pytest_display_lvgl_benchmark.py b/examples/display_lvgl_benchmark/pytest_display_lvgl_benchmark.py index bd7f60bc6..99a838f55 100644 --- a/examples/display_lvgl_benchmark/pytest_display_lvgl_benchmark.py +++ b/examples/display_lvgl_benchmark/pytest_display_lvgl_benchmark.py @@ -54,11 +54,11 @@ def get_test_diff(test1, test2, name, positive): return f"*({sign}{diff})*" -@pytest.mark.runner_esp_box_3 +@pytest.mark.runner_esp_box_3(build_dir="build_esp-box-3") @pytest.mark.runner_esp32_p4_function_ev_board @pytest.mark.runner_esp32_s3_eye @pytest.mark.runner_esp32_s3_lcd_ev_board -@pytest.mark.runner_esp32_s3_lcd_ev_board_2 +@pytest.mark.runner_esp32_s3_lcd_ev_board_2(build_dir="build_esp32_s3_lcd_ev_board") @pytest.mark.runner_m5dial @pytest.mark.runner_m5stack_core_s3 def test_example_lvgl_benchmark(dut: Dut, request) -> None: diff --git a/examples/display_lvgl_demos/pytest_display_lvgl_demos.py b/examples/display_lvgl_demos/pytest_display_lvgl_demos.py index 42569e0f8..0f0857630 100644 --- a/examples/display_lvgl_demos/pytest_display_lvgl_demos.py +++ b/examples/display_lvgl_demos/pytest_display_lvgl_demos.py @@ -5,11 +5,11 @@ from pytest_embedded import Dut -@pytest.mark.runner_esp_box_3 +@pytest.mark.runner_esp_box_3(build_dir="build_esp-box-3") @pytest.mark.runner_esp32_p4_function_ev_board @pytest.mark.runner_esp32_s3_eye @pytest.mark.runner_esp32_s3_lcd_ev_board -@pytest.mark.runner_esp32_s3_lcd_ev_board_2 +@pytest.mark.runner_esp32_s3_lcd_ev_board_2(build_dir="build_esp32_s3_lcd_ev_board") @pytest.mark.runner_m5dial @pytest.mark.runner_m5stack_core_s3 def test_example_lvgl_demos(dut: Dut) -> None: diff --git a/examples/generic_button_led/pytest_generic_button_led.py b/examples/generic_button_led/pytest_generic_button_led.py index 6ba01996b..97600e14e 100644 --- a/examples/generic_button_led/pytest_generic_button_led.py +++ b/examples/generic_button_led/pytest_generic_button_led.py @@ -5,7 +5,7 @@ from pytest_embedded import Dut -@pytest.mark.runner_esp32_s3_devkitc_1_1 -@pytest.mark.runner_esp32_s2_devkitc_1 +@pytest.mark.runner_esp32_s3_devkitc_1_1(build_dir="build_esp_bsp_devkit") +@pytest.mark.runner_esp32_s2_devkitc_1(build_dir="build_esp_bsp_generic") def test_example_generic_button_led(dut: Dut) -> None: dut.expect_exact('main_task: Returned from app_main()')