Merge branch 'ci/enable_esp32c6_target_test_stage' into 'master'

CI: Enable esp32c6 target test stage

Closes IDF-5830 and IDF-5831

See merge request espressif/esp-idf!21010
This commit is contained in:
Song Ruo Jing 2022-11-29 19:54:05 +08:00
commit 56302544f6
97 changed files with 361 additions and 86 deletions

View File

@ -31,6 +31,9 @@ assign_example_test:
- job: build_examples_cmake_esp32c3 - job: build_examples_cmake_esp32c3
artifacts: false artifacts: false
optional: true optional: true
- job: build_examples_cmake_esp32c6
artifacts: false
optional: true
- job: build_examples_cmake_esp32s3 - job: build_examples_cmake_esp32s3
artifacts: false artifacts: false
optional: true optional: true
@ -55,6 +58,9 @@ assign_custom_test:
- job: build_test_apps_esp32c3 - job: build_test_apps_esp32c3
artifacts: false artifacts: false
optional: true optional: true
- job: build_test_apps_esp32c6
artifacts: false
optional: true
- job: build_test_apps_esp32s3 - job: build_test_apps_esp32s3
artifacts: false artifacts: false
optional: true optional: true
@ -75,6 +81,8 @@ assign_unit_test:
optional: true optional: true
- job: build_esp_idf_tests_cmake_esp32c3 - job: build_esp_idf_tests_cmake_esp32c3
optional: true optional: true
- job: build_esp_idf_tests_cmake_esp32c6
optional: true
- job: build_esp_idf_tests_cmake_esp32s3 - job: build_esp_idf_tests_cmake_esp32s3
optional: true optional: true
variables: variables:

View File

@ -9,8 +9,8 @@
extra_default_build_targets: extra_default_build_targets:
- esp32c6 - esp32c6
bypass_check_test_targets: # bypass_check_test_targets:
- esp32c6 # - esp32c6
# #
# 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

@ -1628,6 +1628,21 @@
- <<: *if-dev-push - <<: *if-dev-push
changes: *patterns-target_test-wifi changes: *patterns-target_test-wifi
.rules:test:component_ut-esp32c6:
rules:
- <<: *if-revert-branch
when: never
- <<: *if-protected
- <<: *if-label-build-only
when: never
- <<: *if-label-component_ut
- <<: *if-label-component_ut_esp32c6
- <<: *if-label-target_test
- <<: *if-label-unit_test
- <<: *if-label-unit_test_esp32c6
- <<: *if-dev-push
changes: *patterns-component_ut
.rules:test:component_ut-esp32h4-i154: .rules:test:component_ut-esp32h4-i154:
rules: rules:
- <<: *if-revert-branch - <<: *if-revert-branch
@ -1736,6 +1751,19 @@
- <<: *if-dev-push - <<: *if-dev-push
changes: *patterns-custom_test changes: *patterns-custom_test
.rules:test:custom_test-esp32c6:
rules:
- <<: *if-revert-branch
when: never
- <<: *if-protected
- <<: *if-label-build-only
when: never
- <<: *if-label-custom_test
- <<: *if-label-custom_test_esp32c6
- <<: *if-label-target_test
- <<: *if-dev-push
changes: *patterns-custom_test
.rules:test:custom_test-esp32s2: .rules:test:custom_test-esp32s2:
rules: rules:
- <<: *if-revert-branch - <<: *if-revert-branch
@ -1866,6 +1894,21 @@
when: never when: never
- <<: *if-example_test-ota-include_nightly_run-rule - <<: *if-example_test-ota-include_nightly_run-rule
.rules:test:example_test-esp32c6:
rules:
- <<: *if-revert-branch
when: never
- <<: *if-protected
- <<: *if-label-build-only
when: never
- <<: *if-label-example_test
- <<: *if-label-example_test_esp32c6
- <<: *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:test:example_test-esp32s2:
rules: rules:
- <<: *if-revert-branch - <<: *if-revert-branch
@ -2007,6 +2050,19 @@
- <<: *if-dev-push - <<: *if-dev-push
changes: *patterns-unit_test changes: *patterns-unit_test
.rules:test:unit_test-esp32c6:
rules:
- <<: *if-revert-branch
when: never
- <<: *if-protected
- <<: *if-label-build-only
when: never
- <<: *if-label-target_test
- <<: *if-label-unit_test
- <<: *if-label-unit_test_esp32c6
- <<: *if-dev-push
changes: *patterns-unit_test
.rules:test:unit_test-esp32s2: .rules:test:unit_test-esp32s2:
rules: rules:
- <<: *if-revert-branch - <<: *if-revert-branch

View File

@ -132,6 +132,14 @@ example_test_pytest_esp32c3_flash_suspend:
- build_pytest_examples_esp32c3 - build_pytest_examples_esp32c3
tags: [ esp32c3, flash_suspend ] tags: [ esp32c3, flash_suspend ]
example_test_pytest_esp32c6_generic:
extends:
- .pytest_examples_dir_template
- .rules:test:example_test-esp32c6
needs:
- build_pytest_examples_esp32c6
tags: [ esp32c6, generic ]
example_test_pytest_esp32_ethernet_ota: example_test_pytest_esp32_ethernet_ota:
extends: extends:
- .pytest_examples_dir_template - .pytest_examples_dir_template
@ -597,6 +605,14 @@ component_ut_pytest_esp32c3_sdspi:
- build_pytest_components_esp32c3 - build_pytest_components_esp32c3
tags: [ esp32c3, sdcard_spimode ] tags: [ esp32c3, sdcard_spimode ]
component_ut_pytest_esp32c6_generic:
extends:
- .pytest_components_dir_template
- .rules:test:component_ut-esp32c6
needs:
- build_pytest_components_esp32c6
tags: [ esp32c6, generic ]
component_ut_pytest_esp32h4_i154: component_ut_pytest_esp32h4_i154:
extends: extends:
- .pytest_components_dir_template - .pytest_components_dir_template
@ -683,6 +699,14 @@ test_app_test_pytest_esp32c3_generic:
- build_pytest_test_apps_esp32c3 - build_pytest_test_apps_esp32c3
tags: [ esp32c3, generic ] tags: [ esp32c3, generic ]
test_app_test_pytest_esp32c6_generic:
extends:
- .pytest_test_apps_dir_template
- .rules:test:custom_test-esp32c6
needs:
- build_pytest_test_apps_esp32c6
tags: [ esp32c6, generic ]
test_app_test_pytest_esp32s3_mspi_f8r8: test_app_test_pytest_esp32s3_mspi_f8r8:
extends: extends:
- .pytest_test_apps_dir_template - .pytest_test_apps_dir_template
@ -786,6 +810,11 @@ test_weekend_mqtt:
- .example_test_template - .example_test_template
- .rules:test:example_test-esp32c3 - .rules:test:example_test-esp32c3
.example_test_esp32c6_template:
extends:
- .example_test_template
- .rules:test:example_test-esp32c6
.example_test_esp32s3_template: .example_test_esp32s3_template:
extends: extends:
- .example_test_template - .example_test_template
@ -894,6 +923,12 @@ example_test_C2_GENERIC:
- ESP32C2 - ESP32C2
- Example_GENERIC - Example_GENERIC
example_test_C6_GENERIC:
extends: .example_test_esp32c6_template
tags:
- ESP32C6
- Example_GENERIC
.test_app_template: .test_app_template:
extends: .target_test_job_template extends: .target_test_job_template
needs: needs:
@ -923,6 +958,11 @@ example_test_C2_GENERIC:
- .test_app_template - .test_app_template
- .rules:test:custom_test-esp32c3 - .rules:test:custom_test-esp32c3
.test_app_esp32c6_template:
extends:
- .test_app_template
- .rules:test:custom_test-esp32c6
.test_app_esp32s3_template: .test_app_esp32s3_template:
extends: extends:
- .test_app_template - .test_app_template
@ -976,6 +1016,11 @@ test_app_test_eth:
- .unit_test_template - .unit_test_template
- .rules:test:unit_test-esp32c3 - .rules:test:unit_test-esp32c3
.unit_test_esp32c6_template:
extends:
- .unit_test_template
- .rules:test:unit_test-esp32c6
UT_001: UT_001:
extends: .unit_test_esp32_template extends: .unit_test_esp32_template
parallel: 32 parallel: 32
@ -1133,6 +1178,13 @@ UT_C3_SDSPI:
- ESP32C3_IDF - ESP32C3_IDF
- UT_T1_SPIMODE - UT_T1_SPIMODE
UT_C6:
extends: .unit_test_esp32c6_template
parallel: 12
tags:
- ESP32C6_IDF
- UT_T1_1
UT_S3: UT_S3:
extends: .unit_test_esp32s3_template extends: .unit_test_esp32s3_template
parallel: 19 parallel: 19

View File

@ -3,5 +3,5 @@
components/app_update/test_apps: components/app_update/test_apps:
disable: disable:
- if: IDF_TARGET == "esp32c6" - if: IDF_TARGET == "esp32c6"
temporary: false temporary: true
reason: target esp32c6 is not supported yet reason: target esp32c6 is not supported yet

View File

@ -19,6 +19,7 @@ def run_multiple_stages(dut: Dut, test_case_num: int, stages: int) -> None:
@pytest.mark.supported_targets @pytest.mark.supported_targets
@pytest.mark.temp_skip_ci(targets=['esp32c6'], reason='c6 support TBD')
@pytest.mark.generic @pytest.mark.generic
def test_app_update(dut: Dut) -> None: def test_app_update(dut: Dut) -> None:
extra_data = dut.parse_test_menu() extra_data = dut.parse_test_menu()

View File

@ -5,3 +5,7 @@ components/bootloader_support/test_apps/rtc_custom_section:
- if: IDF_TARGET == "esp32c2" - if: IDF_TARGET == "esp32c2"
temporary: false temporary: false
reason: esp32c2 does not have RTC memory reason: esp32c2 does not have RTC memory
disable_test:
- if: IDF_TARGET == "esp32c6"
temporary: true
reason: target esp32c6 is not supported yet

View File

