diff --git a/components/esp_wifi/test_apps/.build-test-rules.yml b/components/esp_wifi/test_apps/.build-test-rules.yml index 6433fa3029..d7fadd9143 100644 --- a/components/esp_wifi/test_apps/.build-test-rules.yml +++ b/components/esp_wifi/test_apps/.build-test-rules.yml @@ -26,6 +26,10 @@ components/esp_wifi/test_apps/: components/esp_wifi/test_apps/wifi_nvs_config: disable: - if: SOC_WIFI_SUPPORTED != 1 + disable_test: + - if: IDF_TARGET in ["esp32s31"] + temporary: true + reason: lack of runners depends_components: - esp_hw_support - esp_rom diff --git a/components/esp_wifi/test_apps/wifi_nvs_config/pytest_wifi_nvs_connect.py b/components/esp_wifi/test_apps/wifi_nvs_config/pytest_wifi_nvs_connect.py index 6ffb4ad706..b8ac3d2928 100644 --- a/components/esp_wifi/test_apps/wifi_nvs_config/pytest_wifi_nvs_connect.py +++ b/components/esp_wifi/test_apps/wifi_nvs_config/pytest_wifi_nvs_connect.py @@ -9,7 +9,8 @@ from pytest_embedded_idf.utils import idf_parametrize @pytest.mark.parametrize('count', [2], indirect=True) @idf_parametrize( 'target', - ['esp32', 'esp32c3', 'esp32c5', 'esp32c6', 'esp32c61', 'esp32s2', 'esp32s3', 'esp32s31'], + # esp32s31: no two_duts runner in CI (rev_default) yet + ['esp32', 'esp32c3', 'esp32c5', 'esp32c6', 'esp32c61', 'esp32s2', 'esp32s3'], indirect=['target'], ) def test_wifi_nvs_connect_cases(case_tester: CaseTester) -> None: # type: ignore diff --git a/components/wpa_supplicant/test_apps/.build-test-rules.yml b/components/wpa_supplicant/test_apps/.build-test-rules.yml index 8ef11c2aae..dcbe934753 100644 --- a/components/wpa_supplicant/test_apps/.build-test-rules.yml +++ b/components/wpa_supplicant/test_apps/.build-test-rules.yml @@ -3,6 +3,10 @@ components/wpa_supplicant/test_apps: disable: - if: SOC_WIFI_SUPPORTED != 1 + disable_test: + - if: IDF_TARGET in ["esp32s31"] + temporary: true + reason: lack of runners depends_components: - *common_components - esp_wifi diff --git a/components/wpa_supplicant/test_apps/pytest_wpa_supplicant_ut.py b/components/wpa_supplicant/test_apps/pytest_wpa_supplicant_ut.py index f6424c1a0c..22f661b080 100644 --- a/components/wpa_supplicant/test_apps/pytest_wpa_supplicant_ut.py +++ b/components/wpa_supplicant/test_apps/pytest_wpa_supplicant_ut.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2023-2025 Espressif Systems (Shanghai) CO LTD +# SPDX-FileCopyrightText: 2023-2026 Espressif Systems (Shanghai) CO LTD # SPDX-License-Identifier: CC0-1.0 import pytest from pytest_embedded import Dut @@ -9,7 +9,16 @@ from pytest_embedded_idf.utils import idf_parametrize @pytest.mark.generic @idf_parametrize( 'target', - ['esp32', 'esp32s2', 'esp32s3', 'esp32s31', 'esp32c3', 'esp32c2', 'esp32c6', 'esp32c61', 'esp32c5'], + [ + 'esp32', + 'esp32s2', + 'esp32s3', + 'esp32c3', + 'esp32c2', + 'esp32c6', + 'esp32c61', + 'esp32c5', + ], indirect=['target'], ) def test_wpa_supplicant_ut(dut: Dut) -> None: @@ -26,7 +35,8 @@ def test_wpa_supplicant_ut(dut: Dut) -> None: ) @idf_parametrize( 'target', - ['esp32', 'esp32s2', 'esp32s3', 'esp32s31', 'esp32c6', 'esp32c61', 'esp32c5'], + # esp32s31: no two_duts runner in CI (rev_default) yet + ['esp32', 'esp32s2', 'esp32s3', 'esp32c6', 'esp32c61', 'esp32c5'], indirect=['target'], ) def test_wpa_supplicant_ut_offchan(case_tester: CaseTester) -> None: diff --git a/examples/network/.build-test-rules.yml b/examples/network/.build-test-rules.yml index b2f6bcd76e..fbc897e33b 100644 --- a/examples/network/.build-test-rules.yml +++ b/examples/network/.build-test-rules.yml @@ -24,6 +24,10 @@ examples/network/eth2ap: examples/network/simple_sniffer: disable: - if: SOC_WIFI_SUPPORTED != 1 + disable_test: + - if: IDF_TARGET in ["esp32s31"] + temporary: true + reason: lack of runners depends_components: - esp_wifi - fatfs diff --git a/examples/network/simple_sniffer/pytest_simple_sniffer.py b/examples/network/simple_sniffer/pytest_simple_sniffer.py index 702b0b6cf6..7971e6ab9c 100644 --- a/examples/network/simple_sniffer/pytest_simple_sniffer.py +++ b/examples/network/simple_sniffer/pytest_simple_sniffer.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2021-2025 Espressif Systems (Shanghai) CO LTD +# SPDX-FileCopyrightText: 2021-2026 Espressif Systems (Shanghai) CO LTD # SPDX-License-Identifier: Apache-2.0 import pytest from common_test_methods import get_env_config_variable @@ -47,7 +47,16 @@ def _sniffer_packets_check(dut: Dut, channel: int, packet_num: int) -> None: ) @idf_parametrize( 'target', - ['esp32', 'esp32c2', 'esp32c3', 'esp32c5', 'esp32c6', 'esp32c61', 'esp32s2', 'esp32s3', 'esp32s31'], + [ + 'esp32', + 'esp32c2', + 'esp32c3', + 'esp32c5', + 'esp32c6', + 'esp32c61', + 'esp32s2', + 'esp32s3', + ], indirect=['target'], ) def test_examples_simple_sniffer(dut: Dut) -> None: diff --git a/examples/openthread/.build-test-rules.yml b/examples/openthread/.build-test-rules.yml index 67d81283d2..d4b00904df 100644 --- a/examples/openthread/.build-test-rules.yml +++ b/examples/openthread/.build-test-rules.yml @@ -31,6 +31,9 @@ examples/openthread/ot_br: - if: ((SOC_WIFI_SUPPORTED == 1 and IDF_TARGET != "esp32c61") or IDF_TARGET == "esp32p4") and CONFIG_NAME != "native_radio" - if: SOC_WIFI_SUPPORTED == 1 and (SOC_IEEE802154_SUPPORTED == 1 and CONFIG_NAME == "native_radio") disable: + - if: IDF_TARGET == "esp32s31" + temporary: true + reason: OpenThread BR example does not support esp32s31 yet - if: IDF_TARGET in ["esp32", "esp32s2", "esp32s3"] and CONFIG_NAME == "br_debug_riscv" disable_test: - if: IDF_TARGET not in ["esp32s3"] @@ -80,6 +83,10 @@ examples/openthread/ot_sleepy_device/light_sleep: examples/openthread/ot_trel: enable: - if: SOC_WIFI_SUPPORTED == 1 + disable: + - if: IDF_TARGET == "esp32s31" + temporary: true + reason: OpenThread TREL example does not support esp32s31 yet disable_test: - if: IDF_TARGET not in ["esp32c6", "esp32s3"] reason: only test on esp32c6 and esp32s3 diff --git a/examples/peripherals/i2c/i2c_slave_network_sensor/README.md b/examples/peripherals/i2c/i2c_slave_network_sensor/README.md index 91c3ef9314..07d560de80 100644 --- a/examples/peripherals/i2c/i2c_slave_network_sensor/README.md +++ b/examples/peripherals/i2c/i2c_slave_network_sensor/README.md @@ -1,5 +1,5 @@ -| Supported Targets | ESP32-C3 | ESP32-C5 | ESP32-C6 | ESP32-C61 | ESP32-P4 | ESP32-S2 | ESP32-S3 | -| ----------------- | -------- | -------- | -------- | --------- | -------- | -------- | -------- | +| Supported Targets | ESP32-C3 | ESP32-C5 | ESP32-C6 | ESP32-C61 | ESP32-P4 | ESP32-S2 | ESP32-S3 | ESP32-S31 | +| ----------------- | -------- | -------- | -------- | --------- | -------- | -------- | -------- | --------- | # I2C slave example diff --git a/examples/wifi/.build-test-rules.yml b/examples/wifi/.build-test-rules.yml index 49969f37a0..0cff688ccb 100644 --- a/examples/wifi/.build-test-rules.yml +++ b/examples/wifi/.build-test-rules.yml @@ -43,6 +43,9 @@ examples/wifi/getting_started: - if: IDF_TARGET in ["esp32p4", "esp32h2"] temporary: true reason: lack of runners + - if: IDF_TARGET in ["esp32s31"] + temporary: true + reason: lack of runners depends_filepatterns: - examples/wifi/getting_started/**/* @@ -76,6 +79,9 @@ examples/wifi/itwt: <<: *wifi_depends_default disable: - if: SOC_WIFI_HE_SUPPORT != 1 + - if: IDF_TARGET == "esp32s31" + temporary: true + reason: sdkconfig.defaults references Kconfig CPU freq symbols not present for S31; fix defaults or split sdkconfig then remove examples/wifi/power_save: <<: *wifi_depends_default diff --git a/examples/wifi/getting_started/pytest_wifi_getting_started.py b/examples/wifi/getting_started/pytest_wifi_getting_started.py index 52c83f863e..6469767a4e 100644 --- a/examples/wifi/getting_started/pytest_wifi_getting_started.py +++ b/examples/wifi/getting_started/pytest_wifi_getting_started.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2022-2025 Espressif Systems (Shanghai) CO LTD +# SPDX-FileCopyrightText: 2022-2026 Espressif Systems (Shanghai) CO LTD # SPDX-License-Identifier: CC0-1.0 import os.path @@ -33,7 +33,7 @@ from pytest_embedded_idf.utils import idf_parametrize ) @idf_parametrize( 'target', - ['esp32', 'esp32c3', 'esp32s2', 'esp32s3', 'esp32s31', 'esp32c5', 'esp32c6', 'esp32c61'], + ['esp32', 'esp32c3', 'esp32s2', 'esp32s3', 'esp32c5', 'esp32c6', 'esp32c61'], indirect=['target'], ) def test_wifi_getting_started(dut: tuple[IdfDut, IdfDut]) -> None: diff --git a/examples/wifi/getting_started/station/pytest_wifi_station.py b/examples/wifi/getting_started/station/pytest_wifi_station.py index 0c6327e6d7..d16311b161 100644 --- a/examples/wifi/getting_started/station/pytest_wifi_station.py +++ b/examples/wifi/getting_started/station/pytest_wifi_station.py @@ -12,7 +12,6 @@ from pytest_embedded_idf.utils import idf_parametrize DIFF_THRESHOLD = { 'esp32s2': 40 * 1000, 'esp32s3': 40 * 1000, - 'esp32s31': 40 * 1000, 'default': 45 * 1000, } @@ -21,7 +20,8 @@ DIFF_THRESHOLD = { @pytest.mark.parametrize('count, config, skip_autoflash', [(2, 'default|enable_softap', 'y')], indirect=True) @idf_parametrize( 'target', - ['esp32', 'esp32c2', 'esp32c3', 'esp32s2', 'esp32s3', 'esp32s31', 'esp32c5', 'esp32c6', 'esp32c61'], + # esp32s31: no two_duts runner in CI (rev_default) yet + ['esp32', 'esp32c2', 'esp32c3', 'esp32s2', 'esp32s3', 'esp32c5', 'esp32c6', 'esp32c61'], indirect=['target'], ) def test_wifi_sdkconfig_disable_softap_save_binary_size( diff --git a/examples/zigbee/.build-test-rules.yml b/examples/zigbee/.build-test-rules.yml index 83ab36aeb5..a088b7cd10 100644 --- a/examples/zigbee/.build-test-rules.yml +++ b/examples/zigbee/.build-test-rules.yml @@ -12,6 +12,10 @@ examples/zigbee/esp_zigbee_gateway: enable: - if: SOC_WIFI_SUPPORTED == 1 and IDF_TARGET not in ["esp32c2", "esp32c61"] reason: not supported esp32c2 and esp32c61 + disable: + - if: IDF_TARGET == "esp32s31" + temporary: true + reason: Zigbee gateway example does not support esp32s31 yet <<: *zigbee_dependencies examples/zigbee/light_sample: diff --git a/tools/ci/dynamic_pipelines/scripts/generate_target_test_child_pipeline.py b/tools/ci/dynamic_pipelines/scripts/generate_target_test_child_pipeline.py index 8086d1e54a..dde414ce16 100644 --- a/tools/ci/dynamic_pipelines/scripts/generate_target_test_child_pipeline.py +++ b/tools/ci/dynamic_pipelines/scripts/generate_target_test_child_pipeline.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2024-2025 Espressif Systems (Shanghai) CO LTD +# SPDX-FileCopyrightText: 2024-2026 Espressif Systems (Shanghai) CO LTD # SPDX-License-Identifier: Apache-2.0 """This file is used for generating the child pipeline for target test jobs.