diff --git a/.github/workflows/benchmark.yml b/.github/workflows/benchmark.yml new file mode 100644 index 000000000..1d52b2976 --- /dev/null +++ b/.github/workflows/benchmark.yml @@ -0,0 +1,96 @@ +name: Run LVGL benchmarks and publish their outputs + +on: + push: + branches: + - master + schedule: + - cron: '0 20 * * SAT' + workflow_dispatch: + # TODO: Remove + pull_request: + types: [opened, reopened, synchronize, labeled] + +permissions: + checks: write + +jobs: + build_benchmarks: + env: + BENCHMARK_PROJECT_DIR: "examples/display_lvgl_benchmark" + runs-on: ubuntu-latest + container: espressif/idf:release-v5.5 + 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 + runs-on: [self-hosted, Linux, bspwall] + container: + image: espressif/idf:${{ matrix.idf_ver }} + options: --privileged -v /dev/boards:/dev/boards/ + steps: + - uses: actions/checkout@v6 + - uses: actions/download-artifact@v8 + with: + pattern: app_binaries + # Restores artifacts to their original paths + 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 + + # 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_NAME }}.xml \ + -p no:idf-ci + - name: Upload test results + uses: actions/upload-artifact@v7 + if: always() + with: + name: ${{ env.TEST_RESULT_NAME }} + path: | + ${{ env.TEST_RESULT_NAME }}.xml + *.log + benchmark_*.md + benchmark_*.json + benchmark.json \ No newline at end of file diff --git a/.github/workflows/build-run-applications.yml b/.github/workflows/build-run-applications.yml index 285979b1a..c3ee5133f 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: @@ -63,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 @@ -99,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,23 +134,15 @@ 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 }} 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 }}_* @@ -177,9 +161,9 @@ 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 --junit-xml=${{ env.TEST_RESULT_FILE }} -n auto --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/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/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..7c139f30b 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,48 +65,20 @@ jobs: upload_other_components: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v5 + - 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' }} + + 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 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/.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 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" 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/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/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/test_apps/components/sdkconfig.defaults b/components/lcd/esp_lcd_lt8912b/test_apps/sdkconfig.defaults similarity index 61% rename from test_apps/components/sdkconfig.defaults rename to components/lcd/esp_lcd_lt8912b/test_apps/sdkconfig.defaults index 808f92a17..2f321a4bf 100644 --- a/test_apps/components/sdkconfig.defaults +++ b/components/lcd/esp_lcd_lt8912b/test_apps/sdkconfig.defaults @@ -1,2 +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/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" 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 diff --git a/conftest.py b/conftest.py index f8fc6a5b4..97a2bef85 100644 --- a/conftest.py +++ b/conftest.py @@ -1,113 +1,35 @@ -# 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_") + # 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}', + 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}') + ) + 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..7c0fc0ce2 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(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(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 +@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/main/main.c b/examples/display_lvgl_benchmark/main/main.c index 21bf87c21..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,10 +32,66 @@ 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(); bsp_display_backlight_on(); ESP_LOGI(TAG, "Display LVGL demo"); diff --git a/examples/display_lvgl_benchmark/pytest_display_lvgl_benchmark.py b/examples/display_lvgl_benchmark/pytest_display_lvgl_benchmark.py index 2f52e2790..99a838f55 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(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(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: date = datetime.datetime.now() board = request.node.callspec.id 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 diff --git a/examples/display_lvgl_demos/pytest_display_lvgl_demos.py b/examples/display_lvgl_demos/pytest_display_lvgl_demos.py index bea952ffc..0f0857630 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(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(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: 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..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.esp_bsp_devkit -@pytest.mark.esp_bsp_generic +@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()') diff --git a/pytest.ini b/pytest.ini index 9d617cbc9..b9d642ae8 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_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 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(); -}