@ -8,6 +8,12 @@ components/driver/test_apps/dac_test_apps/legacy_dac_driver:
disable: disable:
- if: SOC_DAC_SUPPORTED != 1 - if: SOC_DAC_SUPPORTED != 1
components/driver/test_apps/gptimer:
disable_test:
- if: IDF_TARGET == "esp32c6"
temporary: true
reason: target esp32c6 is not supported yet
components/driver/test_apps/i2s_test_apps: components/driver/test_apps/i2s_test_apps:
disable: disable:
- if: SOC_I2S_SUPPORTED != 1 - if: SOC_I2S_SUPPORTED != 1
@ -20,6 +26,14 @@ components/driver/test_apps/i2s_test_apps/legacy_i2s_adc_dac:
disable: disable:
- if: SOC_I2S_SUPPORTS_ADC_DAC != 1 - if: SOC_I2S_SUPPORTS_ADC_DAC != 1
components/driver/test_apps/i2s_test_apps/legacy_i2s_driver:
disable:
- if: SOC_I2S_SUPPORTED != 1
disable_test:
- if: IDF_TARGET == "esp32c6"
temporary: true
reason: target esp32c6 is not supported yet
components/driver/test_apps/legacy_adc_driver: components/driver/test_apps/legacy_adc_driver:
disable: disable:
- if: IDF_TARGET == "esp32c6" - if: IDF_TARGET == "esp32c6"
@ -29,6 +43,10 @@ components/driver/test_apps/legacy_adc_driver:
components/driver/test_apps/legacy_mcpwm_driver: components/driver/test_apps/legacy_mcpwm_driver:
disable: disable:
- if: SOC_MCPWM_SUPPORTED != 1 - if: SOC_MCPWM_SUPPORTED != 1
disable_test:
- if: IDF_TARGET == "esp32c6"
temporary: true
reason: target esp32c6 is not supported yet
components/driver/test_apps/legacy_pcnt_driver: components/driver/test_apps/legacy_pcnt_driver:
disable: disable:
@ -45,9 +63,19 @@ components/driver/test_apps/legacy_rtc_temp_driver:
disable: disable:
- if: SOC_TEMP_SENSOR_SUPPORTED != 1 - if: SOC_TEMP_SENSOR_SUPPORTED != 1
components/driver/test_apps/legacy_timer_driver:
disable_test:
- if: IDF_TARGET == "esp32c6"
temporary: true
reason: target esp32c6 is not supported yet
components/driver/test_apps/mcpwm: components/driver/test_apps/mcpwm:
disable: disable:
- if: SOC_MCPWM_SUPPORTED != 1 - if: SOC_MCPWM_SUPPORTED != 1
disable_test:
- if: IDF_TARGET == "esp32c6"
temporary: true
reason: target esp32c6 is not supported yet
components/driver/test_apps/pulse_cnt: components/driver/test_apps/pulse_cnt:
disable: disable:
@ -56,6 +84,10 @@ components/driver/test_apps/pulse_cnt:
components/driver/test_apps/rmt: components/driver/test_apps/rmt:
disable: disable:
- if: SOC_RMT_SUPPORTED != 1 - if: SOC_RMT_SUPPORTED != 1
disable_test:
- if: IDF_TARGET == "esp32c6"
temporary: true
reason: target esp32c6 is not supported yet
components/driver/test_apps/rs485: components/driver/test_apps/rs485:
disable_test: disable_test:

View File

