From 21a6537e0872c4a672745867e325ba2bd81f67ba Mon Sep 17 00:00:00 2001 From: hebinglin Date: Fri, 9 Jan 2026 14:50:09 +0800 Subject: [PATCH] change(esp_driver): set cases with toppd check only run in esp32c5eco3 rather than eco2 --- .../test_apps/gptimer/pytest_gptimer.py | 30 +++++++++++++- .../test_apps/i2s/pytest_i2s.py | 39 ++++++++++++++++++- .../test_apps/ledc/pytest_ledc.py | 30 +++++++++++++- .../test_apps/mcpwm/pytest_mcpwm.py | 31 ++++++++++++++- .../test_apps/parlio/pytest_parlio_unity.py | 31 ++++++++++++++- .../pulse_cnt/main/test_pulse_cnt_sleep.c | 2 +- .../test_apps/rmt/pytest_rmt.py | 33 ++++++++++++++-- .../sigma_delta/main/test_sdm_sleep.cpp | 2 +- .../sigma_delta/pytest_sigma_delta.py | 17 +++++++- .../test_apps/master/pytest_spi_master.py | 36 ++++++++++++++++- .../test_apps/slave/pytest_spi_slave.py | 18 ++++++++- .../test_apps/slave_hd/pytest_spi_slave_hd.py | 11 +++++- .../pytest_temperature_sensor.py | 22 ++++++++++- .../main/test_emac_sleep_retention.c | 2 - .../pytest_esp_hw_support.py | 2 +- .../pytest_esp_system_unity_tests.py | 32 ++++++++++++++- pytest.ini | 1 + tools/ci/idf_pytest/constants.py | 1 + 18 files changed, 316 insertions(+), 24 deletions(-) diff --git a/components/esp_driver_gptimer/test_apps/gptimer/pytest_gptimer.py b/components/esp_driver_gptimer/test_apps/gptimer/pytest_gptimer.py index b398c74ff0..1bf4943efd 100644 --- a/components/esp_driver_gptimer/test_apps/gptimer/pytest_gptimer.py +++ b/components/esp_driver_gptimer/test_apps/gptimer/pytest_gptimer.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 Espressif Systems (Shanghai) CO LTD +# SPDX-FileCopyrightText: 2021-2026 Espressif Systems (Shanghai) CO LTD # SPDX-License-Identifier: CC0-1.0 import pytest from pytest_embedded import Dut @@ -6,6 +6,7 @@ from pytest_embedded_idf.utils import idf_parametrize @pytest.mark.generic +@pytest.mark.temp_skip_ci(targets=['esp32c5'], reason='c5 eco2 does not support top pd') @pytest.mark.parametrize( 'config', [ @@ -19,6 +20,33 @@ def test_gptimer(dut: Dut) -> None: dut.run_all_single_board_cases() +@pytest.mark.generic +@pytest.mark.parametrize( + 'config', + [ + 'cache_safe', + ], + indirect=True, +) +@idf_parametrize('target', ['esp32c5'], indirect=['target']) +def test_gptimer_esp32c5(dut: Dut) -> None: + dut.run_all_single_board_cases() + + +@pytest.mark.generic +@pytest.mark.esp32c5_eco3 +@pytest.mark.parametrize( + 'config', + [ + 'release', + ], + indirect=True, +) +@idf_parametrize('target', ['esp32c5'], indirect=['target']) +def test_gptimer_esp32c5_eco3(dut: Dut) -> None: + dut.run_all_single_board_cases() + + @pytest.mark.generic @pytest.mark.xtal_26mhz @pytest.mark.parametrize( diff --git a/components/esp_driver_i2s/test_apps/i2s/pytest_i2s.py b/components/esp_driver_i2s/test_apps/i2s/pytest_i2s.py index 9c34a48bbb..769cae7499 100644 --- a/components/esp_driver_i2s/test_apps/i2s/pytest_i2s.py +++ b/components/esp_driver_i2s/test_apps/i2s/pytest_i2s.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2022-2025 Espressif Systems (Shanghai) CO LTD +# SPDX-FileCopyrightText: 2022-2026 Espressif Systems (Shanghai) CO LTD # SPDX-License-Identifier: Apache-2.0 import pytest from pytest_embedded import Dut @@ -16,13 +16,48 @@ from pytest_embedded_idf.utils import idf_parametrize ) @idf_parametrize( 'target', - ['esp32', 'esp32s2', 'esp32c3', 'esp32c5', 'esp32c6', 'esp32h2', 'esp32p4', 'esp32c61'], + ['esp32', 'esp32s2', 'esp32c3', 'esp32c6', 'esp32h2', 'esp32p4', 'esp32c61'], indirect=['target'], ) def test_i2s(dut: Dut) -> None: dut.run_all_single_board_cases() +@pytest.mark.generic +@pytest.mark.parametrize( + 'config', + [ + 'iram_safe', + ], + indirect=True, +) +@idf_parametrize( + 'target', + ['esp32c5'], + indirect=['target'], +) +def test_i2s_esp32c5(dut: Dut) -> None: + dut.run_all_single_board_cases() + + +@pytest.mark.generic +@pytest.mark.esp32c5_eco3 +@pytest.mark.parametrize( + 'config', + [ + 'release', + ], + indirect=True, +) +@idf_parametrize( + 'target', + ['esp32c5'], + indirect=['target'], +) +def test_i2s_esp32c5_eco3(dut: Dut) -> None: + dut.run_all_single_board_cases() + + @pytest.mark.octal_psram @pytest.mark.parametrize( 'config', diff --git a/components/esp_driver_ledc/test_apps/ledc/pytest_ledc.py b/components/esp_driver_ledc/test_apps/ledc/pytest_ledc.py index 70d71e0826..c828181ed6 100644 --- a/components/esp_driver_ledc/test_apps/ledc/pytest_ledc.py +++ b/components/esp_driver_ledc/test_apps/ledc/pytest_ledc.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 Espressif Systems (Shanghai) CO LTD +# SPDX-FileCopyrightText: 2021-2026 Espressif Systems (Shanghai) CO LTD # SPDX-License-Identifier: CC0-1.0 import pytest from pytest_embedded_idf import IdfDut @@ -6,6 +6,7 @@ from pytest_embedded_idf.utils import idf_parametrize @pytest.mark.temp_skip_ci(targets=['esp32s3'], reason='skip due to duplication with test_ledc_psram') +@pytest.mark.temp_skip_ci(targets=['esp32c5'], reason='c5 eco2 does not support top pd') @pytest.mark.generic @pytest.mark.parametrize( 'config', @@ -20,6 +21,33 @@ def test_ledc(dut: IdfDut) -> None: dut.run_all_single_board_cases(reset=True) +@pytest.mark.generic +@pytest.mark.parametrize( + 'config', + [ + 'iram_safe', + ], + indirect=True, +) +@idf_parametrize('target', ['esp32c5'], indirect=['target']) +def test_ledc_esp32c5(dut: IdfDut) -> None: + dut.run_all_single_board_cases(reset=True) + + +@pytest.mark.generic +@pytest.mark.esp32c5_eco3 +@pytest.mark.parametrize( + 'config', + [ + 'release', + ], + indirect=True, +) +@idf_parametrize('target', ['esp32c5'], indirect=['target']) +def test_ledc_esp32c5_eco3(dut: IdfDut) -> None: + dut.run_all_single_board_cases(reset=True) + + @pytest.mark.octal_psram @pytest.mark.parametrize( 'config', diff --git a/components/esp_driver_mcpwm/test_apps/mcpwm/pytest_mcpwm.py b/components/esp_driver_mcpwm/test_apps/mcpwm/pytest_mcpwm.py index 8d910fffa8..05aea3b8d2 100644 --- a/components/esp_driver_mcpwm/test_apps/mcpwm/pytest_mcpwm.py +++ b/components/esp_driver_mcpwm/test_apps/mcpwm/pytest_mcpwm.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2022-2025 Espressif Systems (Shanghai) CO LTD +# SPDX-FileCopyrightText: 2022-2026 Espressif Systems (Shanghai) CO LTD # SPDX-License-Identifier: CC0-1.0 import pytest from pytest_embedded import Dut @@ -14,6 +14,33 @@ from pytest_embedded_idf.utils import idf_parametrize ], indirect=True, ) -@idf_parametrize('target', ['esp32', 'esp32s3', 'esp32c5', 'esp32c6', 'esp32h2', 'esp32p4'], indirect=['target']) +@idf_parametrize('target', ['esp32', 'esp32s3', 'esp32c6', 'esp32h2', 'esp32p4'], indirect=['target']) def test_mcpwm(dut: Dut) -> None: dut.run_all_single_board_cases() + + +@pytest.mark.generic +@pytest.mark.parametrize( + 'config', + [ + 'cache_safe', + ], + indirect=True, +) +@idf_parametrize('target', ['esp32c5'], indirect=['target']) +def test_mcpwm_esp32c5(dut: Dut) -> None: + dut.run_all_single_board_cases() + + +@pytest.mark.generic +@pytest.mark.esp32c5_eco3 +@pytest.mark.parametrize( + 'config', + [ + 'release', + ], + indirect=True, +) +@idf_parametrize('target', ['esp32c5'], indirect=['target']) +def test_mcpwm_esp32c5_eco3(dut: Dut) -> None: + dut.run_all_single_board_cases() diff --git a/components/esp_driver_parlio/test_apps/parlio/pytest_parlio_unity.py b/components/esp_driver_parlio/test_apps/parlio/pytest_parlio_unity.py index b275afc55c..67bef7ef0c 100644 --- a/components/esp_driver_parlio/test_apps/parlio/pytest_parlio_unity.py +++ b/components/esp_driver_parlio/test_apps/parlio/pytest_parlio_unity.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2022-2025 Espressif Systems (Shanghai) CO LTD +# SPDX-FileCopyrightText: 2022-2026 Espressif Systems (Shanghai) CO LTD # SPDX-License-Identifier: CC0-1.0 import pytest from pytest_embedded import Dut @@ -14,6 +14,33 @@ from pytest_embedded_idf.utils import idf_parametrize ], indirect=True, ) -@idf_parametrize('target', ['esp32c5', 'esp32c6', 'esp32h2', 'esp32p4'], indirect=['target']) +@idf_parametrize('target', ['esp32c6', 'esp32h2', 'esp32p4'], indirect=['target']) def test_parlio(dut: Dut) -> None: dut.run_all_single_board_cases() + + +@pytest.mark.generic +@pytest.mark.parametrize( + 'config', + [ + 'cache_safe', + ], + indirect=True, +) +@idf_parametrize('target', ['esp32c5'], indirect=['target']) +def test_parlio_esp32c5(dut: Dut) -> None: + dut.run_all_single_board_cases() + + +@pytest.mark.generic +@pytest.mark.esp32c5_eco3 +@pytest.mark.parametrize( + 'config', + [ + 'release', + ], + indirect=True, +) +@idf_parametrize('target', ['esp32c5'], indirect=['target']) +def test_parlio_esp32c5_eco3(dut: Dut) -> None: + dut.run_all_single_board_cases() diff --git a/components/esp_driver_pcnt/test_apps/pulse_cnt/main/test_pulse_cnt_sleep.c b/components/esp_driver_pcnt/test_apps/pulse_cnt/main/test_pulse_cnt_sleep.c index 2dc2d33478..fb89c70f79 100644 --- a/components/esp_driver_pcnt/test_apps/pulse_cnt/main/test_pulse_cnt_sleep.c +++ b/components/esp_driver_pcnt/test_apps/pulse_cnt/main/test_pulse_cnt_sleep.c @@ -99,7 +99,7 @@ static void test_pcnt_sleep_retention(void) printf("check if the sleep happened as expected\r\n"); TEST_ASSERT_EQUAL(0, sleep_ctx.sleep_request_result); -#if SOC_PMU_SUPPORTED && !SOC_PM_TOP_PD_NOT_ALLOWED +#if SOC_PMU_SUPPORTED // check if the power domain also is powered down TEST_ASSERT_EQUAL(0, (sleep_ctx.sleep_flags) & PMU_SLEEP_PD_TOP); #endif diff --git a/components/esp_driver_rmt/test_apps/rmt/pytest_rmt.py b/components/esp_driver_rmt/test_apps/rmt/pytest_rmt.py index 4a9612aa79..1a7b262872 100644 --- a/components/esp_driver_rmt/test_apps/rmt/pytest_rmt.py +++ b/components/esp_driver_rmt/test_apps/rmt/pytest_rmt.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 Espressif Systems (Shanghai) CO LTD +# SPDX-FileCopyrightText: 2021-2026 Espressif Systems (Shanghai) CO LTD # SPDX-License-Identifier: CC0-1.0 import pytest from pytest_embedded import Dut @@ -14,13 +14,38 @@ from pytest_embedded_idf.utils import idf_parametrize ], indirect=True, ) -@idf_parametrize( - 'target', ['esp32', 'esp32s2', 'esp32c3', 'esp32c5', 'esp32c6', 'esp32h2', 'esp32p4'], indirect=['target'] -) +@idf_parametrize('target', ['esp32', 'esp32s2', 'esp32c3', 'esp32c6', 'esp32h2', 'esp32p4'], indirect=['target']) def test_rmt(dut: Dut) -> None: dut.run_all_single_board_cases() +@pytest.mark.generic +@pytest.mark.parametrize( + 'config', + [ + 'cache_safe', + ], + indirect=True, +) +@idf_parametrize('target', ['esp32c5'], indirect=['target']) +def test_rmt_esp32c5(dut: Dut) -> None: + dut.run_all_single_board_cases() + + +@pytest.mark.generic +@pytest.mark.esp32c5_eco3 +@pytest.mark.parametrize( + 'config', + [ + 'release', + ], + indirect=True, +) +@idf_parametrize('target', ['esp32c5'], indirect=['target']) +def test_rmt_esp32c5_eco3(dut: Dut) -> None: + dut.run_all_single_board_cases() + + @pytest.mark.octal_psram @pytest.mark.parametrize( 'config', diff --git a/components/esp_driver_sdm/test_apps/sigma_delta/main/test_sdm_sleep.cpp b/components/esp_driver_sdm/test_apps/sigma_delta/main/test_sdm_sleep.cpp index 1bb2b8fa18..5a01f6d942 100644 --- a/components/esp_driver_sdm/test_apps/sigma_delta/main/test_sdm_sleep.cpp +++ b/components/esp_driver_sdm/test_apps/sigma_delta/main/test_sdm_sleep.cpp @@ -64,7 +64,7 @@ static void test_sdm_sleep_retention(bool allow_pd) printf("check if the sleep happened as expected\r\n"); TEST_ASSERT_EQUAL(0, sleep_ctx.sleep_request_result); -#if SOC_SDM_SUPPORT_SLEEP_RETENTION && !SOC_PM_TOP_PD_NOT_ALLOWED +#if SOC_SDM_SUPPORT_SLEEP_RETENTION // check if the power domain also is powered down TEST_ASSERT_EQUAL(allow_pd ? PMU_SLEEP_PD_TOP : 0, (sleep_ctx.sleep_flags) & PMU_SLEEP_PD_TOP); #endif diff --git a/components/esp_driver_sdm/test_apps/sigma_delta/pytest_sigma_delta.py b/components/esp_driver_sdm/test_apps/sigma_delta/pytest_sigma_delta.py index 14e4328015..7e3f6cb8c6 100644 --- a/components/esp_driver_sdm/test_apps/sigma_delta/pytest_sigma_delta.py +++ b/components/esp_driver_sdm/test_apps/sigma_delta/pytest_sigma_delta.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2022-2025 Espressif Systems (Shanghai) CO LTD +# SPDX-FileCopyrightText: 2022-2026 Espressif Systems (Shanghai) CO LTD # SPDX-License-Identifier: CC0-1.0 import pytest from pytest_embedded_idf import IdfDut @@ -12,6 +12,7 @@ CONFIGS = [ @pytest.mark.generic +@pytest.mark.temp_skip_ci(targets=['esp32c5'], reason='c5 eco2 does not support top pd') @pytest.mark.parametrize('config', CONFIGS, indirect=True) @idf_parametrize( 'target', @@ -20,3 +21,17 @@ CONFIGS = [ ) def test_sdm(dut: IdfDut) -> None: dut.run_all_single_board_cases(group='sdm') + + +@pytest.mark.generic +@pytest.mark.parametrize('config', ['iram_safe'], indirect=True) +@idf_parametrize('target', ['esp32c5'], indirect=['target']) +def test_sdm_esp32c5(dut: IdfDut) -> None: + dut.run_all_single_board_cases(group='sdm') + + +@pytest.mark.generic +@pytest.mark.esp32c5_eco3 +@pytest.mark.parametrize('config', ['release'], indirect=True) +def test_sdm_esp32c5_eco3(dut: IdfDut) -> None: + dut.run_all_single_board_cases(group='sdm') diff --git a/components/esp_driver_spi/test_apps/master/pytest_spi_master.py b/components/esp_driver_spi/test_apps/master/pytest_spi_master.py index a141e21900..1338157266 100644 --- a/components/esp_driver_spi/test_apps/master/pytest_spi_master.py +++ b/components/esp_driver_spi/test_apps/master/pytest_spi_master.py @@ -1,10 +1,11 @@ -# SPDX-FileCopyrightText: 2021-2025 Espressif Systems (Shanghai) CO LTD +# SPDX-FileCopyrightText: 2021-2026 Espressif Systems (Shanghai) CO LTD # SPDX-License-Identifier: Apache-2.0 import pytest from pytest_embedded_idf.utils import idf_parametrize @pytest.mark.generic +@pytest.mark.temp_skip_ci(targets=['esp32c5'], reason='c5 eco2 does not support top pd') @pytest.mark.parametrize( 'config', [ @@ -21,6 +22,39 @@ def test_master_single_dev(case_tester) -> None: # type: ignore case_tester.run_normal_case(case=case, reset=True) +@pytest.mark.generic +@pytest.mark.parametrize( + 'config', + [ + 'freertos_flash', + ], + indirect=True, +) +@idf_parametrize('target', ['esp32c5'], indirect=['target']) +def test_master_single_dev_esp32c5(case_tester) -> None: # type: ignore + for case in case_tester.test_menu: + if 'test_env' in case.attributes: + continue # If `test_env` is defined, should not run on generic runner + case_tester.run_normal_case(case=case, reset=True) + + +@pytest.mark.generic +@pytest.mark.esp32c5_eco3 +@pytest.mark.parametrize( + 'config', + [ + 'release', + ], + indirect=True, +) +@idf_parametrize('target', ['esp32c5'], indirect=['target']) +def test_master_single_dev_esp32c5_eco3(case_tester) -> None: # type: ignore + for case in case_tester.test_menu: + if 'test_env' in case.attributes: + continue # If `test_env` is defined, should not run on generic runner + case_tester.run_normal_case(case=case, reset=True) + + # Job for test_env `external_flash` just for esp32 only @pytest.mark.flash_multi @pytest.mark.parametrize( diff --git a/components/esp_driver_spi/test_apps/slave/pytest_spi_slave.py b/components/esp_driver_spi/test_apps/slave/pytest_spi_slave.py index 0b0adc8cbb..afece8a2b1 100644 --- a/components/esp_driver_spi/test_apps/slave/pytest_spi_slave.py +++ b/components/esp_driver_spi/test_apps/slave/pytest_spi_slave.py @@ -1,16 +1,32 @@ -# SPDX-FileCopyrightText: 2021-2025 Espressif Systems (Shanghai) CO LTD +# SPDX-FileCopyrightText: 2021-2026 Espressif Systems (Shanghai) CO LTD # SPDX-License-Identifier: Apache-2.0 import pytest from pytest_embedded_idf.utils import idf_parametrize @pytest.mark.generic +@pytest.mark.temp_skip_ci(targets=['esp32c5'], reason='c5 eco2 does not support top pd') @pytest.mark.parametrize('config', ['release', 'iram_safe'], indirect=True) @idf_parametrize('target', ['supported_targets'], indirect=['target']) def test_slave_single_dev(case_tester) -> None: # type: ignore case_tester.run_all_normal_cases(reset=True) +@pytest.mark.generic +@pytest.mark.parametrize('config', ['iram_safe'], indirect=True) +@idf_parametrize('target', ['esp32c5'], indirect=['target']) +def test_slave_single_dev_esp32c5(case_tester) -> None: # type: ignore + case_tester.run_all_normal_cases(reset=True) + + +@pytest.mark.generic +@pytest.mark.esp32c5_eco3 +@pytest.mark.parametrize('config', ['release'], indirect=True) +@idf_parametrize('target', ['esp32c5'], indirect=['target']) +def test_slave_single_dev_esp32c5_eco3(case_tester) -> None: # type: ignore + case_tester.run_all_normal_cases(reset=True) + + @pytest.mark.generic_multi_device @pytest.mark.parametrize('count, config', [(2, 'release'), (2, 'iram_safe')], indirect=True) @idf_parametrize('target', ['supported_targets'], indirect=['target']) diff --git a/components/esp_driver_spi/test_apps/slave_hd/pytest_spi_slave_hd.py b/components/esp_driver_spi/test_apps/slave_hd/pytest_spi_slave_hd.py index 3654ca7585..8019d02970 100644 --- a/components/esp_driver_spi/test_apps/slave_hd/pytest_spi_slave_hd.py +++ b/components/esp_driver_spi/test_apps/slave_hd/pytest_spi_slave_hd.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 Espressif Systems (Shanghai) CO LTD +# SPDX-FileCopyrightText: 2021-2026 Espressif Systems (Shanghai) CO LTD # SPDX-License-Identifier: Apache-2.0 import pytest @@ -7,12 +7,21 @@ from pytest_embedded_idf.utils import soc_filtered_targets @pytest.mark.generic +@pytest.mark.temp_skip_ci(targets=['esp32c5'], reason='c5 eco2 does not support top pd') @pytest.mark.parametrize('config', ['release'], indirect=True) @idf_parametrize('target', soc_filtered_targets('SOC_SPI_SUPPORT_SLAVE_HD_VER2 == 1'), indirect=['target']) def test_slave_hd_single_dev(case_tester) -> None: # type: ignore case_tester.run_all_normal_cases(reset=True, timeout=180) +@pytest.mark.generic +@pytest.mark.esp32c5_eco3 +@pytest.mark.parametrize('config', ['release'], indirect=True) +@idf_parametrize('target', ['esp32c5'], indirect=['target']) +def test_slave_hd_single_dev_esp32c5_eco3(case_tester) -> None: # type: ignore + case_tester.run_all_normal_cases(reset=True, timeout=180) + + @pytest.mark.generic_multi_device @pytest.mark.parametrize('count, config', [(2, 'release')], indirect=True) @idf_parametrize('target', soc_filtered_targets('SOC_SPI_SUPPORT_SLAVE_HD_VER2 == 1'), indirect=['target']) diff --git a/components/esp_driver_tsens/test_apps/temperature_sensor/pytest_temperature_sensor.py b/components/esp_driver_tsens/test_apps/temperature_sensor/pytest_temperature_sensor.py index 36fe0c7c29..eb7b4b2585 100644 --- a/components/esp_driver_tsens/test_apps/temperature_sensor/pytest_temperature_sensor.py +++ b/components/esp_driver_tsens/test_apps/temperature_sensor/pytest_temperature_sensor.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 Espressif Systems (Shanghai) CO LTD +# SPDX-FileCopyrightText: 2021-2026 Espressif Systems (Shanghai) CO LTD # SPDX-License-Identifier: CC0-1.0 import pytest from pytest_embedded import Dut @@ -16,13 +16,31 @@ from pytest_embedded_idf.utils import idf_parametrize ) @idf_parametrize( 'target', - ['esp32s2', 'esp32c3', 'esp32s3', 'esp32c2', 'esp32c6', 'esp32h2', 'esp32p4', 'esp32c5', 'esp32c61'], + ['esp32s2', 'esp32c3', 'esp32s3', 'esp32c2', 'esp32c6', 'esp32h2', 'esp32p4', 'esp32c61'], indirect=['target'], ) def test_temperature_sensor_driver(dut: Dut) -> None: dut.run_all_single_board_cases() +@pytest.mark.generic +@pytest.mark.esp32c5_eco3 +@pytest.mark.parametrize( + 'config', + [ + 'release', + ], + indirect=True, +) +@idf_parametrize( + 'target', + ['esp32c5'], + indirect=['target'], +) +def test_temperature_sensor_driver_esp32c5_eco3(dut: Dut) -> None: + dut.run_all_single_board_cases() + + @pytest.mark.generic @pytest.mark.parametrize( 'config', diff --git a/components/esp_eth/test_apps/main/test_emac_sleep_retention.c b/components/esp_eth/test_apps/main/test_emac_sleep_retention.c index ed947f5f56..e29cb9c606 100644 --- a/components/esp_eth/test_apps/main/test_emac_sleep_retention.c +++ b/components/esp_eth/test_apps/main/test_emac_sleep_retention.c @@ -83,11 +83,9 @@ static void eth_test_start_sleep(esp_eth_handle_t eth_handle, bool pd_top_down) esp_eth_ioctl(eth_handle, ETH_MAC_ESP_CMD_DUMP_REGS, NULL); #endif -#if !SOC_PM_TOP_PD_NOT_ALLOWED printf("sleep_ctx.sleep_flags: 0x%" PRIx32 "\n", sleep_ctx.sleep_flags); // Check if the power domain was powered down TEST_ASSERT_EQUAL(pd_top_down ? PMU_SLEEP_PD_TOP : 0, sleep_ctx.sleep_flags & PMU_SLEEP_PD_TOP); -#endif esp_sleep_set_sleep_context(NULL); } diff --git a/components/esp_hw_support/test_apps/esp_hw_support_unity_tests/pytest_esp_hw_support.py b/components/esp_hw_support/test_apps/esp_hw_support_unity_tests/pytest_esp_hw_support.py index c874e8f204..beca94dde8 100644 --- a/components/esp_hw_support/test_apps/esp_hw_support_unity_tests/pytest_esp_hw_support.py +++ b/components/esp_hw_support/test_apps/esp_hw_support_unity_tests/pytest_esp_hw_support.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2022-2025 Espressif Systems (Shanghai) CO LTD +# SPDX-FileCopyrightText: 2022-2026 Espressif Systems (Shanghai) CO LTD # SPDX-License-Identifier: CC0-1.0 import pytest from pytest_embedded import Dut diff --git a/components/esp_system/test_apps/esp_system_unity_tests/pytest_esp_system_unity_tests.py b/components/esp_system/test_apps/esp_system_unity_tests/pytest_esp_system_unity_tests.py index 23357e1873..b1648bb068 100644 --- a/components/esp_system/test_apps/esp_system_unity_tests/pytest_esp_system_unity_tests.py +++ b/components/esp_system/test_apps/esp_system_unity_tests/pytest_esp_system_unity_tests.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2022-2025 Espressif Systems (Shanghai) CO LTD +# SPDX-FileCopyrightText: 2022-2026 Espressif Systems (Shanghai) CO LTD # SPDX-License-Identifier: CC0-1.0 import time @@ -9,6 +9,7 @@ from pytest_embedded_idf.utils import soc_filtered_targets @pytest.mark.generic +@pytest.mark.temp_skip_ci(targets=['esp32c5'], reason='c5 eco2 does not support top pd') @idf_parametrize( 'config,target', [ @@ -77,6 +78,35 @@ def test_sleep_uart_handling(dut: Dut) -> None: ) +@pytest.mark.generic +@idf_parametrize( + 'config', + [ + 'pd_vddsdio', + 'psram', + ], + indirect=['config'], +) +@idf_parametrize('target', ['esp32c5'], indirect=['target']) +def test_esp_system_esp32c5(dut: Dut) -> None: + dut.run_all_single_board_cases(timeout=60) + + +@pytest.mark.generic +@pytest.mark.esp32c5_eco3 +@idf_parametrize( + 'config', + [ + 'default', + 'psram_with_pd_top', + ], + indirect=['config'], +) +@idf_parametrize('target', ['esp32c5'], indirect=['target']) +def test_esp_system_esp32c5_eco3(dut: Dut) -> None: + dut.run_all_single_board_cases(timeout=60) + + @pytest.mark.generic @idf_parametrize('config', ['default'], indirect=['config']) @idf_parametrize('target', ['supported_targets'], indirect=['target']) diff --git a/pytest.ini b/pytest.ini index f8e4fdd910..79ef652b35 100644 --- a/pytest.ini +++ b/pytest.ini @@ -131,4 +131,5 @@ env_markers = esp32c2eco4: esp32c2 major version(v2.0) chips recovery_bootloader: Runner with recovery bootloader offset set in esp32p4_eco4: Runner with esp32p4 eco4 connected + esp32c5_eco3: Runner with esp32c5 eco3 connected eco_default: Runner with default eco connected diff --git a/tools/ci/idf_pytest/constants.py b/tools/ci/idf_pytest/constants.py index 0c3542d9d9..32608322cd 100644 --- a/tools/ci/idf_pytest/constants.py +++ b/tools/ci/idf_pytest/constants.py @@ -30,4 +30,5 @@ ECO_MARKERS = [ 'esp32c2eco4', 'esp32c3eco7', 'esp32p4_eco4', + 'esp32c5_eco3', ]