Merge branch 'feat/esp32p4_enable_target_test' into 'master'

ci: enable esp32p4 target test

Closes IDF-7522 and IDF-7521

See merge request espressif/esp-idf!28001
This commit is contained in:
Armando (Dou Yiwen) 2024-01-04 11:23:24 +08:00
commit 2ff22c2bad
79 changed files with 387 additions and 29 deletions

View File

@ -180,6 +180,15 @@ build_pytest_examples_esp32h2:
IDF_TARGET: esp32h2
TEST_DIR: examples
build_pytest_examples_esp32p4:
extends:
- .build_pytest_no_jtag_template
- .rules:build:example_test-esp32p4
parallel: 2
variables:
IDF_TARGET: esp32p4
TEST_DIR: examples
build_pytest_examples_jtag: # for all targets
extends:
- .build_pytest_jtag_template
@ -251,6 +260,15 @@ build_pytest_components_esp32h2:
IDF_TARGET: esp32h2
TEST_DIR: components
build_pytest_components_esp32p4:
extends:
- .build_pytest_template
- .rules:build:component_ut-esp32p4
parallel: 4
variables:
IDF_TARGET: esp32p4
TEST_DIR: components
build_only_components_apps:
extends:
- .build_cmake_template
@ -324,6 +342,14 @@ build_pytest_test_apps_esp32h2:
IDF_TARGET: esp32h2
TEST_DIR: tools/test_apps
build_pytest_test_apps_esp32p4:
extends:
- .build_pytest_template
- .rules:build:custom_test-esp32p4
variables:
IDF_TARGET: esp32p4
TEST_DIR: tools/test_apps
build_only_tools_test_apps:
extends:
- .build_cmake_template

View File

@ -9,8 +9,8 @@
extra_default_build_targets:
- esp32p4
bypass_check_test_targets:
- esp32p4
# bypass_check_test_targets:
# - esp32p4
#
# These lines would
# - enable the README.md check for esp32c6. Don't forget to add the build jobs in .gitlab/ci/build.yml

View File

@ -830,6 +830,44 @@
- <<: *if-dev-push
changes: *patterns-target_test-wifi
.rules:build:component_ut-esp32p4:
rules:
- <<: *if-revert-branch
when: never
- <<: *if-protected
- <<: *if-label-build
- <<: *if-label-component_ut
- <<: *if-label-component_ut_esp32p4
- <<: *if-label-target_test
- <<: *if-dev-push
changes: *patterns-build_components
- <<: *if-dev-push
changes: *patterns-build_system
- <<: *if-dev-push
changes: *patterns-component_ut
- <<: *if-dev-push
changes: *patterns-component_ut-adc
- <<: *if-dev-push
changes: *patterns-component_ut-flash_multi
- <<: *if-dev-push
changes: *patterns-component_ut-i154
- <<: *if-dev-push
changes: *patterns-component_ut-nvs_encr_hmac
- <<: *if-dev-push
changes: *patterns-component_ut-sdio
- <<: *if-dev-push
changes: *patterns-component_ut-usb
- <<: *if-dev-push
changes: *patterns-component_ut-wifi
- <<: *if-dev-push
changes: *patterns-downloadable-tools
- <<: *if-dev-push
changes: *patterns-target_test-adc
- <<: *if-dev-push
changes: *patterns-target_test-ecdsa
- <<: *if-dev-push
changes: *patterns-target_test-wifi
.rules:build:component_ut-esp32s2:
rules:
- <<: *if-revert-branch
@ -1069,6 +1107,32 @@
- <<: *if-dev-push
changes: *patterns-target_test-wifi
.rules:build:custom_test-esp32p4:
rules:
- <<: *if-revert-branch
when: never
- <<: *if-protected
- <<: *if-label-build
- <<: *if-label-custom_test
- <<: *if-label-custom_test_esp32p4
- <<: *if-label-target_test
- <<: *if-dev-push
changes: *patterns-build_components
- <<: *if-dev-push
changes: *patterns-build_system
- <<: *if-dev-push
changes: *patterns-custom_test
- <<: *if-dev-push
changes: *patterns-custom_test-wifi
- <<: *if-dev-push
changes: *patterns-downloadable-tools
- <<: *if-dev-push
changes: *patterns-target_test-adc
- <<: *if-dev-push
changes: *patterns-target_test-ecdsa
- <<: *if-dev-push
changes: *patterns-target_test-wifi
.rules:build:custom_test-esp32s2:
rules:
- <<: *if-revert-branch
@ -1871,6 +1935,19 @@
- <<: *if-dev-push
changes: *patterns-target_test-ecdsa
.rules:test:component_ut-esp32p4:
rules:
- <<: *if-revert-branch
when: never
- <<: *if-protected
- <<: *if-label-build-only
when: never
- <<: *if-label-component_ut
- <<: *if-label-component_ut_esp32p4
- <<: *if-label-target_test
- <<: *if-dev-push
changes: *patterns-component_ut
.rules:test:component_ut-esp32s2:
rules:
- <<: *if-revert-branch
@ -2089,6 +2166,19 @@
- <<: *if-dev-push
changes: *patterns-custom_test
.rules:test:custom_test-esp32p4:
rules:
- <<: *if-revert-branch
when: never
- <<: *if-protected
- <<: *if-label-build-only
when: never
- <<: *if-label-custom_test
- <<: *if-label-custom_test_esp32p4
- <<: *if-label-target_test
- <<: *if-dev-push
changes: *patterns-custom_test
.rules:test:custom_test-esp32s2:
rules:
- <<: *if-revert-branch
@ -2425,6 +2515,21 @@
- <<: *if-dev-push
changes: *patterns-target_test-adc
.rules:test:example_test-esp32p4:
rules:
- <<: *if-revert-branch
when: never
- <<: *if-protected
- <<: *if-label-build-only
when: never
- <<: *if-label-example_test
- <<: *if-label-example_test_esp32p4
- <<: *if-label-target_test
- <<: *if-dev-push
changes: *patterns-build-example_test
- <<: *if-dev-push
changes: *patterns-example_test
.rules:test:example_test-esp32s2:
rules:
- <<: *if-revert-branch