@ -6,6 +6,7 @@ from pytest_embedded import Dut
@pytest.mark.supported_targets @pytest.mark.supported_targets
@pytest.mark.temp_skip_ci(targets=['esp32c6'], reason='iram_safe test failed')
@pytest.mark.generic @pytest.mark.generic
@pytest.mark.parametrize( @pytest.mark.parametrize(
'config', 'config',

View File

@ -8,7 +8,6 @@ from pytest_embedded import Dut
@pytest.mark.esp32 @pytest.mark.esp32
@pytest.mark.esp32s2 @pytest.mark.esp32s2
@pytest.mark.esp32c3 @pytest.mark.esp32c3
@pytest.mark.esp32c6
@pytest.mark.esp32s3 @pytest.mark.esp32s3
@pytest.mark.generic @pytest.mark.generic
@pytest.mark.parametrize( @pytest.mark.parametrize(

View File

@ -9,6 +9,7 @@ from pytest_embedded import Dut
@pytest.mark.esp32s2 @pytest.mark.esp32s2
@pytest.mark.esp32s3 @pytest.mark.esp32s3
@pytest.mark.esp32c3 @pytest.mark.esp32c3
@pytest.mark.esp32c6
@pytest.mark.generic @pytest.mark.generic
@pytest.mark.parametrize('config', [ @pytest.mark.parametrize('config', [
'release', 'release',

View File

@ -9,6 +9,7 @@ from pytest_embedded import Dut
@pytest.mark.esp32c3 @pytest.mark.esp32c3
@pytest.mark.esp32s3 @pytest.mark.esp32s3
@pytest.mark.esp32c2 @pytest.mark.esp32c2
@pytest.mark.esp32c6
@pytest.mark.generic @pytest.mark.generic
@pytest.mark.parametrize('config', [ @pytest.mark.parametrize('config', [
'release', 'release',

View File

@ -6,6 +6,7 @@ from pytest_embedded import Dut
@pytest.mark.supported_targets @pytest.mark.supported_targets
@pytest.mark.temp_skip_ci(targets=['esp32c6'], reason='test failed')
@pytest.mark.generic @pytest.mark.generic
@pytest.mark.parametrize('config', [ @pytest.mark.parametrize('config', [
'release', 'release',

View File

@ -9,6 +9,7 @@ from pytest_embedded import Dut
@pytest.mark.esp32s2 @pytest.mark.esp32s2
@pytest.mark.esp32s3 @pytest.mark.esp32s3
@pytest.mark.esp32c3 @pytest.mark.esp32c3
@pytest.mark.esp32c6
@pytest.mark.generic @pytest.mark.generic
@pytest.mark.parametrize( @pytest.mark.parametrize(
'config', 'config',

View File

@ -45,7 +45,6 @@ typedef struct {
} task_context_t; } task_context_t;
#if !(CONFIG_SPIRAM && CONFIG_IDF_TARGET_ESP32) #if !(CONFIG_SPIRAM && CONFIG_IDF_TARGET_ESP32)
#if !TEMPORARY_DISABLED_FOR_TARGETS(ESP32C6)
const static char TAG[] = "test_spi"; const static char TAG[] = "test_spi";
@ -349,5 +348,4 @@ TEST_CASE("spi master can be used on SPI1", "[spi]")
//TODO: add a case when a non-polling transaction happened in the bus-acquiring time and then release the bus then queue a new trans //TODO: add a case when a non-polling transaction happened in the bus-acquiring time and then release the bus then queue a new trans
#endif //!TEMPORARY_DISABLED_FOR_TARGETS(ESP32C6)
#endif //!(CONFIG_SPIRAM && CONFIG_IDF_TARGET_ESP32) #endif //!(CONFIG_SPIRAM && CONFIG_IDF_TARGET_ESP32)

View File

@ -143,7 +143,6 @@ TEST_CASE("SPI Single Board Test SIO", "[spi]")
#endif //#if (TEST_SPI_PERIPH_NUM >= 2) #endif //#if (TEST_SPI_PERIPH_NUM >= 2)
#if !TEMPORARY_DISABLED_FOR_TARGETS(ESP32C6)
/******************************************************************************** /********************************************************************************
* Test SIO Master * Test SIO Master
* SIO Slave is not suported, and one unit test is limited to one feature, so,,, * SIO Slave is not suported, and one unit test is limited to one feature, so,,,
@ -327,4 +326,3 @@ void test_slave_run(void)
} }
TEST_CASE_MULTIPLE_DEVICES("SPI_Master:Test_SIO_Mode_Multi_Board", "[spi_ms][test_env=generic_multi_device]", test_master_run, test_slave_run); TEST_CASE_MULTIPLE_DEVICES("SPI_Master:Test_SIO_Mode_Multi_Board", "[spi_ms][test_env=generic_multi_device]", test_master_run, test_slave_run);
#endif //!TEMPORARY_DISABLED_FOR_TARGETS(ESP32C6)

View File

@ -5,7 +5,6 @@ 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.esp32c6
@pytest.mark.supported_targets @pytest.mark.supported_targets
@pytest.mark.generic @pytest.mark.generic
def test_master_single_dev(case_tester) -> None: # type: ignore def test_master_single_dev(case_tester) -> None: # type: ignore
@ -27,6 +26,7 @@ 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
@pytest.mark.supported_targets @pytest.mark.supported_targets
@pytest.mark.temp_skip_ci(targets=['esp32c6'], reason='no runner')
@pytest.mark.generic_multi_device @pytest.mark.generic_multi_device
@pytest.mark.parametrize('count', [2,], indirect=True) @pytest.mark.parametrize('count', [2,], indirect=True)
def test_master_multi_dev(case_tester) -> None: # type: ignore def test_master_multi_dev(case_tester) -> None: # type: ignore

View File

@ -5,7 +5,6 @@ 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.esp32c6
@pytest.mark.supported_targets @pytest.mark.supported_targets
@pytest.mark.generic @pytest.mark.generic
def test_slave_single_dev(case_tester) -> None: # type: ignore def test_slave_single_dev(case_tester) -> None: # type: ignore
@ -17,6 +16,7 @@ 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
@pytest.mark.supported_targets @pytest.mark.supported_targets
@pytest.mark.temp_skip_ci(targets=['esp32c6'], reason='no runner')
@pytest.mark.generic_multi_device @pytest.mark.generic_multi_device
@pytest.mark.parametrize('count', [2,], indirect=True) @pytest.mark.parametrize('count', [2,], indirect=True)
def test_slave_multi_dev(case_tester) -> None: # type: ignore def test_slave_multi_dev(case_tester) -> None: # type: ignore

View File

@ -589,7 +589,6 @@ TEST_CASE("test spi slave hd segment mode, master too long", "[spi][spi_slv_hd]"
#endif //#if (TEST_SPI_PERIPH_NUM >= 2) #endif //#if (TEST_SPI_PERIPH_NUM >= 2)
#if (TEST_SPI_PERIPH_NUM == 1) #if (TEST_SPI_PERIPH_NUM == 1)
//These tests are for chips which only have 1 SPI controller //These tests are for chips which only have 1 SPI controller
/******************************************************************************** /********************************************************************************

View File

@ -5,7 +5,6 @@ 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.esp32c6
@pytest.mark.supported_targets @pytest.mark.supported_targets
@pytest.mark.generic @pytest.mark.generic
def test_slave_hd_single_dev(case_tester) -> None: # type: ignore def test_slave_hd_single_dev(case_tester) -> None: # type: ignore
@ -17,6 +16,7 @@ def test_slave_hd_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
@pytest.mark.supported_targets @pytest.mark.supported_targets
@pytest.mark.temp_skip_ci(targets=['esp32c6'], reason='no runner')
@pytest.mark.generic_multi_device @pytest.mark.generic_multi_device
@pytest.mark.parametrize('count', [2,], indirect=True) @pytest.mark.parametrize('count', [2,], indirect=True)
def test_slave_hd_multi_dev(case_tester) -> None: # type: ignore def test_slave_hd_multi_dev(case_tester) -> None: # type: ignore

View File

@ -9,6 +9,7 @@ from pytest_embedded import Dut
@pytest.mark.esp32c3 @pytest.mark.esp32c3
@pytest.mark.esp32s3 @pytest.mark.esp32s3
@pytest.mark.esp32c2 @pytest.mark.esp32c2
@pytest.mark.esp32c6
@pytest.mark.generic @pytest.mark.generic
@pytest.mark.parametrize('config', [ @pytest.mark.parametrize('config', [
'release', 'release',

View File

@ -8,6 +8,7 @@ from pytest_embedded import Dut
@pytest.mark.esp32 @pytest.mark.esp32
@pytest.mark.esp32c2 @pytest.mark.esp32c2
@pytest.mark.esp32c3 @pytest.mark.esp32c3
@pytest.mark.esp32c6
@pytest.mark.generic @pytest.mark.generic
def test_efuse(dut: Dut) -> None: def test_efuse(dut: Dut) -> None:
dut.expect_exact('Press ENTER to see the list of tests') dut.expect_exact('Press ENTER to see the list of tests')

View File

@ -9,6 +9,7 @@ from pytest_embedded import Dut
@pytest.mark.esp32s3 @pytest.mark.esp32s3
@pytest.mark.esp32c2 @pytest.mark.esp32c2
@pytest.mark.esp32c3 @pytest.mark.esp32c3
@pytest.mark.esp32c6
@pytest.mark.generic @pytest.mark.generic
@pytest.mark.parametrize( @pytest.mark.parametrize(
'config', 'config',

View File

@ -347,7 +347,7 @@ TEST_CASE("Test starting 'External 32kHz XTAL' on the board without it.", "[test
#endif // !defined(CONFIG_IDF_CI_BUILD) || !CONFIG_SPIRAM_BANKSWITCH_ENABLE #endif // !defined(CONFIG_IDF_CI_BUILD) || !CONFIG_SPIRAM_BANKSWITCH_ENABLE
#endif // !TEMPORARY_DISABLED_FOR_TARGETS(ESP32S2, ESP32S3, ESP32C3) #endif // !TEMPORARY_DISABLED_FOR_TARGETS(...)
#if !TEMPORARY_DISABLED_FOR_TARGETS(ESP32C2) #if !TEMPORARY_DISABLED_FOR_TARGETS(ESP32C2)
//IDF-5060 //IDF-5060

View File

@ -33,5 +33,6 @@ def test_rtc_no_xtal32k(dut: Dut) -> None:
@pytest.mark.generic @pytest.mark.generic
@pytest.mark.supported_targets @pytest.mark.supported_targets
@pytest.mark.temp_skip_ci(targets=['esp32c6'], reason='c6 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

@ -1,11 +1,5 @@
# Documentation: .gitlab/ci/README.md#manifest-file-to-control-the-buildtest-apps # Documentation: .gitlab/ci/README.md#manifest-file-to-control-the-buildtest-apps
components/esp_lcd/test_apps/i2c_lcd:
disable:
- if: IDF_TARGET == "esp32c6"
temporary: true
reason: target esp32c6 is not supported yet
components/esp_lcd/test_apps/i80_lcd: components/esp_lcd/test_apps/i80_lcd:
disable: disable:
- if: SOC_LCD_I80_SUPPORTED != 1 - if: SOC_LCD_I80_SUPPORTED != 1
@ -13,9 +7,3 @@ components/esp_lcd/test_apps/i80_lcd:
components/esp_lcd/test_apps/rgb_lcd: components/esp_lcd/test_apps/rgb_lcd:
disable: disable:
- if: SOC_LCD_RGB_SUPPORTED != 1 - if: SOC_LCD_RGB_SUPPORTED != 1
components/esp_lcd/test_apps/spi_lcd:
disable:
- if: IDF_TARGET == "esp32c6"
temporary: true
reason: target esp32c6 is not supported yet

View File

@ -1,4 +1,4 @@
| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-S2 | ESP32-S3 | | Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C6 | ESP32-S2 | ESP32-S3 |
| ----------------- | ----- | -------- | -------- | -------- | -------- | | ----------------- | ----- | -------- | -------- | -------- | -------- | -------- |
This test app is used to test LCDs with I2C interface. This test app is used to test LCDs with I2C interface.

View File

@ -1,4 +1,4 @@
| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-S2 | ESP32-S3 | | Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C6 | ESP32-S2 | ESP32-S3 |
| ----------------- | ----- | -------- | -------- | -------- | -------- | | ----------------- | ----- | -------- | -------- | -------- | -------- | -------- |
This test app is used to test LCDs with SPI interface. This test app is used to test LCDs with SPI interface.

View File

@ -76,7 +76,7 @@ TEST_CASE("esp_netif: create and delete multiple netifs", "[esp_netif][leaks=0]"
} }
#if !TEMPORARY_DISABLED_FOR_TARGETS(ESP32C2) #if !TEMPORARY_DISABLED_FOR_TARGETS(ESP32C2, ESP32C6)
//IDF-5047 //IDF-5047
TEST_CASE("esp_netif: test dhcp client state transitions for wifi station", "[esp_netif]") TEST_CASE("esp_netif: test dhcp client state transitions for wifi station", "[esp_netif]")
@ -302,7 +302,7 @@ TEST_CASE("esp_netif: get/set hostname", "[esp_netif]")
esp_netif_destroy(esp_netif); esp_netif_destroy(esp_netif);
} }
#endif //!TEMPORARY_DISABLED_FOR_TARGETS(ESP32C2) #endif //!TEMPORARY_DISABLED_FOR_TARGETS(...)
TEST_CASE("esp_netif: convert ip address from string", "[esp_netif]") TEST_CASE("esp_netif: convert ip address from string", "[esp_netif]")
{ {
@ -328,7 +328,7 @@ TEST_CASE("esp_netif: convert ip address from string", "[esp_netif]")
TEST_ASSERT_EQUAL(ESP_ERR_INVALID_ARG, esp_netif_str_to_ip6(ipv6_src[0], NULL)); TEST_ASSERT_EQUAL(ESP_ERR_INVALID_ARG, esp_netif_str_to_ip6(ipv6_src[0], NULL));
} }
#if !TEMPORARY_DISABLED_FOR_TARGETS(ESP32C2) #if !TEMPORARY_DISABLED_FOR_TARGETS(ESP32C2, ESP32C6)
//IDF-5047 //IDF-5047
TEST_CASE("esp_netif: create and destroy default wifi interfaces", "[esp_netif][leaks=0]") TEST_CASE("esp_netif: create and destroy default wifi interfaces", "[esp_netif][leaks=0]")
{ {
@ -365,7 +365,7 @@ TEST_CASE("esp_netif: create and destroy default wifi interfaces", "[esp_netif][
} }
#endif //!TEMPORARY_DISABLED_FOR_TARGETS(ESP32C2) #endif //!TEMPORARY_DISABLED_FOR_TARGETS(...)
static esp_err_t dummy_transmit(void* hd, void *buf, size_t length) static esp_err_t dummy_transmit(void* hd, void *buf, size_t length)
{ {

View File

@ -14,7 +14,7 @@
#include "esp_private/wifi.h" #include "esp_private/wifi.h"
#if !TEMPORARY_DISABLED_FOR_TARGETS(ESP32C2) #if !TEMPORARY_DISABLED_FOR_TARGETS(ESP32C2, ESP32C6)
//IDF-5046 //IDF-5046
#include "esp_phy_init.h" #include "esp_phy_init.h"
@ -132,6 +132,6 @@ TEST_CASE("Test PHY/RTC functions called when cache is disabled", "[phy_rtc][cac
vSemaphoreDelete(semphr_done); vSemaphoreDelete(semphr_done);
} }
#endif //!TEMPORARY_DISABLED_FOR_TARGETS(ESP32S2) #endif //!TEMPORARY_DISABLED_FOR_TARGETS(ESP32S2, ESP32C3)
#endif //!TEMPORARY_DISABLED_FOR_TARGETS(ESP32C2) #endif //!TEMPORARY_DISABLED_FOR_TARGETS(...)

View File

@ -8,6 +8,7 @@ from pytest_embedded import Dut
@pytest.mark.esp32c3 @pytest.mark.esp32c3
@pytest.mark.esp32s2 @pytest.mark.esp32s2
@pytest.mark.esp32s3 @pytest.mark.esp32s3
@pytest.mark.esp32c6
@pytest.mark.generic @pytest.mark.generic
@pytest.mark.nightly_run @pytest.mark.nightly_run
def test_esp_rom(dut: Dut) -> None: def test_esp_rom(dut: Dut) -> None:

View File

@ -3,9 +3,15 @@
components/esp_system/host_test/esp_system: components/esp_system/host_test/esp_system:
enable: enable:
- if: IDF_TARGET == "linux" - if: IDF_TARGET == "linux"
components/esp_system/test_apps/rtc_8md256: components/esp_system/test_apps/rtc_8md256:
disable: disable:
- if: SOC_RTC_SLOW_CLK_SUPPORT_RC_FAST_D256 != 1 - if: SOC_RTC_SLOW_CLK_SUPPORT_RC_FAST_D256 != 1
disable_test:
- if: IDF_TARGET == "esp32c2"
temporary: true
reason: target esp32c2 is not supported yet IDF-5131
components/esp_system/test_apps/rtc_power_modes: components/esp_system/test_apps/rtc_power_modes:
enable: enable:
- if: IDF_TARGET == "esp32s3" - if: IDF_TARGET == "esp32s3"

View File

@ -60,7 +60,7 @@ TEST_CASE("reset reason ESP_RST_POWERON", "[reset][ignore]")
} }
#if !TEMPORARY_DISABLED_FOR_TARGETS(ESP32C2) #if !TEMPORARY_DISABLED_FOR_TARGETS(ESP32C2, ESP32C6)
//IDF-5059 //IDF-5059
static __NOINIT_ATTR uint32_t s_noinit_val; static __NOINIT_ATTR uint32_t s_noinit_val;
static RTC_NOINIT_ATTR uint32_t s_rtc_noinit_val; static RTC_NOINIT_ATTR uint32_t s_rtc_noinit_val;
@ -305,7 +305,7 @@ TEST_CASE_MULTIPLE_STAGES("reset reason ESP_RST_BROWNOUT after brownout event",
do_brownout, do_brownout,
check_reset_reason_brownout); check_reset_reason_brownout);
#endif //!TEMPORARY_DISABLED_FOR_TARGETS(ESP32C2) #endif //!TEMPORARY_DISABLED_FOR_TARGETS(...)
#ifdef CONFIG_SPIRAM_ALLOW_STACK_EXTERNAL_MEMORY #ifdef CONFIG_SPIRAM_ALLOW_STACK_EXTERNAL_MEMORY

View File

@ -34,6 +34,7 @@
__attribute__((unused)) static struct timeval tv_start, tv_stop; __attribute__((unused)) static struct timeval tv_start, tv_stop;
#if !TEMPORARY_DISABLED_FOR_TARGETS(ESP32C6)
#ifndef CONFIG_FREERTOS_UNICORE #ifndef CONFIG_FREERTOS_UNICORE
static void deep_sleep_task(void *arg) static void deep_sleep_task(void *arg)
{ {
@ -590,3 +591,4 @@ TEST_CASE("wake up using GPIO (2 or 4 low)", "[deepsleep][ignore]")
} }
#endif // SOC_GPIO_SUPPORT_DEEPSLEEP_WAKEUP #endif // SOC_GPIO_SUPPORT_DEEPSLEEP_WAKEUP
#endif //!TEMPORARY_DISABLED_FOR_TARGETS(ESP32C2) #endif //!TEMPORARY_DISABLED_FOR_TARGETS(ESP32C2)
#endif //!TEMPORARY_DISABLED_FOR_TARGETS(ESP32C6) TODO: IDF-5348, IDF-5349

View File

@ -23,6 +23,7 @@ void esp_task_wdt_isr_user_handler(void)
timeout_flag = true; timeout_flag = true;
} }
#if !TEMPORARY_DISABLED_FOR_TARGETS(ESP32C6)
TEST_CASE("Task WDT task timeout", "[task_wdt]") TEST_CASE("Task WDT task timeout", "[task_wdt]")
{ {
timeout_flag = false; timeout_flag = false;
@ -93,6 +94,7 @@ TEST_CASE("Task WDT can be reconfigured", "[task_wdt]")
TEST_ASSERT_EQUAL(ESP_OK, esp_task_wdt_delete(NULL)); TEST_ASSERT_EQUAL(ESP_OK, esp_task_wdt_delete(NULL));
TEST_ASSERT_EQUAL(ESP_OK, esp_task_wdt_deinit()); TEST_ASSERT_EQUAL(ESP_OK, esp_task_wdt_deinit());
} }
#endif //!TEMPORARY_DISABLED_FOR_TARGETS(ESP32C6)
TEST_CASE("Task WDT task feed", "[task_wdt]") TEST_CASE("Task WDT task feed", "[task_wdt]")
{ {
@ -113,6 +115,7 @@ TEST_CASE("Task WDT task feed", "[task_wdt]")
TEST_ASSERT_EQUAL(ESP_OK, esp_task_wdt_deinit()); TEST_ASSERT_EQUAL(ESP_OK, esp_task_wdt_deinit());
} }
#if !TEMPORARY_DISABLED_FOR_TARGETS(ESP32C6)
TEST_CASE("Task WDT user timeout", "[task_wdt]") TEST_CASE("Task WDT user timeout", "[task_wdt]")
{ {
const char *user_name = "test_user"; const char *user_name = "test_user";
@ -131,6 +134,7 @@ TEST_CASE("Task WDT user timeout", "[task_wdt]")
TEST_ASSERT_EQUAL(ESP_OK, esp_task_wdt_delete_user(user_handle)); TEST_ASSERT_EQUAL(ESP_OK, esp_task_wdt_delete_user(user_handle));
TEST_ASSERT_EQUAL(ESP_OK, esp_task_wdt_deinit()); TEST_ASSERT_EQUAL(ESP_OK, esp_task_wdt_deinit());
} }
#endif //!TEMPORARY_DISABLED_FOR_TARGETS(ESP32C6)
TEST_CASE("Task WDT user feed", "[task_wdt]") TEST_CASE("Task WDT user feed", "[task_wdt]")
{ {

View File

@ -48,7 +48,10 @@ def lightsleep_test(dut: Dut, case_name: str) -> None:
dut.expect(r'Returned from light sleep, reason: timer', timeout=10) dut.expect(r'Returned from light sleep, reason: timer', timeout=10)
@pytest.mark.supported_targets @pytest.mark.esp32
@pytest.mark.esp32s2
@pytest.mark.esp32s3
@pytest.mark.esp32c3
@pytest.mark.generic @pytest.mark.generic
def test_rtc_8md256_lightsleep(dut: Dut) -> None: def test_rtc_8md256_lightsleep(dut: Dut) -> None:
lightsleep_test(dut, '"Can use 8MD256 as RTC clock source in lightsleep"') lightsleep_test(dut, '"Can use 8MD256 as RTC clock source in lightsleep"')

View File

@ -5,8 +5,8 @@ import pytest
from pytest_embedded import Dut from pytest_embedded import Dut
CONFIGS = [ CONFIGS = [
pytest.param('general', marks=[pytest.mark.supported_targets]), pytest.param('general', marks=[pytest.mark.supported_targets, pytest.mark.temp_skip_ci(targets=['esp32c6'], reason='c6 support TBD')]),
pytest.param('release', marks=[pytest.mark.supported_targets]), pytest.param('release', marks=[pytest.mark.supported_targets, pytest.mark.temp_skip_ci(targets=['esp32c6'], reason='c6 support TBD')]),
pytest.param('single_core', marks=[pytest.mark.esp32]), pytest.param('single_core', marks=[pytest.mark.esp32]),
pytest.param('freertos_compliance', marks=[pytest.mark.esp32]), pytest.param('freertos_compliance', marks=[pytest.mark.esp32]),
pytest.param('isr_dispatch_esp32', marks=[pytest.mark.esp32]), pytest.param('isr_dispatch_esp32', marks=[pytest.mark.esp32]),

View File

@ -6,6 +6,7 @@ from pytest_embedded import Dut
@pytest.mark.supported_targets @pytest.mark.supported_targets
@pytest.mark.temp_skip_ci(targets=['esp32c6'], reason='c6 support TBD')
@pytest.mark.generic @pytest.mark.generic
def test_wifi_unit_test(dut: Dut) -> None: def test_wifi_unit_test(dut: Dut) -> None:
dut.expect_exact('Press ENTER to see the list of tests') dut.expect_exact('Press ENTER to see the list of tests')

View File

@ -5,12 +5,12 @@ import pytest
from pytest_embedded import Dut from pytest_embedded import Dut
CONFIGS = [ CONFIGS = [
pytest.param('default', marks=[pytest.mark.supported_targets]), pytest.param('default', marks=[pytest.mark.supported_targets, pytest.mark.temp_skip_ci(targets=['esp32c6'], reason='test failed')]),
pytest.param('freertos_options', marks=[pytest.mark.supported_targets]), pytest.param('freertos_options', marks=[pytest.mark.supported_targets, pytest.mark.temp_skip_ci(targets=['esp32c6'], reason='test failed')]),
pytest.param('psram', marks=[pytest.mark.esp32]), pytest.param('psram', marks=[pytest.mark.esp32]),
pytest.param('release', marks=[pytest.mark.supported_targets]), pytest.param('release', marks=[pytest.mark.supported_targets]),
pytest.param('single_core', marks=[pytest.mark.esp32]), pytest.param('single_core', marks=[pytest.mark.esp32]),
pytest.param('smp', marks=[pytest.mark.supported_targets]), pytest.param('smp', marks=[pytest.mark.supported_targets, pytest.mark.temp_skip_ci(targets=['esp32c6'], reason='test failed')]),
] ]

View File

@ -10,7 +10,7 @@
// LL still not implemented // LL still not implemented
#if !TEMPORARY_DISABLED_FOR_TARGETS(ESP32C3) #if !TEMPORARY_DISABLED_FOR_TARGETS(ESP32C3)
#if !TEMPORARY_DISABLED_FOR_TARGETS(ESP32C2) #if !TEMPORARY_DISABLED_FOR_TARGETS(ESP32C2, ESP32C6)
//IDF-5058 //IDF-5058
volatile static int RTC_NOINIT_ATTR access = 0; volatile static int RTC_NOINIT_ATTR access = 0;
@ -49,5 +49,5 @@ TEST_CASE_MULTIPLE_STAGES("Can set illegal access regions", "[soc][mpu]",
trigger_illegal_access, trigger_illegal_access,
check_access); check_access);
#endif //!TEMPORARY_DISABLED_FOR_TARGETS(ESP32C2) #endif //!TEMPORARY_DISABLED_FOR_TARGETS(...)
#endif //!TEMPORARY_DISABLED_FOR_TARGETS(ESP32C3) #endif //!TEMPORARY_DISABLED_FOR_TARGETS(ESP32C3)

View File

@ -0,0 +1,7 @@
# Documentation: .gitlab/ci/README.md#manifest-file-to-control-the-buildtest-apps
components/heap/test_apps:
disable_test:
- if: IDF_TARGET == "esp32c6"
temporary: true
reason: target esp32c6 is not supported yet

View File

@ -7,6 +7,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=['esp32c6'], reason='test failed')
@pytest.mark.parametrize( @pytest.mark.parametrize(
'config', 'config',
[ [

View File

@ -0,0 +1,7 @@
# Documentation: .gitlab/ci/README.md#manifest-file-to-control-the-buildtest-apps
components/mbedtls/test_apps:
disable_test:
- if: IDF_TARGET == "esp32c6"
temporary: true
reason: target esp32c6 is not supported yet

View File

@ -6,6 +6,7 @@ from pytest_embedded import Dut
@pytest.mark.supported_targets @pytest.mark.supported_targets
@pytest.mark.temp_skip_ci(targets=['esp32c6'], reason='test failed')
@pytest.mark.generic @pytest.mark.generic
def test_mbedtls(dut: Dut) -> None: def test_mbedtls(dut: Dut) -> None:
dut.expect_exact('Press ENTER to see the list of tests') dut.expect_exact('Press ENTER to see the list of tests')

View File

@ -19,6 +19,7 @@
#include "esp_mac.h" #include "esp_mac.h"
#include "esp_partition.h" #include "esp_partition.h"
#if !TEMPORARY_DISABLED_FOR_TARGETS(ESP32C6)
static esp_mqtt5_user_property_item_t user_property_arr[3] = { static esp_mqtt5_user_property_item_t user_property_arr[3] = {
{"board", "esp32"}, {"board", "esp32"},
{"u", "user"}, {"u", "user"},
@ -150,3 +151,4 @@ TEST_CASE("mqtt5 broker tests", "[mqtt5][test_env=UT_T2_Ethernet]")
connect_test_fixture_teardown(); connect_test_fixture_teardown();
} }
#endif // SOC_EMAC_SUPPORTED #endif // SOC_EMAC_SUPPORTED
#endif //!TEMPORARY_DISABLED_FOR_TARGETS(ESP32C6)

View File

@ -122,6 +122,7 @@ TEST_CASE("test asctime", "[newlib]")
TEST_ASSERT_EQUAL_STRING(buf, time_str); TEST_ASSERT_EQUAL_STRING(buf, time_str);
} }
#if !TEMPORARY_DISABLED_FOR_TARGETS(ESP32C6)
static bool fn_in_rom(void *fn) static bool fn_in_rom(void *fn)
{ {
const int fnaddr = (int)fn; const int fnaddr = (int)fn;
@ -157,6 +158,7 @@ TEST_CASE("check if ROM or Flash is used for functions", "[newlib]")
TEST_ASSERT_FALSE(fn_in_rom(strtol)); TEST_ASSERT_FALSE(fn_in_rom(strtol));
#endif // defined(CONFIG_IDF_TARGET_ESP32) && !defined(CONFIG_SPIRAM) #endif // defined(CONFIG_IDF_TARGET_ESP32) && !defined(CONFIG_SPIRAM)
} }
#endif //!TEMPORARY_DISABLED_FOR_TARGETS(ESP32C6)
#ifndef CONFIG_NEWLIB_NANO_FORMAT #ifndef CONFIG_NEWLIB_NANO_FORMAT
TEST_CASE("test 64bit int formats", "[newlib]") TEST_CASE("test 64bit int formats", "[newlib]")

View File

@ -14,7 +14,6 @@
#include "freertos/semphr.h" #include "freertos/semphr.h"
#include "sdkconfig.h" #include "sdkconfig.h"
#include "soc/rtc.h" #include "soc/rtc.h"
#include "soc/rtc_cntl_reg.h"
#include "esp_system.h" #include "esp_system.h"
#include "test_utils.h" #include "test_utils.h"
#include "esp_log.h" #include "esp_log.h"
@ -45,6 +44,7 @@
#endif #endif
#if portNUM_PROCESSORS == 2 #if portNUM_PROCESSORS == 2
#include "soc/rtc_cntl_reg.h"
// This runs on APP CPU: // This runs on APP CPU:
static void time_adc_test_task(void* arg) static void time_adc_test_task(void* arg)

View File

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

View File

@ -31,8 +31,8 @@
// Currently no runners for S3 // Currently no runners for S3
#define WITH_SD_TEST (SOC_SDMMC_HOST_SUPPORTED && !TEMPORARY_DISABLED_FOR_TARGETS(ESP32S3)) #define WITH_SD_TEST (SOC_SDMMC_HOST_SUPPORTED && !TEMPORARY_DISABLED_FOR_TARGETS(ESP32S3))
// Currently, no runners for S3 and C2 // Currently, no runners for S3, C2, and C6
#define WITH_SDSPI_TEST (!TEMPORARY_DISABLED_FOR_TARGETS(ESP32S3, ESP32C2)) #define WITH_SDSPI_TEST (!TEMPORARY_DISABLED_FOR_TARGETS(ESP32S3, ESP32C2, ESP32C6))
// Can't test eMMC (slot 0) and PSRAM together // Can't test eMMC (slot 0) and PSRAM together
#define WITH_EMMC_TEST (SOC_SDMMC_HOST_SUPPORTED && !CONFIG_SPIRAM && !TEMPORARY_DISABLED_FOR_TARGETS(ESP32S3)) #define WITH_EMMC_TEST (SOC_SDMMC_HOST_SUPPORTED && !CONFIG_SPIRAM && !TEMPORARY_DISABLED_FOR_TARGETS(ESP32S3))

View File

@ -8,7 +8,7 @@ components/spi_flash/test_apps/esp_flash:
components/spi_flash/test_apps/flash_encryption: components/spi_flash/test_apps/flash_encryption:
disable_test: disable_test:
- if: IDF_TARGET in ["esp32c2", "esp32s2"] - if: IDF_TARGET in ["esp32c2", "esp32s2", "esp32c6"]
temporary: true temporary: true
reason: No runners # IDF-5634 reason: No runners # IDF-5634

View File

@ -19,6 +19,7 @@
#include "esp_private/cache_utils.h" #include "esp_private/cache_utils.h"
#if !TEMPORARY_DISABLED_FOR_TARGETS(ESP32C6)
static QueueHandle_t result_queue; static QueueHandle_t result_queue;
static IRAM_ATTR void cache_test_task(void *arg) static IRAM_ATTR void cache_test_task(void *arg)
@ -106,3 +107,4 @@ TEST_CASE("invalid access to cache raises panic (APP CPU)", "[spi_flash][reset="
#endif // !CONFIG_FREERTOS_UNICORE #endif // !CONFIG_FREERTOS_UNICORE
#endif // !TEMPORARY_DISABLED_FOR_TARGETS(ESP32S2) #endif // !TEMPORARY_DISABLED_FOR_TARGETS(ESP32S2)
#endif //!TEMPORARY_DISABLED_FOR_TARGETS(ESP32C6)

View File

@ -144,6 +144,7 @@ TEST_CASE("Test spi_flash_read", "[spi_flash][esp_flash]")
extern void spi_common_set_dummy_output(esp_rom_spiflash_read_mode_t mode); extern void spi_common_set_dummy_output(esp_rom_spiflash_read_mode_t mode);
extern void spi_dummy_len_fix(uint8_t spi, uint8_t freqdiv); extern void spi_dummy_len_fix(uint8_t spi, uint8_t freqdiv);
#if !TEMPORARY_DISABLED_FOR_TARGETS(ESP32C6)
static void IRAM_ATTR fix_rom_func(void) static void IRAM_ATTR fix_rom_func(void)
{ {
uint32_t freqdiv = 0; uint32_t freqdiv = 0;
@ -304,6 +305,7 @@ TEST_CASE("Test esp_flash_write", "[spi_flash][esp_flash]")
ESP_ERROR_CHECK(esp_flash_write(NULL, (char *) 0x40080000, start, 16)); ESP_ERROR_CHECK(esp_flash_write(NULL, (char *) 0x40080000, start, 16));
#endif #endif
} }
#endif //!TEMPORARY_DISABLED_FOR_TARGETS(ESP32C6)
#ifdef CONFIG_SPIRAM #ifdef CONFIG_SPIRAM

View File

@ -6,6 +6,7 @@ from pytest_embedded import Dut
@pytest.mark.supported_targets @pytest.mark.supported_targets
@pytest.mark.temp_skip_ci(targets=['esp32c6'], reason='c6 support TBD')
@pytest.mark.generic @pytest.mark.generic
@pytest.mark.parametrize( @pytest.mark.parametrize(
'config', 'config',

View File

@ -16,7 +16,7 @@
#include "freertos/task.h" #include "freertos/task.h"
#include "freertos/semphr.h" #include "freertos/semphr.h"
#include "driver/uart.h" #include "driver/uart.h"
#include "soc/uart_struct.h" #include "hal/uart_ll.h"
#include "esp_vfs_dev.h" #include "esp_vfs_dev.h"
#include "esp_vfs.h" #include "esp_vfs.h"
#include "test_utils.h" #include "test_utils.h"
@ -25,12 +25,12 @@
static void fwrite_str_loopback(const char* str, size_t size) static void fwrite_str_loopback(const char* str, size_t size)
{ {
esp_rom_uart_tx_wait_idle(CONFIG_ESP_CONSOLE_UART_NUM); esp_rom_uart_tx_wait_idle(CONFIG_ESP_CONSOLE_UART_NUM);
UART0.conf0.loopback = 1; uart_ll_set_loop_back(&UART0, 1);
fwrite(str, 1, size, stdout); fwrite(str, 1, size, stdout);
fflush(stdout); fflush(stdout);
esp_rom_uart_tx_wait_idle(CONFIG_ESP_CONSOLE_UART_NUM); esp_rom_uart_tx_wait_idle(CONFIG_ESP_CONSOLE_UART_NUM);
vTaskDelay(2 / portTICK_PERIOD_MS); vTaskDelay(2 / portTICK_PERIOD_MS);
UART0.conf0.loopback = 0; uart_ll_set_loop_back(&UART0, 0);
} }
static void flush_stdin_stdout(void) static void flush_stdin_stdout(void)

View File

@ -317,6 +317,7 @@ TEST_CASE("Test crypto lib bignum apis", "[wpa_crypto]")
#endif /* bits in mbedtls_mpi_uint */ #endif /* bits in mbedtls_mpi_uint */
#if !TEMPORARY_DISABLED_FOR_TARGETS(ESP32C6)
/* /*
* Create an MPI from embedded constants * Create an MPI from embedded constants
* (assumes len is an exact multiple of sizeof mbedtls_mpi_uint) * (assumes len is an exact multiple of sizeof mbedtls_mpi_uint)
@ -540,4 +541,5 @@ TEST_CASE("Test crypto lib ECC apis", "[wpa_crypto]")
} }
} }
#endif //!TEMPORARY_DISABLED_FOR_TARGETS(ESP32C6)
#endif //!TEMPORARY_DISABLED_FOR_TARGETS(ESP32C2) #endif //!TEMPORARY_DISABLED_FOR_TARGETS(ESP32C2)

View File

@ -18,6 +18,7 @@
#include "memory_checks.h" #include "memory_checks.h"
#include <time.h> #include <time.h>
#if !TEMPORARY_DISABLED_FOR_TARGETS(ESP32C6)
uint32_t timeouts_usec[6] = { 10000, 1000, 10000, 5000, 15000, 1000 }; uint32_t timeouts_usec[6] = { 10000, 1000, 10000, 5000, 15000, 1000 };
uint32_t timeouts_sec[6] = { 10, 1, 10, 5, 15, 1 }; uint32_t timeouts_sec[6] = { 10, 1, 10, 5, 15, 1 };
int executed_order[6]; int executed_order[6];
@ -82,3 +83,4 @@ TEST_CASE("Test eloop timers run", "[eloop]")
TEST_ESP_OK(esp_wifi_deinit()); TEST_ESP_OK(esp_wifi_deinit());
os_sleep(3, 0); os_sleep(3, 0);
} }
#endif //!TEMPORARY_DISABLED_FOR_TARGETS(ESP32C6)

View File

@ -32,7 +32,7 @@
#define TEST_LISTEN_CHANNEL 6 #define TEST_LISTEN_CHANNEL 6
/* No runners */ /* No runners */
#if !TEMPORARY_DISABLED_FOR_TARGETS(ESP32S2, ESP32S3, ESP32C3, ESP32C2) #if !TEMPORARY_DISABLED_FOR_TARGETS(ESP32S2, ESP32S3, ESP32C3, ESP32C2, ESP32C6)
//IDF-5046 //IDF-5046
static const char *TAG = "test_offchan"; static const char *TAG = "test_offchan";
esp_netif_t *wifi_netif; esp_netif_t *wifi_netif;
@ -242,4 +242,4 @@ static void test_wifi_roc(void)
TEST_CASE_MULTIPLE_DEVICES("test ROC and Offchannel Action Frame Tx", "[Offchan][test_env=UT_T2_1][timeout=90]", test_wifi_roc, test_wifi_offchan_tx); TEST_CASE_MULTIPLE_DEVICES("test ROC and Offchannel Action Frame Tx", "[Offchan][test_env=UT_T2_1][timeout=90]", test_wifi_roc, test_wifi_offchan_tx);
#endif //!TEMPORARY_DISABLED_FOR_TARGETS(ESP32S2, ESP32S3, ESP32C3) #endif //!TEMPORARY_DISABLED_FOR_TARGETS(...)

View File

@ -47,8 +47,8 @@ except ImportError:
import common_test_methods # noqa: F401 import common_test_methods # noqa: F401
SUPPORTED_TARGETS = ['esp32', 'esp32s2', 'esp32c3', 'esp32s3', 'esp32c2'] SUPPORTED_TARGETS = ['esp32', 'esp32s2', 'esp32c3', 'esp32s3', 'esp32c2', 'esp32c6']
PREVIEW_TARGETS = ['esp32h4', 'esp32c6'] # this PREVIEW_TARGETS excludes 'linux' target PREVIEW_TARGETS = ['esp32h4'] # this PREVIEW_TARGETS excludes 'linux' target
DEFAULT_SDKCONFIG = 'default' DEFAULT_SDKCONFIG = 'default'

View File

@ -2,7 +2,7 @@
examples/build_system/cmake/import_lib: examples/build_system/cmake/import_lib:
disable_test: disable_test:
- if: IDF_TARGET in ["esp32c2", "esp32c3", "esp32s2", "esp32s3"] - if: IDF_TARGET in ["esp32c2", "esp32c3", "esp32s2", "esp32s3", "esp32c6"]
temporary: true temporary: true
reason: lack of runners reason: lack of runners

View File

@ -43,6 +43,10 @@ examples/peripherals/i2s/i2s_adc_dac:
examples/peripherals/i2s/i2s_basic/i2s_pdm: examples/peripherals/i2s/i2s_basic/i2s_pdm:
disable: disable:
- if: SOC_I2S_SUPPORTS_PDM != 1 - if: SOC_I2S_SUPPORTS_PDM != 1
disable_test:
- if: IDF_TARGET == "esp32c6"
temporary: true
reason: target esp32c6 is not supported yet
examples/peripherals/i2s/i2s_basic/i2s_std: examples/peripherals/i2s/i2s_basic/i2s_std:
disable: disable:
@ -149,6 +153,10 @@ examples/peripherals/rmt/onewire_ds18b20:
examples/peripherals/rmt/stepper_motor: examples/peripherals/rmt/stepper_motor:
disable: disable:
- if: SOC_RMT_SUPPORT_TX_LOOP_AUTO_STOP != 1 - if: SOC_RMT_SUPPORT_TX_LOOP_AUTO_STOP != 1
disable_test:
- if: IDF_TARGET == "esp32c6"
temporary: true
reason: target esp32c6 is not supported yet
examples/peripherals/sdio/host: examples/peripherals/sdio/host:
enable: enable:
@ -197,6 +205,12 @@ examples/peripherals/timer_group/gptimer_capture_hc_sr04:
disable: disable:
- if: SOC_TIMER_SUPPORT_ETM != 1 - if: SOC_TIMER_SUPPORT_ETM != 1
examples/peripherals/timer_group/legacy_driver:
disable_test:
- if: IDF_TARGET == "esp32c6"
temporary: true
reason: target esp32c6 is not supported yet
examples/peripherals/touch_sensor: examples/peripherals/touch_sensor:
disable: disable:
- if: SOC_TOUCH_SENSOR_SUPPORTED != 1 - if: SOC_TOUCH_SENSOR_SUPPORTED != 1

View File

@ -8,7 +8,6 @@ from pytest_embedded import Dut
@pytest.mark.esp32 @pytest.mark.esp32
@pytest.mark.esp32s3 @pytest.mark.esp32s3
@pytest.mark.esp32c3 @pytest.mark.esp32c3
@pytest.mark.esp32c6
@pytest.mark.generic @pytest.mark.generic
@pytest.mark.parametrize( @pytest.mark.parametrize(
'config', 'config',

View File

@ -7,6 +7,7 @@ from pytest_embedded import Dut
@pytest.mark.esp32 @pytest.mark.esp32
@pytest.mark.esp32s3 @pytest.mark.esp32s3
@pytest.mark.esp32c6
@pytest.mark.generic @pytest.mark.generic
def test_hc_sr04_example(dut: Dut) -> None: def test_hc_sr04_example(dut: Dut) -> None:
dut.expect_exact('example: Install capture timer') dut.expect_exact('example: Install capture timer')

View File

@ -7,6 +7,7 @@ from pytest_embedded import Dut
@pytest.mark.esp32 @pytest.mark.esp32
@pytest.mark.esp32s3 @pytest.mark.esp32s3
@pytest.mark.esp32c6
@pytest.mark.generic @pytest.mark.generic
def test_servo_mg996r_example(dut: Dut) -> None: def test_servo_mg996r_example(dut: Dut) -> None:
dut.expect_exact('example: Create timer and operator') dut.expect_exact('example: Create timer and operator')

View File

@ -7,6 +7,7 @@ from pytest_embedded import Dut
@pytest.mark.esp32 @pytest.mark.esp32
@pytest.mark.esp32s3 @pytest.mark.esp32s3
@pytest.mark.esp32c6
@pytest.mark.generic @pytest.mark.generic
@pytest.mark.parametrize('config', [ @pytest.mark.parametrize('config', [
pytest.param('gpio', marks=[pytest.mark.esp32, pytest.mark.esp32s3]), pytest.param('gpio', marks=[pytest.mark.esp32, pytest.mark.esp32s3]),

View File

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

View File

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

View File

@ -8,6 +8,7 @@ from pytest_embedded import Dut
@pytest.mark.esp32s2 @pytest.mark.esp32s2
@pytest.mark.esp32s3 @pytest.mark.esp32s3
@pytest.mark.esp32c3 @pytest.mark.esp32c3
@pytest.mark.esp32c6
# @pytest.mark.esp32h4 TODO: uncomment this when remove --preview for h4 # @pytest.mark.esp32h4 TODO: uncomment this when remove --preview for h4
@pytest.mark.generic @pytest.mark.generic
def test_musical_buzzer_example(dut: Dut) -> None: def test_musical_buzzer_example(dut: Dut) -> None:

View File

@ -8,6 +8,7 @@ from pytest_embedded import Dut
@pytest.mark.esp32s2 @pytest.mark.esp32s2
@pytest.mark.esp32s3 @pytest.mark.esp32s3
@pytest.mark.esp32c3 @pytest.mark.esp32c3
@pytest.mark.esp32c6
@pytest.mark.generic @pytest.mark.generic
def test_onewire_ds18b20_example(dut: Dut) -> None: def test_onewire_ds18b20_example(dut: Dut) -> None:
dut.expect_exact('onewire_rmt: RMT Tx channel created for 1-wire bus') dut.expect_exact('onewire_rmt: RMT Tx channel created for 1-wire bus')

View File

@ -7,7 +7,7 @@ from pytest_embedded import Dut
@pytest.mark.esp32s3 @pytest.mark.esp32s3
@pytest.mark.generic @pytest.mark.generic
def test_ir_nec_example(dut: Dut) -> None: def test_stepper_motor_example(dut: Dut) -> None:
dut.expect_exact('example: Initialize EN + DIR GPIO') dut.expect_exact('example: Initialize EN + DIR GPIO')
dut.expect_exact('example: Create RMT TX channel') dut.expect_exact('example: Create RMT TX channel')
dut.expect_exact('example: Set spin direction') dut.expect_exact('example: Set spin direction')

View File

@ -9,6 +9,7 @@ from pytest_embedded import Dut
@pytest.mark.esp32s2 @pytest.mark.esp32s2
@pytest.mark.esp32s3 @pytest.mark.esp32s3
@pytest.mark.esp32c3 @pytest.mark.esp32c3
@pytest.mark.esp32c6
@pytest.mark.generic @pytest.mark.generic
def test_sdm_example(dut: Dut) -> None: def test_sdm_example(dut: Dut) -> None:
dut.expect_exact('example: Install sigma delta channel') dut.expect_exact('example: Install sigma delta channel')

View File

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

View File

@ -6,6 +6,7 @@ from pytest_embedded import Dut
@pytest.mark.supported_targets @pytest.mark.supported_targets
@pytest.mark.temp_skip_ci(targets=['esp32c6'], reason='test failed')
@pytest.mark.generic @pytest.mark.generic
def test_timer_group_example(dut: Dut) -> None: def test_timer_group_example(dut: Dut) -> None:
dut.expect(r'Init timer with auto-reload', timeout=5) dut.expect(r'Init timer with auto-reload', timeout=5)

View File

@ -57,7 +57,15 @@ def test_examples_protocol_esp_http_client(dut: Dut) -> None:
dut.expect('Finish http example') dut.expect('Finish http example')
@pytest.mark.parametrize('config', [pytest.param('ssldyn', marks=[pytest.mark.supported_targets, pytest.mark.ethernet]),], indirect=True) @pytest.mark.parametrize(
'config',
[
pytest.param('ssldyn', marks=[pytest.mark.supported_targets,
pytest.mark.temp_skip_ci(targets=['esp32c6'], reason='c6 support TBD'),
pytest.mark.ethernet]),
],
indirect=True
)
def test_examples_protocol_esp_http_client_dynamic_buffer(dut: Dut) -> None: def test_examples_protocol_esp_http_client_dynamic_buffer(dut: Dut) -> None:
# test mbedtls dynamic resource # test mbedtls dynamic resource
# check and log bin size # check and log bin size

View File

@ -40,6 +40,7 @@ class CustomProcess(object):
@pytest.mark.supported_targets @pytest.mark.supported_targets
@pytest.mark.temp_skip_ci(targets=['esp32c6'], reason='c6 support TBD')
@pytest.mark.wifi_router @pytest.mark.wifi_router
def test_examples_esp_local_ctrl(dut: Dut) -> None: def test_examples_esp_local_ctrl(dut: Dut) -> None:

View File

@ -154,6 +154,7 @@ def test_examples_protocol_https_request_dynamic_buffers(dut: Dut) -> None:
@pytest.mark.supported_targets @pytest.mark.supported_targets
@pytest.mark.temp_skip_ci(targets=['esp32c6'], reason='c6 support TBD')
@pytest.mark.ethernet @pytest.mark.ethernet
@pytest.mark.parametrize('erase_nvs', ['y'], indirect=True) @pytest.mark.parametrize('erase_nvs', ['y'], indirect=True)
def test_examples_protocol_https_request(dut: Dut) -> None: def test_examples_protocol_https_request(dut: Dut) -> None:

View File

@ -6,6 +6,6 @@ examples/security/flash_encryption:
temporary: true temporary: true
reason: target esp32c2 is not supported yet reason: target esp32c2 is not supported yet
disable_test: disable_test:
- if: IDF_TARGET in ["esp32s2", "esp32s3"] - if: IDF_TARGET in ["esp32s2", "esp32s3", "esp32c6"]
temporary: true temporary: true
reason: lack of runners reason: lack of runners

View File

@ -22,7 +22,7 @@ examples/storage/fatfsgen:
temporary: true temporary: true
reason: target esp32c2 is not supported yet reason: target esp32c2 is not supported yet
disable_test: disable_test:
- if: IDF_TARGET in ["esp32c3", "esp32s2", "esp32s3"] - if: IDF_TARGET in ["esp32c3", "esp32s2", "esp32s3", "esp32c6"]
temporary: true temporary: true
reason: lack of runners reason: lack of runners
@ -32,7 +32,7 @@ examples/storage/nvs_rw_blob:
temporary: true temporary: true
reason: target esp32c2 is not supported yet reason: target esp32c2 is not supported yet
disable_test: disable_test:
- if: IDF_TARGET in ["esp32s2", "esp32s3"] - if: IDF_TARGET in ["esp32s2", "esp32s3", "esp32c6"]
temporary: true temporary: true
reason: lack of runners reason: lack of runners
@ -42,7 +42,7 @@ examples/storage/nvs_rw_value:
temporary: true temporary: true
reason: target esp32c2 is not supported yet reason: target esp32c2 is not supported yet
disable_test: disable_test:
- if: IDF_TARGET in ["esp32s2", "esp32s3"] - if: IDF_TARGET in ["esp32s2", "esp32s3", "esp32c6"]
temporary: true temporary: true
reason: lack of runners reason: lack of runners
@ -52,7 +52,7 @@ examples/storage/nvs_rw_value_cxx:
temporary: true temporary: true
reason: target esp32c2 is not supported yet reason: target esp32c2 is not supported yet
disable_test: disable_test:
- if: IDF_TARGET in ["esp32s2", "esp32s3"] - if: IDF_TARGET in ["esp32s2", "esp32s3", "esp32c6"]
temporary: true temporary: true
reason: lack of runners reason: lack of runners
@ -62,7 +62,7 @@ examples/storage/partition_api/partition_find:
temporary: true temporary: true
reason: target esp32c2 is not supported yet reason: target esp32c2 is not supported yet
disable_test: disable_test:
- if: IDF_TARGET in ["esp32s2", "esp32s3"] - if: IDF_TARGET in ["esp32s2", "esp32s3", "esp32c6"]
temporary: true temporary: true
reason: lack of runners reason: lack of runners
@ -72,7 +72,7 @@ examples/storage/partition_api/partition_mmap:
temporary: true temporary: true
reason: target esp32c2 is not supported yet reason: target esp32c2 is not supported yet
disable_test: disable_test:
- if: IDF_TARGET in ["esp32s2", "esp32s3"] - if: IDF_TARGET in ["esp32s2", "esp32s3", "esp32c6"]
temporary: true temporary: true
reason: lack of runners reason: lack of runners
@ -82,7 +82,7 @@ examples/storage/partition_api/partition_ops:
temporary: true temporary: true
reason: target esp32c2 is not supported yet reason: target esp32c2 is not supported yet
disable_test: disable_test:
- if: IDF_TARGET in ["esp32s2", "esp32s3"] - if: IDF_TARGET in ["esp32s2", "esp32s3", "esp32c6"]
temporary: true temporary: true
reason: lack of runners reason: lack of runners
@ -92,7 +92,7 @@ examples/storage/parttool:
temporary: true temporary: true
reason: target esp32c2 is not supported yet reason: target esp32c2 is not supported yet
disable_test: disable_test:
- if: IDF_TARGET in ["esp32s2", "esp32s3"] - if: IDF_TARGET in ["esp32s2", "esp32s3", "esp32c6"]
temporary: true temporary: true
reason: lack of runners reason: lack of runners
@ -120,7 +120,7 @@ examples/storage/semihost_vfs:
temporary: true temporary: true
reason: target esp32c2 is not supported yet reason: target esp32c2 is not supported yet
disable_test: disable_test:
- if: IDF_TARGET in ["esp32c3", "esp32s2", "esp32s3"] - if: IDF_TARGET in ["esp32c3", "esp32s2", "esp32s3", "esp32c6"]
temporary: true temporary: true
reason: lack of runners reason: lack of runners
@ -130,7 +130,7 @@ examples/storage/spiffs:
temporary: true temporary: true
reason: target esp32c2 is not supported yet reason: target esp32c2 is not supported yet
disable_test: disable_test:
- if: IDF_TARGET in ["esp32s2", "esp32s3"] - if: IDF_TARGET in ["esp32s2", "esp32s3", "esp32c6"]
temporary: true temporary: true
reason: lack of runners reason: lack of runners
@ -140,7 +140,7 @@ examples/storage/spiffsgen:
temporary: true temporary: true
reason: target esp32c2 is not supported yet reason: target esp32c2 is not supported yet
disable_test: disable_test:
- if: IDF_TARGET in ["esp32s2", "esp32s3"] - if: IDF_TARGET in ["esp32s2", "esp32s3", "esp32c6"]
temporary: true temporary: true
reason: lack of runners reason: lack of runners
@ -150,6 +150,6 @@ examples/storage/wear_levelling:
temporary: true temporary: true
reason: target esp32c2 is not supported yet reason: target esp32c2 is not supported yet
disable_test: disable_test:
- if: IDF_TARGET in ["esp32s2", "esp32s3"] - if: IDF_TARGET in ["esp32s2", "esp32s3", "esp32c6"]
temporary: true temporary: true
reason: lack of runners reason: lack of runners

View File

@ -47,6 +47,9 @@ examples/system/efuse:
- if: IDF_TARGET == "esp32s3" - if: IDF_TARGET == "esp32s3"
temporary: true temporary: true
reason: lack of runners reason: lack of runners
- if: IDF_TARGET == "esp32c6"
temporary: true
reason: target esp32c6 is not supported yet
examples/system/esp_timer: examples/system/esp_timer:
disable: disable:
@ -153,6 +156,9 @@ examples/system/select:
- if: IDF_TARGET in ["esp32s2", "esp32s3"] - if: IDF_TARGET in ["esp32s2", "esp32s3"]
temporary: true temporary: true
reason: lack of runners reason: lack of runners
- if: IDF_TARGET == "esp32c6"
temporary: true
reason: target esp32c6 is not supported yet
examples/system/sysview_tracing: examples/system/sysview_tracing:
disable_test: disable_test:
@ -170,7 +176,7 @@ examples/system/task_watchdog:
disable_test: disable_test:
- if: IDF_TARGET == "esp32c2" - if: IDF_TARGET == "esp32c2"
temporary: true temporary: true
reason: lack of runners reason: target esp32c2 is not supported yet
examples/system/ulp_fsm/ulp: examples/system/ulp_fsm/ulp:
disable: disable:

View File

@ -13,6 +13,7 @@ from pytest_embedded import Dut
@pytest.mark.esp32s2 @pytest.mark.esp32s2
@pytest.mark.esp32s3 @pytest.mark.esp32s3
@pytest.mark.esp32c3 @pytest.mark.esp32c3
@pytest.mark.esp32c6
@pytest.mark.generic @pytest.mark.generic
def test_eventfd(dut: Dut) -> None: def test_eventfd(dut: Dut) -> None:

View File

@ -122,6 +122,7 @@ def start_chunked_server(ota_image_dir: str, server_port: int) -> subprocess.Pop
@pytest.mark.supported_targets @pytest.mark.supported_targets
@pytest.mark.temp_skip_ci(targets=['esp32c6'], reason='c6 support TBD')
@pytest.mark.ethernet_ota @pytest.mark.ethernet_ota
def test_examples_protocol_native_ota_example(dut: Dut) -> None: def test_examples_protocol_native_ota_example(dut: Dut) -> None:
""" """
@ -161,6 +162,7 @@ def test_examples_protocol_native_ota_example(dut: Dut) -> None:
@pytest.mark.supported_targets @pytest.mark.supported_targets
@pytest.mark.temp_skip_ci(targets=['esp32c6'], reason='c6 support TBD')
@pytest.mark.ethernet_ota @pytest.mark.ethernet_ota
def test_examples_protocol_native_ota_example_truncated_bin(dut: Dut) -> None: def test_examples_protocol_native_ota_example_truncated_bin(dut: Dut) -> None:
""" """
@ -211,6 +213,7 @@ def test_examples_protocol_native_ota_example_truncated_bin(dut: Dut) -> None:
@pytest.mark.supported_targets @pytest.mark.supported_targets
@pytest.mark.temp_skip_ci(targets=['esp32c6'], reason='c6 support TBD')
@pytest.mark.ethernet_ota @pytest.mark.ethernet_ota
def test_examples_protocol_native_ota_example_truncated_header(dut: Dut) -> None: def test_examples_protocol_native_ota_example_truncated_header(dut: Dut) -> None:
""" """
@ -260,6 +263,7 @@ def test_examples_protocol_native_ota_example_truncated_header(dut: Dut) -> None
@pytest.mark.supported_targets @pytest.mark.supported_targets
@pytest.mark.temp_skip_ci(targets=['esp32c6'], reason='c6 support TBD')
@pytest.mark.ethernet_ota @pytest.mark.ethernet_ota
def test_examples_protocol_native_ota_example_random(dut: Dut) -> None: def test_examples_protocol_native_ota_example_random(dut: Dut) -> None:
""" """
@ -309,6 +313,7 @@ def test_examples_protocol_native_ota_example_random(dut: Dut) -> None:
@pytest.mark.supported_targets @pytest.mark.supported_targets
@pytest.mark.temp_skip_ci(targets=['esp32c6'], reason='c6 support TBD')
@pytest.mark.ethernet_ota @pytest.mark.ethernet_ota
def test_examples_protocol_native_ota_example_chunked(dut: Dut) -> None: def test_examples_protocol_native_ota_example_chunked(dut: Dut) -> None:
""" """

View File

@ -14,6 +14,7 @@ from pytest_embedded import Dut
@pytest.mark.esp32s2 @pytest.mark.esp32s2
@pytest.mark.esp32c3 @pytest.mark.esp32c3
@pytest.mark.esp32s3 @pytest.mark.esp32s3
@pytest.mark.esp32c6
@pytest.mark.generic @pytest.mark.generic
def test_otatool_example(dut: Dut) -> None: def test_otatool_example(dut: Dut) -> None:
# Verify factory firmware # Verify factory firmware

View File

@ -10,6 +10,7 @@ from pytest_embedded import Dut
@pytest.mark.esp32s2 @pytest.mark.esp32s2
@pytest.mark.esp32s3 @pytest.mark.esp32s3
@pytest.mark.esp32c3 @pytest.mark.esp32c3
@pytest.mark.esp32c6
@pytest.mark.generic @pytest.mark.generic
def test_task_watchdog(dut: Dut) -> None: def test_task_watchdog(dut: Dut) -> None:

View File

@ -27,8 +27,8 @@ markers =
esp32c2: support esp32c2 target esp32c2: support esp32c2 target
esp32c6: support esp32c6 target esp32c6: support esp32c6 target
esp32h4: support esp32h4 target esp32h4: support esp32h4 target
supported_targets: support all supported targets ('esp32', 'esp32s2', 'esp32c3', 'esp32s3', 'esp32c2') supported_targets: support all supported targets ('esp32', 'esp32s2', 'esp32c3', 'esp32s3', 'esp32c2', 'esp32c6')
preview_targets: support all preview targets ('linux', 'esp32h4', 'esp32c6') preview_targets: support all preview targets ('linux', 'esp32h4')
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 ci for specified targets, can only work with `supported_targets`, `preview_targets`, `all_targets` temp_skip_ci: temp skip ci for specified targets, can only work with `supported_targets`, `preview_targets`, `all_targets`

View File

@ -209,8 +209,10 @@ def check_test_scripts(
paths: List[str], paths: List[str],
exclude_dirs: Optional[List[str]] = None, exclude_dirs: Optional[List[str]] = None,
bypass_check_test_targets: Optional[List[str]] = None, bypass_check_test_targets: Optional[List[str]] = None,
extra_default_build_targets: Optional[List[str]] = None,
) -> None: ) -> None:
from idf_build_apps import App, find_apps from idf_build_apps import App, find_apps
from idf_build_apps.constants import SUPPORTED_TARGETS
# takes long time, run only in CI # takes long time, run only in CI
# dict: # dict:
@ -323,6 +325,7 @@ def check_test_scripts(
manifest_files=[ manifest_files=[
str(p) for p in Path(IDF_PATH).glob('**/.build-test-rules.yml') str(p) for p in Path(IDF_PATH).glob('**/.build-test-rules.yml')
], ],
default_build_targets=SUPPORTED_TARGETS + extra_default_build_targets,
) )
) )
exit_code = 0 exit_code = 0
@ -467,17 +470,17 @@ if __name__ == '__main__':
else: else:
_exclude_dirs = [] _exclude_dirs = []
extra_default_build_targets: List[str] = [] extra_default_build_targets_list: List[str] = []
bypass_check_test_targets: List[str] = [] bypass_check_test_targets_list: List[str] = []
if arg.config: if arg.config:
with open(arg.config) as fr: with open(arg.config) as fr:
configs = yaml.safe_load(fr) configs = yaml.safe_load(fr)
if configs: if configs:
extra_default_build_targets = ( extra_default_build_targets_list = (
configs.get('extra_default_build_targets') or [] configs.get('extra_default_build_targets') or []
) )
bypass_check_test_targets = ( bypass_check_test_targets_list = (
configs.get('bypass_check_test_targets') or [] configs.get('bypass_check_test_targets') or []
) )
@ -485,11 +488,12 @@ if __name__ == '__main__':
check_readme( check_readme(
list(check_dirs), list(check_dirs),
exclude_dirs=_exclude_dirs, exclude_dirs=_exclude_dirs,
extra_default_build_targets=extra_default_build_targets, extra_default_build_targets=extra_default_build_targets_list,
) )
elif arg.action == 'check-test-scripts': elif arg.action == 'check-test-scripts':
check_test_scripts( check_test_scripts(
list(check_dirs), list(check_dirs),
exclude_dirs=_exclude_dirs, exclude_dirs=_exclude_dirs,
bypass_check_test_targets=bypass_check_test_targets, bypass_check_test_targets=bypass_check_test_targets_list,
extra_default_build_targets=extra_default_build_targets_list,
) )

View File

@ -119,6 +119,7 @@ class UnitTestGroup(IDFCaseGroup):
'esp32s3': 'ESP32S3DUT', 'esp32s3': 'ESP32S3DUT',
'esp32c2': 'ESP32C2DUT', 'esp32c2': 'ESP32C2DUT',
'esp32c3': 'ESP32C3DUT', 'esp32c3': 'ESP32C3DUT',
'esp32c6': 'ESP32C6DUT',
'esp8266': 'ESP8266DUT', 'esp8266': 'ESP8266DUT',
} }

View File

@ -628,7 +628,7 @@ class ESP32C6DUT(IDFDUT):
@classmethod @classmethod
def get_rom(cls): def get_rom(cls):
return targets.ESP32C6BETAROM return targets.ESP32C6ROM
class ESP32H4DUT(IDFDUT): class ESP32H4DUT(IDFDUT):

View File

@ -48,7 +48,7 @@ typedef struct {
/* No performance monitor in RISCV for now /* No performance monitor in RISCV for now
*/ */
#if !DISABLED_FOR_TARGETS(ESP32C3) #if !DISABLED_FOR_TARGETS(ESP32C3)
#if !TEMPORARY_DISABLED_FOR_TARGETS(ESP32C2) #if !TEMPORARY_DISABLED_FOR_TARGETS(ESP32C2, ESP32C6)
//IDF-5052 //IDF-5052
static const char* TAG = "test_ccomp_timer"; static const char* TAG = "test_ccomp_timer";
@ -178,5 +178,5 @@ TEST_CASE("data cache hit rate sweep", "[test_utils][ccomp_timer]")
free(flash_mem); free(flash_mem);
#endif #endif
} }
#endif //!TEMPORARY_DISABLED_FOR_TARGETS(ESP32C2) #endif //!TEMPORARY_DISABLED_FOR_TARGETS(...)
#endif // !DISABLED_FOR_TARGETS(ESP32C3) #endif // !DISABLED_FOR_TARGETS(ESP32C3)

View File

@ -0,0 +1,3 @@
# This config is split between targets since different component needs to be included
CONFIG_IDF_TARGET="esp32c6"
TEST_COMPONENTS=app_trace esp_eth esp_hid esp_netif esp_phy esp_wifi espcoredump hal lwip mdns mqtt newlib nvs_flash partition_table sdmmc

View File

@ -0,0 +1,3 @@
# This config is split between targets since different component needs to be included
CONFIG_IDF_TARGET="esp32c6"
TEST_EXCLUDE_COMPONENTS=app_trace esp_eth esp_hid esp_netif esp_phy esp_ringbuf esp_wifi espcoredump hal lwip mdns mqtt newlib nvs_flash partition_table sdmmc esp_system driver soc spi_flash vfs

View File

@ -0,0 +1,3 @@
# This config is split between targets since different component needs to be included
CONFIG_IDF_TARGET="esp32c6"
TEST_COMPONENTS=esp_system driver soc spi_flash vfs

View File

@ -0,0 +1,4 @@
# This config is split between targets since different component needs to be included
CONFIG_IDF_TARGET="esp32c6"
TEST_COMPONENTS=driver esp_hw_support esp_system spi_flash
CONFIG_FREERTOS_CHECK_PORT_CRITICAL_COMPLIANCE=y

View File

@ -0,0 +1,3 @@
CONFIG_IDF_TARGET="esp32c6"
TEST_COMPONENTS=esp_ipc spi_flash
CONFIG_COMPILER_OPTIMIZATION_NONE=y

View File

@ -0,0 +1,6 @@
CONFIG_IDF_TARGET="esp32c6"
TEST_COMPONENTS=esp_pm
CONFIG_PM_ENABLE=y
CONFIG_FREERTOS_USE_TICKLESS_IDLE=y
# SMP FreeRTOS currently does not support power management IDF-4997
CONFIG_FREERTOS_SMP=n

View File

@ -0,0 +1,5 @@
CONFIG_IDF_TARGET="esp32c6"
TEST_COMPONENTS=esp_hw_support esp_system esp_ipc driver soc spi_flash vfs sdmmc
CONFIG_COMPILER_OPTIMIZATION_SIZE=y
CONFIG_COMPILER_OPTIMIZATION_ASSERTIONS_SILENT=y
CONFIG_BOOTLOADER_COMPILER_OPTIMIZATION_SIZE=y

View File

@ -0,0 +1,3 @@
CONFIG_IDF_TARGET="esp32c6"
TEST_COMPONENTS=spi_flash
CONFIG_SPI_FLASH_ROM_IMPL=y

View File

@ -5,6 +5,7 @@
"ESP32S3_IDF": "CONFIG_IDF_TARGET_ESP32S3=y" "ESP32S3_IDF": "CONFIG_IDF_TARGET_ESP32S3=y"
"ESP32C2_IDF": "CONFIG_IDF_TARGET_ESP32C2=y" "ESP32C2_IDF": "CONFIG_IDF_TARGET_ESP32C2=y"
"ESP32C3_IDF": "CONFIG_IDF_TARGET_ESP32C3=y" "ESP32C3_IDF": "CONFIG_IDF_TARGET_ESP32C3=y"
"ESP32C6_IDF": "CONFIG_IDF_TARGET_ESP32C6=y"
"quad_psram": '{CONFIG_SPIRAM_MODE_QUAD=y} and {CONFIG_IDF_TARGET_ESP32S3=y}' "quad_psram": '{CONFIG_SPIRAM_MODE_QUAD=y} and {CONFIG_IDF_TARGET_ESP32S3=y}'
"octal_psram": '{CONFIG_SPIRAM_MODE_OCT=y} and {CONFIG_IDF_TARGET_ESP32S3=y}' "octal_psram": '{CONFIG_SPIRAM_MODE_OCT=y} and {CONFIG_IDF_TARGET_ESP32S3=y}'
"xtal_26mhz": '{CONFIG_XTAL_FREQ_26=y} and {CONFIG_IDF_TARGET_ESP32C2=y}' "xtal_26mhz": '{CONFIG_XTAL_FREQ_26=y} and {CONFIG_IDF_TARGET_ESP32C2=y}'

View File

@ -49,6 +49,7 @@ def reset_reason_matches(reported_str, expected_str):
'_RESET': '_RST', '_RESET': '_RST',
'POWERON_RESET': 'POWERON', 'POWERON_RESET': 'POWERON',
'DEEPSLEEP_RESET': 'DSLEEP', 'DEEPSLEEP_RESET': 'DSLEEP',
'SW_CPU_RESET': 'SW_CPU',
} }
if expected_str in reported_str: if expected_str in reported_str: