Merge branch 'ci/enable_c61_target_test' into 'master'

ci(esp32c61): enable c61 generic target test

Closes IDF-9285 and IDF-9288

See merge request espressif/esp-idf!33088
This commit is contained in:
Wan Lei 2024-09-03 11:53:02 +08:00
commit ae5c7d46d1
44 changed files with 102 additions and 25 deletions

View File

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

View File

@ -19,6 +19,8 @@ def run_multiple_stages(dut: Dut, test_case_num: int, stages: int) -> None:
@pytest.mark.supported_targets @pytest.mark.supported_targets
# TODO: [ESP32C61] IDF-9245, IDF-9247, IDF-10983
@pytest.mark.temp_skip_ci(targets=['esp32c61'], reason='C61 has not supported deep sleep')
@pytest.mark.generic @pytest.mark.generic
def test_app_update(dut: Dut) -> None: def test_app_update(dut: Dut) -> None:
dut.run_all_single_board_cases(timeout=90) dut.run_all_single_board_cases(timeout=90)

View File

@ -13,6 +13,7 @@ CONFIGS = [
@pytest.mark.esp32c3 @pytest.mark.esp32c3
@pytest.mark.esp32c5 @pytest.mark.esp32c5
@pytest.mark.esp32c6 @pytest.mark.esp32c6
@pytest.mark.esp32c61
@pytest.mark.esp32h2 @pytest.mark.esp32h2
@pytest.mark.esp32s2 @pytest.mark.esp32s2
@pytest.mark.esp32s3 @pytest.mark.esp32s3
@ -27,6 +28,7 @@ def test_gpio_filter(dut: IdfDut) -> None:
@pytest.mark.esp32c3 @pytest.mark.esp32c3
@pytest.mark.esp32c5 @pytest.mark.esp32c5
@pytest.mark.esp32c6 @pytest.mark.esp32c6
@pytest.mark.esp32c61
@pytest.mark.esp32h2 @pytest.mark.esp32h2
@pytest.mark.esp32s2 @pytest.mark.esp32s2
@pytest.mark.esp32s3 @pytest.mark.esp32s3

View File

@ -9,6 +9,10 @@
components/esp_driver_spi/test_apps/master: components/esp_driver_spi/test_apps/master:
disable: disable:
- if: SOC_GPSPI_SUPPORTED != 1 - if: SOC_GPSPI_SUPPORTED != 1
disable_test:
- if: IDF_TARGET in ["esp32c61"]
temporary: true
reason: no multi-dev runner # TODO: [ESP32C61] IDF-10949
<<: *spi_depends_default <<: *spi_depends_default
components/esp_driver_spi/test_apps/param: components/esp_driver_spi/test_apps/param:

View File

@ -5,6 +5,7 @@ import pytest
# If `test_env` is define, should not run on generic runner # If `test_env` is define, should not run on generic runner
@pytest.mark.supported_targets @pytest.mark.supported_targets
@pytest.mark.temp_skip_ci(targets=['esp32c61'], reason='test case fail') # TODO: [ESP32C61] IDF-10949
@pytest.mark.generic @pytest.mark.generic
@pytest.mark.parametrize('config', ['defaults', 'release', 'freertos_compliance', 'freertos_flash',], indirect=True) @pytest.mark.parametrize('config', ['defaults', 'release', 'freertos_compliance', 'freertos_flash',], indirect=True)
def test_master_single_dev(case_tester) -> None: # type: ignore def test_master_single_dev(case_tester) -> None: # type: ignore
@ -26,8 +27,8 @@ def test_master_esp_flash(case_tester) -> None: # type: ignore
# if `test_env` not defined, will run on `generic_multi_device` by default # if `test_env` not defined, will run on `generic_multi_device` by default
# TODO: [ESP32P4] IDF-9517 [ESP32C5] IDF-10322 # TODO: [ESP32P4] IDF-9517 [ESP32C5] IDF-10322 [ESP32C61] IDF-10949
@pytest.mark.temp_skip_ci(targets=['esp32p4', 'esp32c5'], reason='no multi-dev runner') @pytest.mark.temp_skip_ci(targets=['esp32p4', 'esp32c5', 'esp32c61'], reason='no multi-dev runner')
@pytest.mark.supported_targets @pytest.mark.supported_targets
@pytest.mark.generic_multi_device @pytest.mark.generic_multi_device
@pytest.mark.parametrize( @pytest.mark.parametrize(

View File

@ -16,8 +16,8 @@ def test_param_single_dev(case_tester) -> None: # type: ignore
# if `test_env` not defined, will run on `generic_multi_device` by default # if `test_env` not defined, will run on `generic_multi_device` by default
# TODO: [ESP32P4] IDF-8942 [ESP32C5] IDF-10322 # TODO: [ESP32P4] IDF-8942 [ESP32C5] IDF-10322 [ESP32C61] IDF-10949
@pytest.mark.temp_skip_ci(targets=['esp32p4', 'esp32c5'], reason='no multi-dev runner') @pytest.mark.temp_skip_ci(targets=['esp32p4', 'esp32c5', 'esp32c61'], reason='no multi-dev runner')
@pytest.mark.supported_targets @pytest.mark.supported_targets
@pytest.mark.esp32h2 @pytest.mark.esp32h2
@pytest.mark.generic_multi_device @pytest.mark.generic_multi_device

View File

@ -15,8 +15,8 @@ def test_slave_single_dev(case_tester) -> None: # type: ignore
# if `test_env` not defined, will run on `generic_multi_device` by default # if `test_env` not defined, will run on `generic_multi_device` by default
# TODO: [ESP32P4] IDF-9517 [ESP32C5] IDF-10322 # TODO: [ESP32P4] IDF-9517 [ESP32C5] IDF-10322 [ESP32C61] IDF-10949
@pytest.mark.temp_skip_ci(targets=['esp32p4', 'esp32c5'], reason='no multi-dev runner') @pytest.mark.temp_skip_ci(targets=['esp32p4', 'esp32c5', 'esp32c61'], reason='no multi-dev runner')
@pytest.mark.supported_targets @pytest.mark.supported_targets
@pytest.mark.generic_multi_device @pytest.mark.generic_multi_device
@pytest.mark.parametrize('count, config', [(2, 'defaults'), (2, 'iram_safe')], indirect=True) @pytest.mark.parametrize('count, config', [(2, 'defaults'), (2, 'iram_safe')], indirect=True)

View File

@ -10,6 +10,7 @@ import pytest
@pytest.mark.esp32c3 @pytest.mark.esp32c3
@pytest.mark.esp32c5 @pytest.mark.esp32c5
@pytest.mark.esp32c6 @pytest.mark.esp32c6
@pytest.mark.esp32c61
@pytest.mark.esp32h2 @pytest.mark.esp32h2
@pytest.mark.esp32p4 @pytest.mark.esp32p4
@pytest.mark.generic @pytest.mark.generic

View File

@ -9,6 +9,7 @@ from pytest_embedded import Dut
@pytest.mark.esp32c3 @pytest.mark.esp32c3
@pytest.mark.esp32c5 @pytest.mark.esp32c5
@pytest.mark.esp32c6 @pytest.mark.esp32c6
@pytest.mark.esp32c61
@pytest.mark.esp32h2 @pytest.mark.esp32h2
@pytest.mark.esp32p4 @pytest.mark.esp32p4
@pytest.mark.generic @pytest.mark.generic

View File

@ -26,7 +26,7 @@ def test_rtc_no_xtal32k(dut: Dut) -> None:
@pytest.mark.generic @pytest.mark.generic
@pytest.mark.supported_targets @pytest.mark.supported_targets
# TODO: [ESP32P4] IDF-8973 [ESP32C5] IDF-10309 # TODO: [ESP32P4] IDF-8973 [ESP32C5] IDF-10309 [ESP32C61] IDF-9274 IDF-10984
@pytest.mark.temp_skip_ci(targets=['esp32c6', 'esp32h2', 'esp32p4', 'esp32c5'], reason='c6/h2/p4/c5 support TBD') @pytest.mark.temp_skip_ci(targets=['esp32c6', 'esp32h2', 'esp32p4', 'esp32c5', 'esp32c61'], reason='support TBD')
def test_rtc_calib(case_tester: Any) -> None: def test_rtc_calib(case_tester: Any) -> None:
case_tester.run_all_multi_stage_cases() case_tester.run_all_multi_stage_cases()

View File

@ -52,3 +52,7 @@ components/esp_lcd/test_apps/spi_lcd:
- esp_driver_spi - esp_driver_spi
disable: disable:
- if: SOC_GPSPI_SUPPORTED != 1 - if: SOC_GPSPI_SUPPORTED != 1
disable_test:
- if: IDF_TARGET in ["esp32c61"]
temporary: true
reason: test failed # TODO: ESP32C61 IDF-10953

View File

@ -5,6 +5,7 @@ from pytest_embedded import Dut
@pytest.mark.supported_targets @pytest.mark.supported_targets
@pytest.mark.temp_skip_ci(targets=['esp32c61'], reason='test case fail') # TODO: [ESP32C61] IDF-10953
@pytest.mark.generic @pytest.mark.generic
@pytest.mark.parametrize( @pytest.mark.parametrize(
'config', 'config',

View File

@ -6,6 +6,7 @@ from pytest_embedded import Dut
@pytest.mark.generic @pytest.mark.generic
@pytest.mark.supported_targets @pytest.mark.supported_targets
@pytest.mark.temp_skip_ci(targets=['esp32c61'], reason='not supported yet') # TODO: [ESP32C61] IDF-9250 IDF-10985
@pytest.mark.parametrize('config', [ @pytest.mark.parametrize('config', [
'default', 'default',
'slp_iram_opt', 'slp_iram_opt',

View File

@ -99,3 +99,16 @@ def test_psram_esp32p4(dut: Dut) -> None:
) )
def test_psram_esp32c5(dut: Dut) -> None: def test_psram_esp32c5(dut: Dut) -> None:
dut.run_all_single_board_cases() dut.run_all_single_board_cases()
@pytest.mark.esp32c61
@pytest.mark.generic
@pytest.mark.parametrize(
'config',
[
'esp32c61_release',
],
indirect=True,
)
def test_psram_esp32c61(dut: Dut) -> None:
dut.run_all_single_board_cases()

View File

@ -0,0 +1,7 @@
CONFIG_IDF_TARGET="esp32c61"
CONFIG_COMPILER_OPTIMIZATION_SIZE=y
CONFIG_BOOTLOADER_COMPILER_OPTIMIZATION_SIZE=y
CONFIG_COMPILER_OPTIMIZATION_ASSERTIONS_SILENT=y
CONFIG_SPIRAM=y

View File

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

View File

@ -9,6 +9,7 @@ from pytest_embedded import Dut
@pytest.mark.esp32s3 @pytest.mark.esp32s3
@pytest.mark.esp32c5 @pytest.mark.esp32c5
@pytest.mark.esp32c6 @pytest.mark.esp32c6
@pytest.mark.esp32c61
@pytest.mark.esp32h2 @pytest.mark.esp32h2
@pytest.mark.esp32p4 @pytest.mark.esp32p4
@pytest.mark.generic @pytest.mark.generic

View File

@ -4,4 +4,4 @@ components/esp_security/test_apps/crypto_drivers:
disable: disable:
- if: IDF_TARGET in ["esp32c61"] - if: IDF_TARGET in ["esp32c61"]
temporary: true temporary: true
reason: Support for ESP32C6 is yet to be added. reason: Support for ESP32C61 is yet to be added.

View File

@ -5,6 +5,7 @@ from pytest_embedded import Dut
@pytest.mark.generic @pytest.mark.generic
@pytest.mark.temp_skip_ci(targets=['esp32c61'], reason='Support for ESP32C61 is yet to be added.') # TODO: [ESP32C61] IDF-10987
@pytest.mark.parametrize( @pytest.mark.parametrize(
'config', 'config',
[ [

View File

@ -5,6 +5,7 @@ from pytest_embedded import Dut
@pytest.mark.generic @pytest.mark.generic
@pytest.mark.temp_skip_ci(targets=['esp32c61'], reason='test case fail') # TODO: IDF-10954
@pytest.mark.parametrize( @pytest.mark.parametrize(
'config', 'config',
[ [

View File

@ -388,6 +388,7 @@ TEST_CASE("esp_timer for very short intervals", "[esp_timer]")
vTaskDelay(3); // wait for the esp_timer task to delete all timers vTaskDelay(3); // wait for the esp_timer task to delete all timers
} }
#if !CONFIG_IDF_TARGET_ESP32C61 // TODO: IDF-10955, test fail
TEST_CASE("esp_timer_get_time call takes less than 1us", "[esp_timer]") TEST_CASE("esp_timer_get_time call takes less than 1us", "[esp_timer]")
{ {
int64_t begin = esp_timer_get_time(); int64_t begin = esp_timer_get_time();
@ -399,6 +400,7 @@ TEST_CASE("esp_timer_get_time call takes less than 1us", "[esp_timer]")
int ns_per_call = (int)((end - begin) * 1000 / iter_count); int ns_per_call = (int)((end - begin) * 1000 / iter_count);
TEST_PERFORMANCE_LESS_THAN(ESP_TIMER_GET_TIME_PER_CALL, "%dns", ns_per_call); TEST_PERFORMANCE_LESS_THAN(ESP_TIMER_GET_TIME_PER_CALL, "%dns", ns_per_call);
} }
#endif
static int64_t IRAM_ATTR __attribute__((noinline)) get_clock_diff(void) static int64_t IRAM_ATTR __attribute__((noinline)) get_clock_diff(void)
{ {

View File

@ -15,6 +15,7 @@ CONFIGS = [
] ]
@pytest.mark.temp_skip_ci(targets=['esp32c61'], reason='support TBD') # TODO [ESP32C61] IDF-10988
@pytest.mark.generic @pytest.mark.generic
@pytest.mark.parametrize('config', CONFIGS, indirect=True) @pytest.mark.parametrize('config', CONFIGS, indirect=True)
def test_freertos(dut: Dut) -> None: def test_freertos(dut: Dut) -> None:
@ -22,6 +23,7 @@ def test_freertos(dut: Dut) -> None:
@pytest.mark.supported_targets @pytest.mark.supported_targets
@pytest.mark.temp_skip_ci(targets=['esp32c61'], reason='support TBD') # TODO [ESP32C61] IDF-10988
@pytest.mark.generic @pytest.mark.generic
@pytest.mark.parametrize('config', ['freertos_options'], indirect=True) @pytest.mark.parametrize('config', ['freertos_options'], indirect=True)
def test_task_notify_too_high_index_fails(dut: Dut) -> None: def test_task_notify_too_high_index_fails(dut: Dut) -> None:
@ -33,6 +35,7 @@ def test_task_notify_too_high_index_fails(dut: Dut) -> None:
@pytest.mark.supported_targets @pytest.mark.supported_targets
@pytest.mark.temp_skip_ci(targets=['esp32c61'], reason='support TBD') # TODO [ESP32C61] IDF-10988
@pytest.mark.generic @pytest.mark.generic
@pytest.mark.parametrize('config', ['freertos_options'], indirect=True) @pytest.mark.parametrize('config', ['freertos_options'], indirect=True)
def test_task_notify_wait_too_high_index_fails(dut: Dut) -> None: def test_task_notify_wait_too_high_index_fails(dut: Dut) -> None:
@ -44,6 +47,7 @@ def test_task_notify_wait_too_high_index_fails(dut: Dut) -> None:
@pytest.mark.supported_targets @pytest.mark.supported_targets
@pytest.mark.temp_skip_ci(targets=['esp32c61'], reason='support TBD') # TODO [ESP32C61] IDF-10988
@pytest.mark.generic @pytest.mark.generic
@pytest.mark.parametrize('config', ['default'], indirect=True) @pytest.mark.parametrize('config', ['default'], indirect=True)
def test_port_must_assert_in_isr(dut: Dut) -> None: def test_port_must_assert_in_isr(dut: Dut) -> None:

View File

@ -6,6 +6,7 @@ from pytest_embedded import Dut
@pytest.mark.generic @pytest.mark.generic
@pytest.mark.supported_targets @pytest.mark.supported_targets
@pytest.mark.temp_skip_ci(targets=['esp32c61'], reason='support TBD') # TODO [ESP32C61] IDF-9858 IDF-10989
@pytest.mark.nightly_run @pytest.mark.nightly_run
@pytest.mark.parametrize( @pytest.mark.parametrize(
'config', 'config',
@ -39,6 +40,7 @@ def test_heap_poisoning_qemu(dut: Dut) -> None:
@pytest.mark.generic @pytest.mark.generic
@pytest.mark.supported_targets @pytest.mark.supported_targets
@pytest.mark.temp_skip_ci(targets=['esp32c61'], reason='support TBD') # TODO [ESP32C61] IDF-9858 IDF-10989
@pytest.mark.parametrize( @pytest.mark.parametrize(
'config', 'config',
[ [
@ -101,6 +103,7 @@ def test_heap_trace_dump(dut: Dut) -> None:
@pytest.mark.generic @pytest.mark.generic
@pytest.mark.supported_targets @pytest.mark.supported_targets
@pytest.mark.temp_skip_ci(targets=['esp32c61'], reason='support TBD') # TODO [ESP32C61] IDF-9858 IDF-10989
@pytest.mark.parametrize( @pytest.mark.parametrize(
'config', 'config',
[ [

View File

@ -31,6 +31,7 @@ def validate_sbom(dut: Dut) -> None:
@pytest.mark.generic @pytest.mark.generic
@pytest.mark.temp_skip_ci(targets=['esp32c61'], reason='support TBD') # TODO [esp32c61] IDF-9284 IDF-10990
@pytest.mark.parametrize( @pytest.mark.parametrize(
'config', 'config',
[ [

View File

@ -23,7 +23,7 @@ components/spi_flash/test_apps/esp_flash_stress:
components/spi_flash/test_apps/flash_encryption: components/spi_flash/test_apps/flash_encryption:
disable_test: disable_test:
- if: IDF_TARGET in ["esp32c2", "esp32s2", "esp32c6", "esp32h2", "esp32p4", "esp32c5"] - if: IDF_TARGET in ["esp32c2", "esp32s2", "esp32c6", "esp32h2", "esp32p4", "esp32c5", "esp32c61"]
temporary: true temporary: true
reason: No runners # IDF-5634 reason: No runners # IDF-5634

View File

@ -5,7 +5,7 @@ from pytest_embedded import Dut
@pytest.mark.supported_targets @pytest.mark.supported_targets
@pytest.mark.temp_skip_ci(targets=['esp32c5'], reason='not support yet') # TODO: [ESP32C5] IDF-8715, IDF-10313 @pytest.mark.temp_skip_ci(targets=['esp32c5', 'esp32c61'], reason='not support yet') # TODO: [ESP32C5] IDF-8715, IDF-10313, [ESP32C61] IDF-9314 IDF-10991
@pytest.mark.generic @pytest.mark.generic
@pytest.mark.parametrize( @pytest.mark.parametrize(
'config', 'config',

View File

@ -4,7 +4,8 @@ import pytest
from pytest_embedded import Dut from pytest_embedded import Dut
@pytest.mark.temp_skip_ci(targets=['esp32p4', 'esp32c5'], reason='esp32p4, esp32c5 support TBD') # TODO: [ESP32P4] IDF-8985 [ESP32C5] IDF-8715, IDF-10313 # TODO: [ESP32P4] IDF-8985 [ESP32C5] IDF-8715, IDF-10313, [ESP32C61] IDF-9314 IDF-10991
@pytest.mark.temp_skip_ci(targets=['esp32p4', 'esp32c5', 'esp32c61'], reason='esp32p4, esp32c5 support TBD')
@pytest.mark.supported_targets @pytest.mark.supported_targets
@pytest.mark.generic @pytest.mark.generic
@pytest.mark.parametrize( @pytest.mark.parametrize(

View File

@ -12,6 +12,7 @@ from pytest_embedded_idf.unity_tester import CaseTester
@pytest.mark.esp32c3 @pytest.mark.esp32c3
@pytest.mark.esp32c2 @pytest.mark.esp32c2
@pytest.mark.esp32c6 @pytest.mark.esp32c6
@pytest.mark.esp32c61
@pytest.mark.esp32c5 @pytest.mark.esp32c5
def test_wpa_supplicant_ut(dut: Dut) -> None: def test_wpa_supplicant_ut(dut: Dut) -> None:
dut.run_all_single_board_cases() dut.run_all_single_board_cases()

View File

@ -8,6 +8,7 @@ from pytest_embedded import Dut
@pytest.mark.esp32c3 @pytest.mark.esp32c3
@pytest.mark.esp32c5 @pytest.mark.esp32c5
@pytest.mark.esp32c6 @pytest.mark.esp32c6
@pytest.mark.esp32c61
@pytest.mark.esp32h2 @pytest.mark.esp32h2
@pytest.mark.esp32s2 @pytest.mark.esp32s2
@pytest.mark.esp32s3 @pytest.mark.esp32s3

View File

@ -2,7 +2,7 @@
examples/security/flash_encryption: examples/security/flash_encryption:
disable_test: disable_test:
- if: IDF_TARGET in ["esp32s2", "esp32s3", "esp32c6", "esp32h2", "esp32c2", "esp32p4", "esp32c5"] - if: IDF_TARGET in ["esp32s2", "esp32s3", "esp32c6", "esp32h2", "esp32c2", "esp32p4", "esp32c5", "esp32c61"]
temporary: true temporary: true
reason: lack of runners reason: lack of runners

View File

@ -5,7 +5,7 @@ from pytest_embedded import Dut
@pytest.mark.supported_targets @pytest.mark.supported_targets
@pytest.mark.temp_skip_ci(targets=['esp32c5'], reason='not support yet') # TODO: [ESP32C5] IDF-8704, IDF-10314 @pytest.mark.temp_skip_ci(targets=['esp32c5', 'esp32c61'], reason='not support yet') # TODO: [ESP32C5] IDF-10314 [ESP32C61] IDF-10977
@pytest.mark.generic @pytest.mark.generic
@pytest.mark.parametrize( @pytest.mark.parametrize(
'config', 'config',

View File

@ -2,11 +2,15 @@
examples/system/app_trace_basic: examples/system/app_trace_basic:
disable: disable:
- if: IDF_TARGET in ["esp32c6", "esp32h2", "esp32p4", "esp32c5"] - if: IDF_TARGET in ["esp32c6", "esp32h2", "esp32p4", "esp32c5", "esp32c61"]
temporary: true temporary: true
reason: target esp32c6, esp32h2, esp32p4, esp32c5 is not supported yet reason: targets not supported yet, TODO[C61] IDF-9264 IDF-10992
examples/system/base_mac_address: examples/system/base_mac_address:
disable_test:
- if: IDF_TARGET in ["esp32c61"]
temporary: true
reason: test failed # TODO: IDF-10956
depends_components: depends_components:
- esp_hw_support - esp_hw_support

View File

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

View File

@ -5,6 +5,7 @@ from pytest_embedded import Dut
@pytest.mark.supported_targets @pytest.mark.supported_targets
@pytest.mark.temp_skip_ci(targets=['esp32c61'], reason='test case fail') # TODO: IDF-10956
@pytest.mark.generic @pytest.mark.generic
def test_base_mac_address(dut: Dut) -> None: def test_base_mac_address(dut: Dut) -> None:
def get_hex_r(num_bytes: int) -> str: def get_hex_r(num_bytes: int) -> str:

View File

@ -50,6 +50,7 @@ def test_examples_efuse_linux(dut: Dut) -> None:
@pytest.mark.esp32c2 @pytest.mark.esp32c2
@pytest.mark.esp32c3 @pytest.mark.esp32c3
@pytest.mark.esp32c5 @pytest.mark.esp32c5
@pytest.mark.esp32c61
@pytest.mark.esp32c6 @pytest.mark.esp32c6
@pytest.mark.esp32h2 @pytest.mark.esp32h2
@pytest.mark.esp32s2 @pytest.mark.esp32s2
@ -150,6 +151,7 @@ def test_examples_efuse_with_virt_flash_enc_aes_256(dut: Dut) -> None:
@pytest.mark.esp32c2 @pytest.mark.esp32c2
@pytest.mark.esp32c3 @pytest.mark.esp32c3
@pytest.mark.esp32c5 @pytest.mark.esp32c5
@pytest.mark.esp32c61
@pytest.mark.esp32c6 @pytest.mark.esp32c6
@pytest.mark.esp32h2 @pytest.mark.esp32h2
@pytest.mark.esp32s2 @pytest.mark.esp32s2
@ -226,6 +228,7 @@ def test_examples_efuse_with_virt_flash_enc_pre_loaded(dut: Dut) -> None:
@pytest.mark.esp32c2 @pytest.mark.esp32c2
@pytest.mark.esp32c3 @pytest.mark.esp32c3
@pytest.mark.esp32c5 @pytest.mark.esp32c5
@pytest.mark.esp32c61
@pytest.mark.esp32c6 @pytest.mark.esp32c6
@pytest.mark.esp32h2 @pytest.mark.esp32h2
@pytest.mark.esp32s2 @pytest.mark.esp32s2
@ -565,7 +568,7 @@ def test_examples_efuse_with_virt_secure_boot_v2_pre_loaded(dut: Dut) -> None:
@pytest.mark.esp32c2 @pytest.mark.esp32c2
# TODO: [ESP32C5] IDF-10043 # TODO: [ESP32C5] IDF-10043
# @pytest.mark.esp32c5 # @pytest.mark.esp32c5
# TODO: [ESP32C5] IDF-10102 # TODO: [ESP32C61] IDF-10102
# @pytest.mark.esp32c61 # @pytest.mark.esp32c61
@pytest.mark.esp32c6 @pytest.mark.esp32c6
@pytest.mark.esp32h2 @pytest.mark.esp32h2
@ -642,7 +645,7 @@ def test_examples_efuse_with_virt_secure_boot_v2_esp32xx(dut: Dut) -> None:
@pytest.mark.esp32c2 @pytest.mark.esp32c2
# TODO: [ESP32C5] IDF-10043 # TODO: [ESP32C5] IDF-10043
# @pytest.mark.esp32c5 # @pytest.mark.esp32c5
# TODO: [ESP32C5] IDF-10102 # TODO: [ESP32C61] IDF-10102
# @pytest.mark.esp32c61 # @pytest.mark.esp32c61
@pytest.mark.esp32c6 @pytest.mark.esp32c6
@pytest.mark.esp32h2 @pytest.mark.esp32h2
@ -953,6 +956,7 @@ def test_examples_efuse_with_virt_sb_v2_and_fe_qemu(dut: QemuDut) -> None:
@pytest.mark.esp32c3 @pytest.mark.esp32c3
@pytest.mark.esp32c2 @pytest.mark.esp32c2
@pytest.mark.esp32c5 @pytest.mark.esp32c5
@pytest.mark.esp32c61
@pytest.mark.esp32c6 @pytest.mark.esp32c6
@pytest.mark.esp32h2 @pytest.mark.esp32h2
@pytest.mark.esp32s2 @pytest.mark.esp32s2

View File

@ -28,6 +28,8 @@ ONE_SHOT_TIMER_PERIOD = 5000000
@pytest.mark.supported_targets @pytest.mark.supported_targets
# TODO: [ESP32C61] IDF-10993
@pytest.mark.temp_skip_ci(targets=['esp32c61'], reason='C61 has not supported light sleep')
@pytest.mark.generic @pytest.mark.generic
@pytest.mark.parametrize( @pytest.mark.parametrize(
'config', 'config',

View File

@ -8,6 +8,7 @@ from pytest_embedded import Dut
@pytest.mark.supported_targets @pytest.mark.supported_targets
@pytest.mark.temp_skip_ci(targets=['esp32c61'], reason='not supported light sleep') # TODO: [ESP32C61] IDF-9247 IDF-10993
@pytest.mark.generic @pytest.mark.generic
def test_light_sleep(dut: Dut) -> None: def test_light_sleep(dut: Dut) -> None:

View File

@ -14,6 +14,7 @@ no_runner_tags:
- esp32c3,sdcard_sdmode - esp32c3,sdcard_sdmode
- esp32c5,jtag - esp32c5,jtag
- esp32c6,jtag - esp32c6,jtag
- esp32c61,jtag
- esp32h2,jtag - esp32h2,jtag
- esp32p4,jtag - esp32p4,jtag
- esp32s2,usb_host_flash_disk - esp32s2,usb_host_flash_disk

View File

@ -16,7 +16,7 @@ from idf_ci_utils import IDF_PATH
from idf_ci_utils import idf_relpath from idf_ci_utils import idf_relpath
from pytest_embedded.utils import to_list from pytest_embedded.utils import to_list
SUPPORTED_TARGETS = ['esp32', 'esp32s2', 'esp32c3', 'esp32s3', 'esp32c2', 'esp32c6', 'esp32h2', 'esp32p4', 'esp32c5'] SUPPORTED_TARGETS = ['esp32', 'esp32s2', 'esp32c3', 'esp32s3', 'esp32c2', 'esp32c6', 'esp32h2', 'esp32p4', 'esp32c5', 'esp32c61']
PREVIEW_TARGETS: t.List[str] = [] # this PREVIEW_TARGETS excludes 'linux' target PREVIEW_TARGETS: t.List[str] = [] # this PREVIEW_TARGETS excludes 'linux' target
DEFAULT_SDKCONFIG = 'default' DEFAULT_SDKCONFIG = 'default'
DEFAULT_LOGDIR = 'pytest-embedded' DEFAULT_LOGDIR = 'pytest-embedded'
@ -31,12 +31,12 @@ TARGET_MARKERS = {
'esp32c6': 'support esp32c6 target', 'esp32c6': 'support esp32c6 target',
'esp32h2': 'support esp32h2 target', 'esp32h2': 'support esp32h2 target',
'esp32p4': 'support esp32p4 target', 'esp32p4': 'support esp32p4 target',
'esp32c61': 'support esp32c61 target',
'linux': 'support linux target', 'linux': 'support linux target',
} }
SPECIAL_MARKERS = { SPECIAL_MARKERS = {
'supported_targets': 'support all officially announced supported targets ' 'supported_targets': 'support all officially announced supported targets, refer to `SUPPORTED_TARGETS`',
"('esp32', 'esp32s2', 'esp32c3', 'esp32s3', 'esp32c2', 'esp32c6', 'esp32p4', 'esp32c5')",
'preview_targets': "support all preview targets ('none')", 'preview_targets': "support all preview targets ('none')",
'all_targets': 'support all targets, including supported ones and preview ones', 'all_targets': 'support all targets, including supported ones and preview ones',
'temp_skip_ci': 'temp skip tests for specified targets only in ci', 'temp_skip_ci': 'temp skip tests for specified targets only in ci',

View File

@ -29,6 +29,10 @@ tools/test_apps/system/eh_frame:
reason: Only relevant for riscv targets reason: Only relevant for riscv targets
tools/test_apps/system/esp_intr_dump: tools/test_apps/system/esp_intr_dump:
disable_test:
- if: IDF_TARGET in ["esp32c61"]
temporary: true
reason: test failed # TODO: IDF-10957
tools/test_apps/system/g0_components: tools/test_apps/system/g0_components:
enable: enable:

View File

@ -8,6 +8,7 @@ from pytest_embedded import Dut
@pytest.mark.esp32c3 @pytest.mark.esp32c3
@pytest.mark.esp32c5 @pytest.mark.esp32c5
@pytest.mark.esp32c6 @pytest.mark.esp32c6
@pytest.mark.esp32c61
@pytest.mark.esp32h2 @pytest.mark.esp32h2
@pytest.mark.esp32p4 @pytest.mark.esp32p4
@pytest.mark.generic @pytest.mark.generic
@ -23,6 +24,7 @@ def test_eh_frame_wdt(dut: Dut) -> None:
@pytest.mark.esp32c3 @pytest.mark.esp32c3
@pytest.mark.esp32c5 @pytest.mark.esp32c5
@pytest.mark.esp32c6 @pytest.mark.esp32c6
@pytest.mark.esp32c61
@pytest.mark.esp32h2 @pytest.mark.esp32h2
@pytest.mark.esp32p4 @pytest.mark.esp32p4
@pytest.mark.generic @pytest.mark.generic

View File

@ -48,6 +48,7 @@ def test_esp_intr_dump_shared(dut: Dut) -> None:
# TODO: IDF-9512, Update the expected output of dual core RISC-V chips when the issue is resolved # TODO: IDF-9512, Update the expected output of dual core RISC-V chips when the issue is resolved
@pytest.mark.supported_targets @pytest.mark.supported_targets
@pytest.mark.temp_skip_ci(targets=['esp32c61'], reason='test case fail') # TODO: IDF-10957
@pytest.mark.generic @pytest.mark.generic
def test_esp_intr_dump_expected_output(dut: Dut) -> None: def test_esp_intr_dump_expected_output(dut: Dut) -> None:
dut.expect_exact(PROMPT, timeout=30) dut.expect_exact(PROMPT, timeout=30)

View File

@ -584,6 +584,7 @@ def cache_error_log_check(dut: PanicTestDut) -> None:
@pytest.mark.generic @pytest.mark.generic
@pytest.mark.supported_targets @pytest.mark.supported_targets
@pytest.mark.temp_skip_ci(targets=['esp32c61'], reason='support TBD') # TODO [ESP32C61] IDF-9268 IDF-10994
@pytest.mark.parametrize('config', ['panic'], indirect=True) @pytest.mark.parametrize('config', ['panic'], indirect=True)
def test_assert_cache_write_back_error_can_print_backtrace( def test_assert_cache_write_back_error_can_print_backtrace(
dut: PanicTestDut, config: str, test_func_name: str dut: PanicTestDut, config: str, test_func_name: str
@ -594,6 +595,7 @@ def test_assert_cache_write_back_error_can_print_backtrace(
@pytest.mark.generic @pytest.mark.generic
@pytest.mark.supported_targets @pytest.mark.supported_targets
@pytest.mark.temp_skip_ci(targets=['esp32c61'], reason='support TBD') # TODO [ESP32C61] IDF-9268 IDF-10994
@pytest.mark.parametrize('config', ['panic'], indirect=True) @pytest.mark.parametrize('config', ['panic'], indirect=True)
def test_assert_cache_write_back_error_can_print_backtrace2( def test_assert_cache_write_back_error_can_print_backtrace2(
dut: PanicTestDut, config: str, test_func_name: str dut: PanicTestDut, config: str, test_func_name: str

View File

@ -13,7 +13,8 @@ def test_pure_ram_loadable_app(dut: IdfDut) -> None:
dut.expect('Time since boot: 3 seconds...', timeout=10) dut.expect('Time since boot: 3 seconds...', timeout=10)
@pytest.mark.temp_skip_ci(targets=['esp32p4', 'esp32c5'], reason='esp32p4, esp32c5 support TBD') # TODO: [ESP32P4] IDF-8994 [ESP32C5] IDF-8644, IDF-10315 # TODO: [ESP32P4] IDF-8994 [ESP32C5] IDF-8644, IDF-10315, [ESP32C61] IDF-10951
@pytest.mark.temp_skip_ci(targets=['esp32p4', 'esp32c5', 'esp32c61'], reason='support TBD')
@pytest.mark.supported_targets @pytest.mark.supported_targets
@pytest.mark.generic @pytest.mark.generic
@pytest.mark.parametrize('config', ['defaults',], indirect=True,) @pytest.mark.parametrize('config', ['defaults',], indirect=True,)