View File

@ -247,6 +247,15 @@ pytest_examples_esp32h2_generic:
artifacts: false
tags: [ esp32h2, generic ]
pytest_examples_esp32p4_generic:
extends:
- .pytest_examples_dir_template
- .rules:test:example_test-esp32p4
needs:
- job: build_pytest_examples_esp32p4
artifacts: false
tags: [ esp32p4, generic ]
pytest_examples_esp32_ethernet_ota:
extends:
- .pytest_examples_dir_template
@ -1253,6 +1262,16 @@ pytest_components_esp32h2_generic:
tags: [ esp32h2, generic ]
parallel: 2
pytest_components_esp32p4_generic:
extends:
- .pytest_components_dir_template
- .rules:test:component_ut-esp32p4
needs:
- job: build_pytest_components_esp32p4
artifacts: false
tags: [ esp32p4, generic ]
parallel: 2
pytest_components_esp32h2_generic_multi_device:
extends:
- .pytest_components_dir_template
@ -1522,6 +1541,15 @@ pytest_test_apps_esp32h2_generic:
artifacts: false
tags: [ esp32h2, generic ]
pytest_test_apps_esp32p4_generic:
extends:
- .pytest_test_apps_dir_template
- .rules:test:custom_test-esp32p4
needs:
- job: build_pytest_test_apps_esp32p4
artifacts: false
tags: [ esp32p4, generic ]
pytest_test_apps_esp32s3_mspi_f8r8:
extends:
- .pytest_test_apps_dir_template

View File

@ -19,7 +19,7 @@ def run_multiple_stages(dut: Dut, test_case_num: int, stages: int) -> None:
@pytest.mark.supported_targets
@pytest.mark.temp_skip_ci(targets=['esp32c6', 'esp32h2'], reason='c6/h2 support TBD')
@pytest.mark.temp_skip_ci(targets=['esp32c6', 'esp32h2', 'esp32p4'], reason='c6/h2/p4 support TBD') # TODO: IDF-8959
@pytest.mark.generic
def test_app_update(dut: Dut) -> None:
extra_data = dut.parse_test_menu()

View File

@ -33,12 +33,20 @@ components/driver/test_apps/legacy_i2c_driver:
components/driver/test_apps/legacy_mcpwm_driver:
disable:
- if: SOC_MCPWM_SUPPORTED != 1
disable_test:
- if: IDF_TARGET == "esp32p4"
temporary: true
reason: test not pass, should be re-enable # TODO: IDF-8963
depends_filepatterns:
- components/driver/deprecated/**/*mcpwm*
components/driver/test_apps/legacy_pcnt_driver:
disable:
- if: SOC_PCNT_SUPPORTED != 1
disable_test:
- if: IDF_TARGET == "esp32p4"
temporary: true
reason: test not pass, should be re-enable # TODO: IDF-8965
depends_filepatterns:
- components/driver/deprecated/**/*pcnt*
@ -63,6 +71,10 @@ components/driver/test_apps/legacy_sigma_delta_driver:
components/driver/test_apps/legacy_timer_driver:
disable:
- if: SOC_GPTIMER_SUPPORTED != 1
disable_test:
- if: IDF_TARGET == "esp32p4"
temporary: true
reason: test not pass, should be re-enable # TODO: IDF-8962
depends_filepatterns:
- components/driver/deprecated/**/*timer*
@ -85,6 +97,10 @@ components/driver/test_apps/touch_sensor_v2:
components/driver/test_apps/twai:
disable:
- if: SOC_TWAI_SUPPORTED != 1
disable_test:
- if: IDF_TARGET == "esp32p4"
temporary: true
reason: test not pass, should be re-enable # TODO: IDF-8966
components/driver/test_apps/usb_serial_jtag:
disable:

View File

@ -6,6 +6,7 @@ from pytest_embedded import Dut
@pytest.mark.supported_targets
@pytest.mark.temp_skip_ci(targets=['esp32p4'], reason='esp32p4 support TBD') # TODO: IDF-8960
@pytest.mark.generic
@pytest.mark.parametrize(
'config',

View File

@ -11,6 +11,7 @@ from pytest_embedded import Dut
@pytest.mark.esp32c3
@pytest.mark.esp32c6
@pytest.mark.esp32h2
@pytest.mark.esp32p4
@pytest.mark.generic
@pytest.mark.parametrize('config', [
'release',

View File

@ -11,6 +11,7 @@ from pytest_embedded import Dut
@pytest.mark.esp32c2
@pytest.mark.esp32c6
@pytest.mark.esp32h2
@pytest.mark.esp32p4
@pytest.mark.generic
@pytest.mark.parametrize('config', [
'release',

View File

@ -11,6 +11,7 @@ from pytest_embedded_idf import IdfDut
@pytest.mark.esp32h2
@pytest.mark.esp32s2
@pytest.mark.esp32s3
@pytest.mark.esp32p4
@pytest.mark.generic
@pytest.mark.parametrize(
'config',

View File

@ -5,6 +5,7 @@ import pytest
from pytest_embedded import Dut
@pytest.mark.temp_skip_ci(targets=['esp32p4'], reason='esp32p4 support TBD') # TODO: IDF-8962
@pytest.mark.supported_targets
@pytest.mark.generic
@pytest.mark.parametrize('config', [

View File

@ -15,7 +15,6 @@ from pytest_embedded import Dut
@pytest.mark.esp32h2
@pytest.mark.esp32s2
@pytest.mark.esp32s3
@pytest.mark.esp32p4
@pytest.mark.generic
@pytest.mark.parametrize(
'config',
@ -42,7 +41,6 @@ def fixture_create_socket_can() -> Bus:
@pytest.mark.esp32h2
@pytest.mark.esp32s2
@pytest.mark.esp32s3
@pytest.mark.esp32p4
@pytest.mark.skip(reason='Runner not set up yet')
@pytest.mark.parametrize(
'config',
@ -75,7 +73,6 @@ def test_twai_listen_only(dut: Dut, socket_can: Bus) -> None:
@pytest.mark.esp32h2
@pytest.mark.esp32s2
@pytest.mark.esp32s3
@pytest.mark.esp32p4
@pytest.mark.skip(reason='Runner not set up yet')
@pytest.mark.parametrize(
'config',

View File

@ -2,8 +2,8 @@
components/efuse/test_apps:
disable_test:
- if: IDF_TARGET in ["esp32s2", "esp32s3"]
- if: IDF_TARGET in ["esp32s2", "esp32s3", "esp32p4"]
temporary: true
reason: eFuse for S2 and S3 is similar to the C3 chip, so we only test for C3.
reason: eFuse for S2 and S3 is similar to the C3 chip, so we only test for C3. P4 not tested yet. # TODO: IDF-8967
disable:
- if: SOC_EFUSE_SUPPORTED != 1

View File

@ -1,6 +1,10 @@
# Documentation: .gitlab/ci/README.md#manifest-file-to-control-the-buildtest-apps
components/esp_driver_gpio/test_apps:
disable_test:
- if: IDF_TARGET == "esp32p4"
temporary: true
reason: test not pass, should be re-enable # TODO: IDF-8968
depends_components:
- esp_driver_gpio

View File

@ -10,6 +10,7 @@ CONFIGS = [
]
@pytest.mark.temp_skip_ci(targets=['esp32p4'], reason='esp32p4 support TBD')
@pytest.mark.supported_targets
@pytest.mark.generic
@pytest.mark.parametrize('config', CONFIGS, indirect=True)
@ -22,7 +23,6 @@ def test_gpio(dut: IdfDut) -> None:
@pytest.mark.esp32s3
@pytest.mark.esp32c6
@pytest.mark.esp32h2
@pytest.mark.esp32p4
@pytest.mark.generic
@pytest.mark.parametrize('config', CONFIGS, indirect=True)
def test_rtc_io(dut: IdfDut) -> None:

View File

@ -7,6 +7,7 @@ from pytest_embedded import Dut
@pytest.mark.supported_targets
@pytest.mark.generic
@pytest.mark.temp_skip_ci(targets=['esp32p4'], reason='esp32p4 support TBD') # TODO: IDF-8960
@pytest.mark.parametrize(
'config',
[

View File

@ -3,5 +3,9 @@
components/esp_driver_ledc/test_apps/ledc:
disable:
- if: SOC_LEDC_SUPPORTED != 1
disable_test:
- if: IDF_TARGET == "esp32p4"
temporary: true
reason: test not pass, should be re-enable # TODO: IDF-8969
depends_components:
- esp_driver_ledc

View File

@ -6,7 +6,7 @@ from pytest_embedded_idf import IdfDut
@pytest.mark.supported_targets
@pytest.mark.temp_skip_ci(targets=['esp32s3'], reason='skip due to duplication with test_ledc_psram')
@pytest.mark.temp_skip_ci(targets=['esp32s3', 'esp32p4'], reason='skip due to duplication with test_ledc_psram, p4 TBD') # TODO: IDF-8969
@pytest.mark.generic
@pytest.mark.parametrize(
'config',

View File

@ -3,5 +3,9 @@
components/esp_driver_mcpwm/test_apps/mcpwm:
disable:
- if: SOC_MCPWM_SUPPORTED != 1
disable_test:
- if: IDF_TARGET == "esp32p4"
temporary: true
reason: test not pass, should be re-enable # TODO: IDF-8963
depends_components:
- esp_driver_mcpwm

View File

@ -3,5 +3,9 @@
components/esp_driver_pcnt/test_apps/pulse_cnt:
disable:
- if: SOC_PCNT_SUPPORTED != 1
disable_test:
- if: IDF_TARGET == "esp32p4"
temporary: true
reason: test not pass, should be re-enable # TODO: IDF-8965
depends_components:
- esp_driver_pcnt

View File

@ -3,5 +3,9 @@
components/esp_driver_rmt/test_apps/rmt:
disable:
- if: SOC_RMT_SUPPORTED != 1
disable_test:
- if: IDF_TARGET == "esp32p4"
temporary: true
reason: test not passing, should be re-enabled # TODO: IDF-8961
depends_components:
- esp_driver_rmt

View File

@ -17,6 +17,7 @@ CONFIGS = [
@pytest.mark.esp32s2
@pytest.mark.esp32s3
@pytest.mark.esp32h2
@pytest.mark.esp32p4
@pytest.mark.generic
@pytest.mark.parametrize('config', CONFIGS, indirect=True)
def test_sdm(dut: IdfDut) -> None:

View File

@ -1,6 +1,11 @@
components/esp_driver_sdmmc/test_apps/sdmmc:
disable:
- if: SOC_SDMMC_HOST_SUPPORTED != 1
disable_test:
- if: IDF_TARGET == "esp32p4"
temporary: true
reason: lack of runner # TODO: IDF-8970
depends_components:
- sdmmc
- esp_driver_sdmmc

View File

@ -7,20 +7,36 @@
components/esp_driver_spi/test_apps/spi/master:
disable:
- if: SOC_GPSPI_SUPPORTED != 1
disable_test:
- if: IDF_TARGET == "esp32p4"
temporary: true
reason: not supported # TODO: IDF-8942
<<: *spi_depends_default
components/esp_driver_spi/test_apps/spi/param:
disable:
- if: SOC_GPSPI_SUPPORTED != 1
disable_test:
- if: IDF_TARGET == "esp32p4"
temporary: true
reason: not supported # TODO: IDF-8942
<<: *spi_depends_default
components/esp_driver_spi/test_apps/spi/slave:
disable:
- if: SOC_GPSPI_SUPPORTED != 1
disable_test:
- if: IDF_TARGET == "esp32p4"
temporary: true
reason: not supported # TODO: IDF-8942
<<: *spi_depends_default
components/esp_driver_spi/test_apps/spi/slave_hd:
disable:
- if: SOC_GPSPI_SUPPORTED != 1
- if: SOC_SPI_SUPPORT_SLAVE_HD_VER2 != 1
disable_test:
- if: IDF_TARGET == "esp32p4"
temporary: true
reason: not supported # TODO: IDF-8942
<<: *spi_depends_default

View File

@ -5,6 +5,7 @@ import pytest
# If `test_env` is define, should not run on generic runner
@pytest.mark.temp_skip_ci(targets=['esp32p4'], reason='p4 support TBD') # TODO: IDF-8942
@pytest.mark.supported_targets
@pytest.mark.esp32h2
@pytest.mark.generic
@ -28,6 +29,7 @@ def test_master_esp_flash(case_tester) -> None: # type: ignore
# if `test_env` not defined, will run on `generic_multi_device` by default
@pytest.mark.temp_skip_ci(targets=['esp32p4'], reason='p4 support TBD') # TODO: IDF-8942
@pytest.mark.supported_targets
@pytest.mark.esp32h2
@pytest.mark.generic_multi_device

View File

@ -5,6 +5,7 @@ import pytest
# If `test_env` is define, should not run on generic runner
@pytest.mark.temp_skip_ci(targets=['esp32p4'], reason='p4 support TBD') # TODO: IDF-8942
@pytest.mark.supported_targets
@pytest.mark.esp32h2
@pytest.mark.generic
@ -16,6 +17,7 @@ def test_param_single_dev(case_tester) -> None: # type: ignore
# if `test_env` not defined, will run on `generic_multi_device` by default
@pytest.mark.temp_skip_ci(targets=['esp32p4'], reason='p4 support TBD') # TODO: IDF-8942
@pytest.mark.supported_targets
@pytest.mark.esp32h2
@pytest.mark.generic_multi_device

View File

@ -5,6 +5,7 @@ import pytest
# If `test_env` is define, should not run on generic runner
@pytest.mark.temp_skip_ci(targets=['esp32p4'], reason='p4 support TBD') # TODO: IDF-8942
@pytest.mark.supported_targets
@pytest.mark.esp32h2
@pytest.mark.generic
@ -17,6 +18,7 @@ def test_slave_single_dev(case_tester) -> None: # type: ignore
# if `test_env` not defined, will run on `generic_multi_device` by default
@pytest.mark.temp_skip_ci(targets=['esp32p4'], reason='p4 support TBD') # TODO: IDF-8942
@pytest.mark.supported_targets
@pytest.mark.esp32h2
@pytest.mark.generic_multi_device

View File

@ -12,6 +12,7 @@ from pytest_embedded_idf.unity_tester import CaseTester
@pytest.mark.esp32c2
@pytest.mark.esp32c6
@pytest.mark.esp32h2
@pytest.mark.esp32p4
@pytest.mark.generic
@pytest.mark.parametrize('config', [
'release',
@ -22,6 +23,7 @@ def test_temperature_sensor_driver(dut: Dut) -> None:
@pytest.mark.esp32c6
@pytest.mark.esp32h2
@pytest.mark.esp32p4
@pytest.mark.generic
@pytest.mark.parametrize('config', [
'iram_safe',

View File

@ -14,6 +14,10 @@ components/esp_driver_uart/test_apps/rs485:
components/esp_driver_uart/test_apps/uart:
disable:
- if: SOC_UART_SUPPORTED != 1
disable_test:
- if: IDF_TARGET == "esp32p4"
temporary: true
reason: test not pass, should be re-enable # TODO: IDF-8971
depends_components:
- esp_driver_uart
- esp_driver_gpio

View File

@ -5,7 +5,7 @@ import pytest
@pytest.mark.supported_targets
@pytest.mark.temp_skip_ci(targets=['esp32s3'], reason='skip due to duplication with test_uart_single_dev_psram')
@pytest.mark.temp_skip_ci(targets=['esp32s3', 'esp32p4'], reason='skip due to duplication with test_uart_single_dev_psram, p4 TBD') # TODO: IDF-8971
@pytest.mark.generic
@pytest.mark.parametrize(
'config',

View File

@ -9,10 +9,18 @@ components/esp_hw_support/test_apps/dma:
components/esp_hw_support/test_apps/esp_hw_support_unity_tests:
disable:
- if: SOC_GPSPI_SUPPORTED != 1
disable_test:
- if: IDF_TARGET == "esp32p4"
temporary: true
reason: test not pass, should be re-enable # TODO: IDF-8972
components/esp_hw_support/test_apps/etm:
disable:
- if: SOC_ETM_SUPPORTED != 1
disable_test:
- if: IDF_TARGET == "esp32p4"
temporary: true
reason: test not pass, should be re-enable # TODO: IDF-8974
depends_components:
- esp_driver_gptimer
- esp_driver_gpio

View File

@ -10,6 +10,7 @@ from pytest_embedded import Dut
@pytest.mark.esp32c3
@pytest.mark.esp32c6
@pytest.mark.esp32h2
@pytest.mark.esp32p4
@pytest.mark.generic
@pytest.mark.parametrize(
'config',

View File

@ -5,6 +5,7 @@ import pytest
from pytest_embedded import Dut
@pytest.mark.temp_skip_ci(targets=['esp32p4'], reason='esp32p4 support TBD') # TODO: IDF-8972
@pytest.mark.generic
@pytest.mark.parametrize(
'config',

View File

@ -33,6 +33,6 @@ def test_rtc_no_xtal32k(dut: Dut) -> None:
@pytest.mark.generic
@pytest.mark.supported_targets
@pytest.mark.temp_skip_ci(targets=['esp32c6', 'esp32h2'], reason='c6/h2 support TBD')
@pytest.mark.temp_skip_ci(targets=['esp32c6', 'esp32h2', 'esp32p4'], reason='c6/h2/p4 support TBD') # TODO: IDF-8973
def test_rtc_calib(case_tester: Any) -> None:
case_tester.run_all_multi_stage_cases()

View File

@ -42,3 +42,7 @@ components/esp_lcd/test_apps/spi_lcd:
- esp_driver_spi
disable:
- if: SOC_GPSPI_SUPPORTED != 1
disable_test:
- if: IDF_TARGET == "esp32p4"
temporary: true
reason: test not pass, should be re-enable # TODO: IDF-8975

View File

@ -5,6 +5,7 @@ import pytest
from pytest_embedded import Dut
@pytest.mark.temp_skip_ci(targets=['esp32p4'], reason='esp32p4 support TBD') # TODO: IDF-8975
@pytest.mark.supported_targets
@pytest.mark.generic
@pytest.mark.parametrize(

View File

@ -0,0 +1,7 @@
# Documentation: .gitlab/ci/README.md#manifest-file-to-control-the-buildtest-apps
components/esp_pm/test_apps:
disable_test:
- if: IDF_TARGET == "esp32p4"
temporary: true
reason: test not pass, should be re-enable # TODO: IDF-8976

View File

@ -5,6 +5,7 @@ import pytest
from pytest_embedded import Dut
@pytest.mark.temp_skip_ci(targets=['esp32p4'], reason='esp32p4 support TBD') # TODO: IDF-8976
@pytest.mark.generic
@pytest.mark.supported_targets
@pytest.mark.parametrize('config', [

View File

@ -9,3 +9,6 @@ components/esp_rom/test_apps/rom_tests:
- if: IDF_TARGET in ["esp32", "esp32c2"]
temporary: false
reason: lack of memory for testing miniz compressing
- if: IDF_TARGET == "esp32p4"
temporary: true
reason: test not pass, should be re-enable # TODO: IDF-8977

View File

@ -3,6 +3,10 @@
components/esp_system/test_apps/esp_system_unity_tests:
disable:
- if: CONFIG_NAME == "psram" and SOC_SPIRAM_SUPPORTED != 1
disable_test:
- if: IDF_TARGET == "esp32p4"
temporary: true
reason: test not pass, should be re-enable # TODO: IDF-8978
components/esp_system/test_apps/linux_apis:
enable:

View File

@ -5,6 +5,7 @@ import pytest
from pytest_embedded import Dut
@pytest.mark.temp_skip_ci(targets=['esp32p4'], reason='esp32p4 support TBD') # TODO: IDF-8978
@pytest.mark.generic
@pytest.mark.parametrize(
'config',
@ -19,6 +20,7 @@ def test_esp_system(dut: Dut) -> None:
dut.run_all_single_board_cases()
@pytest.mark.temp_skip_ci(targets=['esp32p4'], reason='esp32p4 support TBD') # TODO: IDF-8978
@pytest.mark.generic
@pytest.mark.parametrize(
'config',

View File

@ -1,12 +1,13 @@
# SPDX-FileCopyrightText: 2022-2023 Espressif Systems (Shanghai) CO LTD
# SPDX-FileCopyrightText: 2022-2024 Espressif Systems (Shanghai) CO LTD
# SPDX-License-Identifier: Unlicense OR CC0-1.0
import pytest
from pytest_embedded import Dut
# TODO: IDF-8979
CONFIGS = [
pytest.param('general', marks=[pytest.mark.supported_targets, pytest.mark.temp_skip_ci(targets=['esp32h2'], reason='h2 support TBD')]),
pytest.param('release', marks=[pytest.mark.supported_targets, pytest.mark.temp_skip_ci(targets=['esp32h2'], reason='h2 support TBD')]),
pytest.param('general', marks=[pytest.mark.supported_targets, pytest.mark.temp_skip_ci(targets=['esp32h2', 'esp32p4'], reason='h2/p4 support TBD')]),
pytest.param('release', marks=[pytest.mark.supported_targets, pytest.mark.temp_skip_ci(targets=['esp32h2', 'esp32p4'], reason='h2/p4 support TBD')]),
pytest.param('single_core', marks=[pytest.mark.esp32]),
pytest.param('freertos_compliance', marks=[pytest.mark.esp32]),
pytest.param('isr_dispatch_esp32', marks=[pytest.mark.esp32]),

View File

@ -1,3 +1,7 @@
components/fatfs/host_test:
enable:
- if: IDF_TARGET == "linux"
disable_test:
- if: IDF_TARGET == "esp32p4"
temporary: true
reason: test not pass, should be re-enable # TODO: IDF-8980

View File

@ -22,6 +22,7 @@ components/fatfs/test_apps/flash_wl:
- fatfs
- vfs
- wear_leveling
components/fatfs/test_apps/sdcard:
disable:
- if: IDF_TARGET == "esp32p4"

View File

@ -5,6 +5,10 @@ components/freertos/test_apps/freertos:
- if: CONFIG_NAME == "smp" and IDF_TARGET == "esp32p4"
temporary: true
reason: target(s) not supported yet
disable_test:
- if: IDF_TARGET == "esp32p4"
temporary: true
reason: test not pass, should be re-enable # IDF-8981
components/freertos/test_apps/orig_inc_path:
enable:

View File

@ -1,14 +1,15 @@
# SPDX-FileCopyrightText: 2022-2023 Espressif Systems (Shanghai) CO LTD
# SPDX-FileCopyrightText: 2022-2024 Espressif Systems (Shanghai) CO LTD
# SPDX-License-Identifier: Apache-2.0
import pytest
from pytest_embedded import Dut
# TODO: IDF-8981
CONFIGS = [
pytest.param('default', marks=[pytest.mark.supported_targets, pytest.mark.temp_skip_ci(targets=['esp32h2'], reason='test failed')]),
pytest.param('freertos_options', marks=[pytest.mark.supported_targets, pytest.mark.temp_skip_ci(targets=['esp32h2'], reason='test failed')]),
pytest.param('default', marks=[pytest.mark.supported_targets, pytest.mark.temp_skip_ci(targets=['esp32h2', 'esp32p4'], reason='test failed')]),
pytest.param('freertos_options', marks=[pytest.mark.supported_targets, pytest.mark.temp_skip_ci(targets=['esp32h2', 'esp32p4'], reason='test failed')]),
pytest.param('psram', marks=[pytest.mark.esp32]),
pytest.param('release', marks=[pytest.mark.supported_targets]),
pytest.param('release', marks=[pytest.mark.supported_targets, pytest.mark.temp_skip_ci(targets=['esp32p4'], reason='test failed')]),
pytest.param('single_core', marks=[pytest.mark.esp32]),
pytest.param('smp', marks=[pytest.mark.supported_targets, pytest.mark.temp_skip_ci(targets=['esp32h2', 'esp32p4'], reason='test failed/TBD IDF-8113')]),
]
@ -20,6 +21,7 @@ def test_freertos(dut: Dut) -> None:
dut.run_all_single_board_cases()
@pytest.mark.temp_skip_ci(targets=['esp32p4'], reason='esp32p4 support TBD') # IDF-8981
@pytest.mark.supported_targets
@pytest.mark.generic
@pytest.mark.parametrize('config', ['freertos_options'], indirect=True)
@ -31,6 +33,7 @@ def test_task_notify_too_high_index_fails(dut: Dut) -> None:
dut.expect_exact('Rebooting...')
@pytest.mark.temp_skip_ci(targets=['esp32p4'], reason='esp32p4 support TBD') # IDF-8981
@pytest.mark.supported_targets
@pytest.mark.generic
@pytest.mark.parametrize('config', ['freertos_options'], indirect=True)

View File

@ -5,3 +5,7 @@ components/mbedtls/test_apps:
- if: CONFIG_NAME == "psram" and SOC_SPIRAM_SUPPORTED != 1
- if: CONFIG_NAME == "psram_all_ext" and SOC_SPIRAM_SUPPORTED != 1
- if: CONFIG_NAME == "ecdsa_sign" and SOC_ECDSA_SUPPORTED != 1
disable_test:
- if: IDF_TARGET == "esp32p4"
temporary: true
reason: test not pass, should be re-enable # TODO: IDF-8982

View File

@ -5,6 +5,7 @@ import pytest
from pytest_embedded import Dut
@pytest.mark.temp_skip_ci(targets=['esp32p4'], reason='esp32p4 support TBD') # TODO: IDF-8982
@pytest.mark.supported_targets
@pytest.mark.generic
def test_mbedtls(dut: Dut) -> None:

View File

@ -31,6 +31,7 @@ def validate_sbom(dut: Dut) -> None:
assert toolchain_newlib_version == sbom_newlib_version, 'toolchain_newlib_version != sbom_newlib_version'
@pytest.mark.temp_skip_ci(targets=['esp32p4'], reason='esp32p4 support TBD') # TODO: IDF-8983
@pytest.mark.generic
@pytest.mark.parametrize(
'config',

View File

@ -49,6 +49,10 @@ components/spi_flash/test_apps/mspi_test:
- if: CONFIG_NAME == "xip_psram" and IDF_TARGET in ["esp32p4"]
temporary: true
reason: not supported yet #TODO: IDF-7556 for p4
disable_test:
- if: IDF_TARGET == "esp32p4"
temporary: true
reason: test not pass, should be re-enable # TODO: IDF-8985
depends_filepatterns:
- components/bootloader_support/bootloader_flash/**/*
depends_components:

View File

@ -6,6 +6,7 @@ from pytest_embedded import Dut
@pytest.mark.supported_targets
@pytest.mark.temp_skip_ci(targets=['esp32p4'], reason='esp32p4 support TBD') # TODO: IDF-8984
@pytest.mark.generic
@pytest.mark.parametrize(
'config',

View File

@ -5,6 +5,7 @@ import pytest
from pytest_embedded import Dut
@pytest.mark.temp_skip_ci(targets=['esp32p4'], reason='esp32p4 support TBD') # TODO: IDF-8985
@pytest.mark.supported_targets
@pytest.mark.generic
@pytest.mark.parametrize(

View File

@ -3,6 +3,10 @@
components/ulp/test_apps/lp_core:
disable:
- if: SOC_LP_CORE_SUPPORTED != 1
disable_test:
- if: IDF_TARGET in ["esp32p4"]
temporary: true
reason: not tested yet # TODO: IDF-8986
depends_components:
- ulp

View File

@ -2,9 +2,9 @@
examples/build_system/cmake/import_lib:
disable_test:
- if: IDF_TARGET in ["esp32c2", "esp32c3", "esp32s2", "esp32s3", "esp32c6", "esp32h2"]
- if: IDF_TARGET in ["esp32c2", "esp32c3", "esp32s2", "esp32s3", "esp32c6", "esp32h2", "esp32p4"]
temporary: true
reason: lack of runners
reason: lack of runners # TODO: IDF-8987
examples/build_system/cmake/plugins:
disable_test:

View File

@ -8,6 +8,7 @@ import pytest
from pytest_embedded_idf.dut import IdfDut
@pytest.mark.temp_skip_ci(targets=['esp32p4'], reason='esp32p4 support TBD') # TODO: IDF-8988
@pytest.mark.supported_targets
@pytest.mark.generic
def test_blink(dut: IdfDut) -> None:

View File

@ -204,6 +204,16 @@ examples/peripherals/mcpwm/mcpwm_bldc_hall_control:
temporary: true
reason: lack of runners
examples/peripherals/mcpwm/mcpwm_capture_hc_sr04:
disable:
- if: SOC_MCPWM_SUPPORTED != 1
depends_components:
- esp_driver_mcpwm
disable_test:
- if: IDF_TARGET == "esp32p4"
temporary: true
reason: test not pass, should be re-enable # TODO: IDF-8963
examples/peripherals/mcpwm/mcpwm_foc_svpwm_open_loop:
disable:
- if: SOC_MCPWM_SUPPORTED != 1
@ -214,6 +224,26 @@ examples/peripherals/mcpwm/mcpwm_foc_svpwm_open_loop:
temporary: true
reason: lack of runners
examples/peripherals/mcpwm/mcpwm_servo_control:
disable:
- if: SOC_MCPWM_SUPPORTED != 1
depends_components:
- esp_driver_mcpwm
disable_test:
- if: IDF_TARGET == "esp32p4"
temporary: true
reason: test not pass, should be re-enable # TODO: IDF-8963
examples/peripherals/mcpwm/mcpwm_sync:
disable:
- if: SOC_MCPWM_SUPPORTED != 1
depends_components:
- esp_driver_mcpwm
disable_test:
- if: IDF_TARGET == "esp32p4"
temporary: true
reason: test not pass, should be re-enable # TODO: IDF-8963
examples/peripherals/parlio:
disable:
- if: SOC_PARLIO_SUPPORTED != 1

View File

@ -10,6 +10,7 @@ from pytest_embedded.dut import Dut
@pytest.mark.esp32s3
@pytest.mark.esp32c6
@pytest.mark.esp32h2
@pytest.mark.esp32p4
@pytest.mark.generic
def test_rotary_encoder(dut: Dut) -> None:
dut.expect_exact('install pcnt unit')

View File

@ -11,6 +11,7 @@ from pytest_embedded import Dut
@pytest.mark.esp32c3
@pytest.mark.esp32c6
@pytest.mark.esp32h2
@pytest.mark.esp32p4
@pytest.mark.generic
def test_dshot_esc_example(dut: Dut) -> None:
dut.expect_exact('example: Create RMT TX channel')

View File

@ -11,6 +11,7 @@ from pytest_embedded import Dut
@pytest.mark.esp32c3
@pytest.mark.esp32c6
@pytest.mark.esp32h2
@pytest.mark.esp32p4
@pytest.mark.generic
def test_led_strip_example(dut: Dut) -> None:
dut.expect_exact('example: Create RMT TX channel')

View File

@ -10,6 +10,7 @@ from pytest_embedded import Dut
@pytest.mark.esp32c3
@pytest.mark.esp32c6
@pytest.mark.esp32h2
@pytest.mark.esp32p4
@pytest.mark.generic
def test_musical_buzzer_example(dut: Dut) -> None:
dut.expect_exact('example: Create RMT TX channel')

View File

@ -10,6 +10,7 @@ from pytest_embedded import Dut
@pytest.mark.esp32c3
@pytest.mark.esp32c6
@pytest.mark.esp32h2
@pytest.mark.esp32p4
@pytest.mark.generic
def test_onewire_example(dut: Dut) -> None:
dut.expect_exact('example: 1-Wire bus installed on GPIO')

View File

@ -8,6 +8,7 @@ from pytest_embedded import Dut
@pytest.mark.esp32s3
@pytest.mark.esp32c6
@pytest.mark.esp32h2
@pytest.mark.esp32p4
@pytest.mark.generic
def test_stepper_motor_example(dut: Dut) -> None:
dut.expect_exact('example: Initialize EN + DIR GPIO')

View File

@ -11,6 +11,7 @@ from pytest_embedded import Dut
@pytest.mark.esp32c3
@pytest.mark.esp32c6
@pytest.mark.esp32h2
@pytest.mark.esp32p4
@pytest.mark.generic
def test_sdm_dac_example(dut: Dut) -> None:
dut.expect(r'sdm_dac: Sigma-delta output is attached to GPIO \w+')

View File

@ -11,6 +11,7 @@ from pytest_embedded import Dut
@pytest.mark.esp32c3
@pytest.mark.esp32c6
@pytest.mark.esp32h2
@pytest.mark.esp32p4
@pytest.mark.generic
def test_sdm_led_example(dut: Dut) -> None:
dut.expect_exact('sdm_led: Install sigma delta channel')

View File

@ -11,6 +11,7 @@ from pytest_embedded.dut import Dut
@pytest.mark.esp32c2
@pytest.mark.esp32c6
@pytest.mark.esp32h2
@pytest.mark.esp32p4
@pytest.mark.generic
def test_temp_sensor_example(dut: Dut) -> None:
dut.expect_exact('Install temperature sensor')

View File

@ -7,6 +7,7 @@ from pytest_embedded.dut import Dut
@pytest.mark.esp32c6
@pytest.mark.esp32h2
@pytest.mark.esp32p4
@pytest.mark.generic
def test_temp_sensor_monitor_example(dut: Dut) -> None:
dut.expect_exact('Install temperature sensor')

View File

@ -7,6 +7,7 @@ from pytest_embedded import Dut
@pytest.mark.esp32c6
@pytest.mark.esp32h2
@pytest.mark.esp32p4
@pytest.mark.generic
def test_gptimer_capture(dut: Dut) -> None:
dut.expect_exact('Configure trig gpio')

View File

@ -2,9 +2,9 @@
examples/system/app_trace_basic:
disable:
- if: IDF_TARGET == "esp32c6" or IDF_TARGET == "esp32h2"
- if: IDF_TARGET in ["esp32c6", "esp32h2", "esp32p4"]
temporary: true
reason: target esp32c6, esp32h2 is not supported yet
reason: target esp32c6, esp32h2, esp32p4 is not supported yet
examples/system/base_mac_address:
depends_components:
@ -212,6 +212,12 @@ examples/system/select:
depends_components:
- vfs
examples/system/startup_time:
disable_test:
- if: IDF_TARGET == "esp32p4"
temporary: true
reason: test not pass, should be re-enable # TODO: IDF-8989
examples/system/sysview_tracing:
disable:
- if: SOC_GPTIMER_SUPPORTED != 1

View File

@ -1,5 +1,5 @@
| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-P4 | ESP32-S2 | ESP32-S3 |
| ----------------- | ----- | -------- | -------- | -------- | -------- | -------- |
| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-S2 | ESP32-S3 |
| ----------------- | ----- | -------- | -------- | -------- | -------- |
# Application Level Tracing Example (Basic)

View File

@ -29,7 +29,7 @@ ONE_SHOT_TIMER_PERIOD = 5000000
@pytest.mark.supported_targets
@pytest.mark.temp_skip_ci(targets=['esp32c6', 'esp32h2'], reason='c6/h2 support TBD')
@pytest.mark.temp_skip_ci(targets=['esp32c6', 'esp32h2', 'esp32p4'], reason='c6/h2/p4 support TBD') # TODO: IDF-8979
@pytest.mark.generic
@pytest.mark.parametrize(
'config',

View File

@ -8,6 +8,7 @@ import pytest
from pytest_embedded import Dut
@pytest.mark.temp_skip_ci(targets=['esp32p4'], reason='esp32p4 support TBD')
@pytest.mark.supported_targets
@pytest.mark.generic
def test_light_sleep(dut: Dut) -> None:

View File

@ -6,6 +6,7 @@ import pytest
from pytest_embedded import Dut
@pytest.mark.temp_skip_ci(targets=['esp32p4'], reason='esp32p4 support TBD') # TODO: IDF-8989
@pytest.mark.supported_targets
@pytest.mark.generic
@pytest.mark.parametrize('config', [

View File

@ -11,7 +11,7 @@ from dataclasses import dataclass
from _pytest.python import Function
from pytest_embedded.utils import to_list
SUPPORTED_TARGETS = ['esp32', 'esp32s2', 'esp32c3', 'esp32s3', 'esp32c2', 'esp32c6', 'esp32h2']
SUPPORTED_TARGETS = ['esp32', 'esp32s2', 'esp32c3', 'esp32s3', 'esp32c2', 'esp32c6', 'esp32h2', 'esp32p4']
PREVIEW_TARGETS: t.List[str] = [] # this PREVIEW_TARGETS excludes 'linux' target
DEFAULT_SDKCONFIG = 'default'

View File

@ -135,6 +135,12 @@ tools/test_apps/system/eh_frame:
temporary: true
reason: the other targets are not tested yet
tools/test_apps/system/esp_intr_dump:
disable_test:
- if: IDF_TARGET == "esp32p4"
temporary: true
reason: test not pass, should be re-enable # TODO: IDF-8991
tools/test_apps/system/g0_components:
enable:
- if: INCLUDE_DEFAULT == 1 or IDF_TARGET in ["esp32p4", "esp32c5"] # preview targets
@ -185,6 +191,11 @@ tools/test_apps/system/panic:
temporary: true
reason: target(s) not supported yet # TODO: IDF-7511
tools/test_apps/system/ram_loadable_app:
disable_test:
- if: IDF_TARGET in ["esp32p4"]
temporary: true
reason: TBD # TODO: IDF-8994
tools/test_apps/system/startup:
disable:
- if: CONFIG_NAME == "main_task_cpu1" and IDF_TARGET not in ["esp32", "esp32s3"]

View File

@ -6,7 +6,7 @@ from pytest_embedded_idf.dut import IdfDut
@pytest.mark.supported_targets
@pytest.mark.temp_skip_ci(targets=['esp32h2'], reason='h2 does not support wifi')
@pytest.mark.temp_skip_ci(targets=['esp32h2', 'esp32p4'], reason='h2/p4 does not support wifi')
@pytest.mark.generic
def test_i2c_wifi_startup(dut: IdfDut) -> None:
dut.expect_exact('I2C-WIFI test success')

View File

@ -6,7 +6,7 @@ from pytest_embedded_idf.dut import IdfDut
@pytest.mark.supported_targets
@pytest.mark.temp_skip_ci(targets=['esp32h2'], reason='h2 not supported')
@pytest.mark.temp_skip_ci(targets=['esp32h2', 'esp32p4'], reason='h2/p4 not supported') # TODO: IDF-8990
@pytest.mark.generic
@pytest.mark.parametrize('config', [
'phy_multiple_init_data',

View File

@ -45,6 +45,7 @@ def test_esp_intr_dump_shared(dut: Dut) -> None:
dut.expect_exact(PROMPT)
@pytest.mark.temp_skip_ci(targets=['esp32p4'], reason='esp32p4 support TBD') # TODO: IDF-8991
@pytest.mark.supported_targets
@pytest.mark.generic
def test_esp_intr_dump_expected_output(dut: Dut) -> None:

View File

@ -19,6 +19,7 @@ def get_line_number(lookup: str, offset: int = 0) -> int:
return -1
@pytest.mark.temp_skip_ci(targets=['esp32p4'], reason='esp32p4 support TBD') # TODO: IDF-8992
@pytest.mark.supported_targets
@pytest.mark.generic
def test_gdbstub_runtime(dut: PanicTestDut) -> None:

View File

@ -5,6 +5,7 @@ import pytest
from pytest_embedded_idf.dut import IdfDut
@pytest.mark.temp_skip_ci(targets=['esp32p4'], reason='esp32p4 support TBD') # TODO: IDF-8994
@pytest.mark.supported_targets
@pytest.mark.generic
@pytest.mark.parametrize('config', ['pure_ram',], indirect=True,)
@ -13,6 +14,7 @@ def test_pure_ram_loadable_app(dut: IdfDut) -> None:
dut.expect('Time since boot: 3 seconds...', timeout=10)
@pytest.mark.temp_skip_ci(targets=['esp32p4'], reason='esp32p4 support TBD') # TODO: IDF-8994
@pytest.mark.supported_targets
@pytest.mark.generic
@pytest.mark.parametrize('config', ['defaults',], indirect=True,)