From a4401e5256c2af2f14d9a2b03d6607fb1d7e60fd Mon Sep 17 00:00:00 2001 From: luaijun Date: Wed, 19 Mar 2025 20:16:21 +0800 Subject: [PATCH 1/2] ci(c2/c3): add major eco version tests(v5.2) --- .gitlab/ci/target-test.yml | 72 +++++++++++++++++++ .../wifi_connect/pytest_wifi_connect.py | 32 ++++++++- .../sdkconfig.ci.esp32c2eco4_xtal26m | 3 + .../wifi_connect/sdkconfig.ci.esp32c3eco7 | 2 + .../wifi_function/pytest_wifi_function.py | 32 ++++++++- .../sdkconfig.ci.esp32c2eco4_xtal26m | 3 + .../wifi_function/sdkconfig.ci.esp32c3eco7 | 2 + .../test_apps/pytest_wpa_supplicant_ut.py | 43 ++++++++++- .../sdkconfig.ci.esp32c2eco4_xtal26m | 3 + .../test_apps/sdkconfig.ci.esp32c3eco7 | 2 + .../test_apps/sdkconfig.defaults | 2 +- .../blecent/sdkconfig.ci.esp32c2_xtal26m | 1 + .../blecent/sdkconfig.ci.esp32c2eco4_xtal26m | 6 ++ .../nimble/blecent/sdkconfig.ci.esp32c3eco7 | 12 ++++ .../sdkconfig.ci.esp32c2eco4_xtal26m | 7 ++ .../power_save/sdkconfig.ci.esp32c3eco7 | 14 ++++ .../bluetooth/nimble/pytest_nimble_test.py | 63 +++++++++++++++- .../pytest_wifi_getting_started.py | 65 ++++++++++++++++- .../softAP/sdkconfig.ci.c3eco7 | 2 + .../softAP/sdkconfig.ci.esp32c2eco4_xtal26m | 3 + .../station/sdkconfig.ci.c3eco7 | 2 + .../station/sdkconfig.ci.esp32c2eco4_xtal26m | 3 + .../wifi/power_save/pytest_wifi_power_save.py | 32 ++++++++- .../power_save/sdkconfig.ci.c2eco4_xtal26m | 4 ++ examples/wifi/power_save/sdkconfig.ci.c3eco7 | 3 + tools/ci/exclude_check_tools_files.txt | 1 + tools/ci/idf_pytest/constants.py | 4 +- .../phy/phy_tsens/pytest_phy_tsens.py | 56 ++++++++++++++- .../phy/phy_tsens/sdkconfig.ci.c2_eco4 | 1 + 29 files changed, 459 insertions(+), 16 deletions(-) create mode 100644 components/esp_wifi/test_apps/wifi_connect/sdkconfig.ci.esp32c2eco4_xtal26m create mode 100644 components/esp_wifi/test_apps/wifi_connect/sdkconfig.ci.esp32c3eco7 create mode 100644 components/esp_wifi/test_apps/wifi_function/sdkconfig.ci.esp32c2eco4_xtal26m create mode 100644 components/esp_wifi/test_apps/wifi_function/sdkconfig.ci.esp32c3eco7 create mode 100644 components/wpa_supplicant/test_apps/sdkconfig.ci.esp32c2eco4_xtal26m create mode 100644 components/wpa_supplicant/test_apps/sdkconfig.ci.esp32c3eco7 create mode 100644 examples/bluetooth/nimble/blecent/sdkconfig.ci.esp32c2eco4_xtal26m create mode 100644 examples/bluetooth/nimble/blecent/sdkconfig.ci.esp32c3eco7 create mode 100644 examples/bluetooth/nimble/power_save/sdkconfig.ci.esp32c2eco4_xtal26m create mode 100644 examples/bluetooth/nimble/power_save/sdkconfig.ci.esp32c3eco7 create mode 100644 examples/wifi/getting_started/softAP/sdkconfig.ci.c3eco7 create mode 100644 examples/wifi/getting_started/softAP/sdkconfig.ci.esp32c2eco4_xtal26m create mode 100644 examples/wifi/getting_started/station/sdkconfig.ci.c3eco7 create mode 100644 examples/wifi/getting_started/station/sdkconfig.ci.esp32c2eco4_xtal26m create mode 100644 examples/wifi/power_save/sdkconfig.ci.c2eco4_xtal26m create mode 100644 examples/wifi/power_save/sdkconfig.ci.c3eco7 diff --git a/.gitlab/ci/target-test.yml b/.gitlab/ci/target-test.yml index f2519d8de8..71c1ba108b 100644 --- a/.gitlab/ci/target-test.yml +++ b/.gitlab/ci/target-test.yml @@ -328,6 +328,15 @@ pytest_examples_esp32c3_wifi_ap: artifacts: false tags: [ esp32c3, wifi_ap ] +pytest_examples_esp32c3eco7_wifi_ap: + extends: + - .pytest_examples_dir_template + - .rules:test:example_test-esp32c3-wifi + needs: + - job: build_pytest_examples_esp32c3 + artifacts: false + tags: [ esp32c3eco7, wifi_ap ,esp32c3] + pytest_examples_esp32s3_wifi_ap: extends: - .pytest_examples_dir_template @@ -364,6 +373,15 @@ pytest_examples_esp32c2_26m_wifi_ap: artifacts: false tags: [ esp32c2, wifi_ap, xtal_26mhz ] +pytest_examples_esp32c2eco4_26m_wifi_ap: + extends: + - .pytest_examples_dir_template + - .rules:test:example_test-esp32c2-wifi + needs: + - job: build_pytest_examples_esp32c2 + artifacts: false + tags: [ esp32c2eco4, wifi_ap, xtal_26mhz ,esp32c2 ] + pytest_examples_esp32c6_wifi_ap: extends: - .pytest_examples_dir_template @@ -519,6 +537,15 @@ pytest_examples_esp32c3_wifi_two_dut: artifacts: false tags: [ esp32c3, wifi_two_dut ] +pytest_examples_esp32c3eco7_wifi_two_dut: + extends: + - .pytest_examples_dir_template + - .rules:test:example_test-esp32c3-wifi + needs: + - job: build_pytest_examples_esp32c3 + artifacts: false + tags: [ esp32c3eco7, wifi_two_dut, esp32c3 ] + pytest_examples_esp32s3_wifi_two_dut: extends: - .pytest_examples_dir_template @@ -537,6 +564,15 @@ pytest_examples_esp32c2_wifi_two_dut: artifacts: false tags: [ esp32c2, wifi_two_dut, xtal_26mhz ] +pytest_examples_esp32c2eco4_wifi_two_dut: + extends: + - .pytest_examples_dir_template + - .rules:test:example_test-esp32c2-wifi + needs: + - job: build_pytest_examples_esp32c2 + artifacts: false + tags: [ esp32c2eco4, wifi_two_dut, xtal_26mhz , esp32c2] + pytest_examples_esp32c3_flash_encryption: extends: - .pytest_examples_dir_template @@ -1455,6 +1491,15 @@ pytest_test_apps_esp32c2_generic: artifacts: false tags: [ esp32c2, generic, xtal_40mhz ] +pytest_test_apps_esp32c2eco4_generic: + extends: + - .pytest_test_apps_dir_template + - .rules:test:custom_test-esp32c2 + needs: + - job: build_pytest_test_apps_esp32c2 + artifacts: false + tags: [ esp32c2eco4, generic, xtal_26mhz , esp32c2] + pytest_test_apps_esp32c3_generic: extends: - .pytest_test_apps_dir_template @@ -1464,6 +1509,15 @@ pytest_test_apps_esp32c3_generic: artifacts: false tags: [ esp32c3, generic ] +pytest_test_apps_esp32c3eco7_generic: + extends: + - .pytest_test_apps_dir_template + - .rules:test:custom_test-esp32c3 + needs: + - job: build_pytest_test_apps_esp32c3 + artifacts: false + tags: [ esp32c3eco7, generic , esp32c3] + pytest_test_apps_esp32c6_generic: extends: - .pytest_test_apps_dir_template @@ -1544,3 +1598,21 @@ pytest_test_apps_esp32c3_wifi_two_dut: - job: build_pytest_test_apps_esp32c3 artifacts: false tags: [ esp32c3, wifi_two_dut] + +pytest_test_apps_esp32c2eco4_wifi_two_dut: + extends: + - .pytest_test_apps_dir_template + - .rules:test:custom_test-esp32c2-wifi + needs: + - job: build_pytest_test_apps_esp32c2 + artifacts: false + tags: [ esp32c2eco4, wifi_two_dut, xtal_26mhz, esp32c2 ] + +pytest_test_apps_esp32c3eco7_wifi_two_dut: + extends: + - .pytest_test_apps_dir_template + - .rules:test:custom_test-esp32c3-wifi + needs: + - job: build_pytest_test_apps_esp32c3 + artifacts: false + tags: [ esp32c3eco7, wifi_two_dut, esp32c3] diff --git a/components/esp_wifi/test_apps/wifi_connect/pytest_wifi_connect.py b/components/esp_wifi/test_apps/wifi_connect/pytest_wifi_connect.py index 1604e79017..f41d4ccb30 100644 --- a/components/esp_wifi/test_apps/wifi_connect/pytest_wifi_connect.py +++ b/components/esp_wifi/test_apps/wifi_connect/pytest_wifi_connect.py @@ -1,6 +1,5 @@ -# SPDX-FileCopyrightText: 2022-2023 Espressif Systems (Shanghai) CO LTD +# SPDX-FileCopyrightText: 2022-2025 Espressif Systems (Shanghai) CO LTD # SPDX-License-Identifier: Unlicense OR CC0-1.0 - import pytest from pytest_embedded_idf.unity_tester import CaseTester @@ -26,3 +25,32 @@ def test_wifi_connect_cases(case_tester: CaseTester) -> None: # type: ignore ) def test_wifi_connect_cases_esp32c2_xtal26m(case_tester: CaseTester) -> None: case_tester.run_all_cases() + + +@pytest.mark.esp32c2 +@pytest.mark.esp32c2eco4 +@pytest.mark.wifi_two_dut +@pytest.mark.xtal_26mhz +@pytest.mark.parametrize( + 'count, config, baud', + [ + (2, 'esp32c2eco4_xtal26m', '74880'), + ], + indirect=True, +) +def test_wifi_connect_cases_esp32c2eco4_xtal26m(case_tester: CaseTester) -> None: + case_tester.run_all_cases() + + +@pytest.mark.esp32c3 +@pytest.mark.wifi_two_dut +@pytest.mark.esp32c3eco7 +@pytest.mark.parametrize( + 'count, config', + [ + (2, 'esp32c3eco7',), + ], + indirect=True, +) +def test_wifi_connect_cases_esp32c3eco7(case_tester: CaseTester) -> None: + case_tester.run_all_cases() diff --git a/components/esp_wifi/test_apps/wifi_connect/sdkconfig.ci.esp32c2eco4_xtal26m b/components/esp_wifi/test_apps/wifi_connect/sdkconfig.ci.esp32c2eco4_xtal26m new file mode 100644 index 0000000000..651a6cc578 --- /dev/null +++ b/components/esp_wifi/test_apps/wifi_connect/sdkconfig.ci.esp32c2eco4_xtal26m @@ -0,0 +1,3 @@ +CONFIG_IDF_TARGET="esp32c2" +CONFIG_XTAL_FREQ_26=y +CONFIG_ESP32C2_REV_MIN_200=y diff --git a/components/esp_wifi/test_apps/wifi_connect/sdkconfig.ci.esp32c3eco7 b/components/esp_wifi/test_apps/wifi_connect/sdkconfig.ci.esp32c3eco7 new file mode 100644 index 0000000000..ad055155c9 --- /dev/null +++ b/components/esp_wifi/test_apps/wifi_connect/sdkconfig.ci.esp32c3eco7 @@ -0,0 +1,2 @@ +CONFIG_IDF_TARGET="esp32c3" +CONFIG_ESP32C3_REV_MIN_101=y diff --git a/components/esp_wifi/test_apps/wifi_function/pytest_wifi_function.py b/components/esp_wifi/test_apps/wifi_function/pytest_wifi_function.py index 390791f1bc..13f27f5e04 100644 --- a/components/esp_wifi/test_apps/wifi_function/pytest_wifi_function.py +++ b/components/esp_wifi/test_apps/wifi_function/pytest_wifi_function.py @@ -1,6 +1,5 @@ -# SPDX-FileCopyrightText: 2022-2023 Espressif Systems (Shanghai) CO LTD +# SPDX-FileCopyrightText: 2022-2025 Espressif Systems (Shanghai) CO LTD # SPDX-License-Identifier: Unlicense OR CC0-1.0 - import pytest from pytest_embedded import Dut @@ -27,3 +26,32 @@ def test_wifi_unit_test(dut: Dut) -> None: ) def test_wifi_connect_cases_esp32c2_xtal26m(dut: Dut) -> None: dut.run_all_single_board_cases() + + +@pytest.mark.esp32c2 +@pytest.mark.esp32c2eco4 +@pytest.mark.xtal_26mhz +@pytest.mark.generic +@pytest.mark.parametrize( + 'config, target, baud', + [ + ('esp32c2eco4_xtal26m', 'esp32c2', '74880'), + ], + indirect=True, +) +def test_wifi_unit_test_esp32c2eco4_xtal26m(dut: Dut) -> None: + dut.run_all_single_board_cases() + + +@pytest.mark.esp32c3 +@pytest.mark.esp32c3eco7 +@pytest.mark.generic +@pytest.mark.parametrize( + 'config, target', + [ + ('esp32c3eco7','esp32c3') + ], + indirect=True, +) +def test_wifi_unit_test_esp32c3eco7(dut: Dut) -> None: + dut.run_all_single_board_cases() diff --git a/components/esp_wifi/test_apps/wifi_function/sdkconfig.ci.esp32c2eco4_xtal26m b/components/esp_wifi/test_apps/wifi_function/sdkconfig.ci.esp32c2eco4_xtal26m new file mode 100644 index 0000000000..651a6cc578 --- /dev/null +++ b/components/esp_wifi/test_apps/wifi_function/sdkconfig.ci.esp32c2eco4_xtal26m @@ -0,0 +1,3 @@ +CONFIG_IDF_TARGET="esp32c2" +CONFIG_XTAL_FREQ_26=y +CONFIG_ESP32C2_REV_MIN_200=y diff --git a/components/esp_wifi/test_apps/wifi_function/sdkconfig.ci.esp32c3eco7 b/components/esp_wifi/test_apps/wifi_function/sdkconfig.ci.esp32c3eco7 new file mode 100644 index 0000000000..ad055155c9 --- /dev/null +++ b/components/esp_wifi/test_apps/wifi_function/sdkconfig.ci.esp32c3eco7 @@ -0,0 +1,2 @@ +CONFIG_IDF_TARGET="esp32c3" +CONFIG_ESP32C3_REV_MIN_101=y 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 2db192bb11..e0237b352b 100644 --- a/components/wpa_supplicant/test_apps/pytest_wpa_supplicant_ut.py +++ b/components/wpa_supplicant/test_apps/pytest_wpa_supplicant_ut.py @@ -1,6 +1,5 @@ -# SPDX-FileCopyrightText: 2023 Espressif Systems (Shanghai) CO LTD +# SPDX-FileCopyrightText: 2023-2025 Espressif Systems (Shanghai) CO LTD # SPDX-License-Identifier: CC0-1.0 - import pytest from pytest_embedded import Dut from pytest_embedded_idf.unity_tester import CaseTester @@ -30,3 +29,43 @@ def test_wpa_supplicant_ut_offchan(case_tester: CaseTester) -> None: for case in case_tester.test_menu: if case.attributes.get('test_env') == 'wifi_two_dut': case_tester.run_multi_dev_case(case=case, reset=True) + + +@pytest.mark.esp32c2 +@pytest.mark.wifi_two_dut +@pytest.mark.esp32c2eco4 +@pytest.mark.xtal_26mhz +@pytest.mark.parametrize( + 'count, config, baud', + [ + ( + 2, + 'esp32c2eco4_xtal26m', + '74880', + ), + ], + indirect=True, +) +def test_wpa_supplicant_esp32c2eco4_xtal26mhz(case_tester: CaseTester) -> None: + for case in case_tester.test_menu: + if case.attributes.get('test_env') == 'wifi_two_dut': + case_tester.run_multi_dev_case(case=case, reset=True) + + +@pytest.mark.esp32c3 +@pytest.mark.wifi_two_dut +@pytest.mark.esp32c3eco7 +@pytest.mark.parametrize( + 'count, config,', + [ + ( + 2, + 'esp32c3eco7', + ), + ], + indirect=True, +) +def test_wpa_supplicant_esp32c3eco7(case_tester: CaseTester) -> None: + for case in case_tester.test_menu: + if case.attributes.get('test_env') == 'wifi_two_dut': + case_tester.run_multi_dev_case(case=case, reset=True) diff --git a/components/wpa_supplicant/test_apps/sdkconfig.ci.esp32c2eco4_xtal26m b/components/wpa_supplicant/test_apps/sdkconfig.ci.esp32c2eco4_xtal26m new file mode 100644 index 0000000000..651a6cc578 --- /dev/null +++ b/components/wpa_supplicant/test_apps/sdkconfig.ci.esp32c2eco4_xtal26m @@ -0,0 +1,3 @@ +CONFIG_IDF_TARGET="esp32c2" +CONFIG_XTAL_FREQ_26=y +CONFIG_ESP32C2_REV_MIN_200=y diff --git a/components/wpa_supplicant/test_apps/sdkconfig.ci.esp32c3eco7 b/components/wpa_supplicant/test_apps/sdkconfig.ci.esp32c3eco7 new file mode 100644 index 0000000000..ad055155c9 --- /dev/null +++ b/components/wpa_supplicant/test_apps/sdkconfig.ci.esp32c3eco7 @@ -0,0 +1,2 @@ +CONFIG_IDF_TARGET="esp32c3" +CONFIG_ESP32C3_REV_MIN_101=y diff --git a/components/wpa_supplicant/test_apps/sdkconfig.defaults b/components/wpa_supplicant/test_apps/sdkconfig.defaults index 94128e9034..e6de7dac54 100644 --- a/components/wpa_supplicant/test_apps/sdkconfig.defaults +++ b/components/wpa_supplicant/test_apps/sdkconfig.defaults @@ -2,4 +2,4 @@ CONFIG_ESP_MAIN_TASK_STACK_SIZE=8192 CONFIG_ESP_TASK_WDT_CHECK_IDLE_TASK_CPU0=n CONFIG_ESP_WIFI_TESTING_OPTIONS=y CONFIG_ESP_WIFI_DPP_SUPPORT=y -CONFIG_WPA3_SAE=y +CONFIG_ESP_WIFI_ENABLE_WPA3_SAE=y diff --git a/examples/bluetooth/nimble/blecent/sdkconfig.ci.esp32c2_xtal26m b/examples/bluetooth/nimble/blecent/sdkconfig.ci.esp32c2_xtal26m index 91a180954c..92a3c67b8f 100644 --- a/examples/bluetooth/nimble/blecent/sdkconfig.ci.esp32c2_xtal26m +++ b/examples/bluetooth/nimble/blecent/sdkconfig.ci.esp32c2_xtal26m @@ -1,4 +1,5 @@ CONFIG_IDF_TARGET="esp32c2" CONFIG_XTAL_FREQ_26=y + CONFIG_EXAMPLE_USE_CI_ADDRESS=y CONFIG_EXAMPLE_PEER_ADDR="${CI_PIPELINE_ID}" diff --git a/examples/bluetooth/nimble/blecent/sdkconfig.ci.esp32c2eco4_xtal26m b/examples/bluetooth/nimble/blecent/sdkconfig.ci.esp32c2eco4_xtal26m new file mode 100644 index 0000000000..14abf63b86 --- /dev/null +++ b/examples/bluetooth/nimble/blecent/sdkconfig.ci.esp32c2eco4_xtal26m @@ -0,0 +1,6 @@ +CONFIG_IDF_TARGET="esp32c2" +CONFIG_XTAL_FREQ_26=y +CONFIG_ESP32C2_REV_MIN_200=y + +CONFIG_EXAMPLE_USE_CI_ADDRESS=y +CONFIG_EXAMPLE_PEER_ADDR="${CI_PIPELINE_ID}" diff --git a/examples/bluetooth/nimble/blecent/sdkconfig.ci.esp32c3eco7 b/examples/bluetooth/nimble/blecent/sdkconfig.ci.esp32c3eco7 new file mode 100644 index 0000000000..bfdd97290d --- /dev/null +++ b/examples/bluetooth/nimble/blecent/sdkconfig.ci.esp32c3eco7 @@ -0,0 +1,12 @@ +CONFIG_IDF_TARGET="esp32c3" +CONFIG_ESP32C3_REV_MIN_101=y + +# +# BT config +# +CONFIG_BT_ENABLED=y +CONFIG_BTDM_CTRL_MODE_BLE_ONLY=y +CONFIG_BTDM_CTRL_MODE_BR_EDR_ONLY=n +CONFIG_BTDM_CTRL_MODE_BTDM=n +CONFIG_BT_BLUEDROID_ENABLED=n +CONFIG_BT_NIMBLE_ENABLED=y diff --git a/examples/bluetooth/nimble/power_save/sdkconfig.ci.esp32c2eco4_xtal26m b/examples/bluetooth/nimble/power_save/sdkconfig.ci.esp32c2eco4_xtal26m new file mode 100644 index 0000000000..dd266cb6de --- /dev/null +++ b/examples/bluetooth/nimble/power_save/sdkconfig.ci.esp32c2eco4_xtal26m @@ -0,0 +1,7 @@ +CONFIG_IDF_TARGET="esp32c2" +CONFIG_XTAL_FREQ_26=y +CONFIG_ESP32C2_REV_MIN_200=y + + +CONFIG_EXAMPLE_USE_CI_ADDRESS=y +CONFIG_EXAMPLE_CI_ADDRESS_OFFSET="${CI_PIPELINE_ID}" diff --git a/examples/bluetooth/nimble/power_save/sdkconfig.ci.esp32c3eco7 b/examples/bluetooth/nimble/power_save/sdkconfig.ci.esp32c3eco7 new file mode 100644 index 0000000000..2e43231011 --- /dev/null +++ b/examples/bluetooth/nimble/power_save/sdkconfig.ci.esp32c3eco7 @@ -0,0 +1,14 @@ +CONFIG_IDF_TARGET="esp32c3" +CONFIG_ESP32C3_REV_MIN_101=y + + +# MODEM SLEEP Options +CONFIG_BT_CTRL_MODEM_SLEEP=y +CONFIG_BT_CTRL_MODEM_SLEEP_MODE_1=y +# Bluetooth low power clock +CONFIG_BT_CTRL_LPCLK_SEL_MAIN_XTAL=y +# Power up main XTAL during light sleep +CONFIG_BT_CTRL_MAIN_XTAL_PU_DURING_LIGHT_SLEEP=y + +# Enable power down of MAC and baseband in light sleep mode +CONFIG_ESP_PHY_MAC_BB_PD=y diff --git a/examples/bluetooth/nimble/pytest_nimble_test.py b/examples/bluetooth/nimble/pytest_nimble_test.py index da3c89756e..fc9b3d30ff 100644 --- a/examples/bluetooth/nimble/pytest_nimble_test.py +++ b/examples/bluetooth/nimble/pytest_nimble_test.py @@ -1,6 +1,5 @@ -# SPDX-FileCopyrightText: 2022-2024 Espressif Systems (Shanghai) CO LTD +# SPDX-FileCopyrightText: 2022-2025 Espressif Systems (Shanghai) CO LTD # SPDX-License-Identifier: CC0-1.0 - import os.path from typing import Tuple @@ -61,3 +60,63 @@ def test_power_save_conn_esp32c2_26mhz(dut: Tuple[IdfDut, IdfDut]) -> None: peripheral.expect('connection established; status=0', timeout=30) output = peripheral.expect(pexpect.TIMEOUT, timeout=30) assert 'rst:' not in str(output) and 'boot:' not in str(output) + + +# Case 2: BLE power save test for ESP32C2ECO4 +@pytest.mark.wifi_two_dut +@pytest.mark.xtal_26mhz +@pytest.mark.esp32c2 +@pytest.mark.esp32c2eco4 +@pytest.mark.parametrize( + 'config, count, app_path, baud', + [ + ( + 'esp32c2eco4_xtal26m', + 2, + f'{os.path.join(os.path.dirname(__file__), "power_save")}|{os.path.join(os.path.dirname(__file__), "blecent")}', + '74880', + ), + ], + indirect=True, +) +def test_power_save_conn_esp32c2eco4(dut: Tuple[IdfDut, IdfDut]) -> None: + peripheral = dut[0] + central = dut[1] + + peripheral.expect('NimBLE_BLE_PRPH: BLE Host Task Started', timeout=5) + central.expect('NimBLE_BLE_CENT: BLE Host Task Started', timeout=5) + peripheral.expect('Returned from app_main()', timeout=5) + central.expect('Returned from app_main()', timeout=5) + central.expect('Connection established', timeout=30) + peripheral.expect('connection established; status=0', timeout=30) + output = peripheral.expect(pexpect.TIMEOUT, timeout=30) + assert 'rst:' not in str(output) and 'boot:' not in str(output) + + +# Case 2: BLE power save test for ESP32C3ECO7 +@pytest.mark.wifi_two_dut +@pytest.mark.esp32c3 +@pytest.mark.esp32c3eco7 +@pytest.mark.parametrize( + 'config, count, app_path', + [ + ( + 'esp32c3eco7', + 2, + f'{os.path.join(os.path.dirname(__file__), "power_save")}|{os.path.join(os.path.dirname(__file__), "blecent")}', + ), + ], + indirect=True, +) +def test_power_save_conn_esp32c3eco7(dut: Tuple[IdfDut, IdfDut]) -> None: + peripheral = dut[0] + central = dut[1] + + peripheral.expect('NimBLE_BLE_PRPH: BLE Host Task Started', timeout=5) + central.expect('NimBLE_BLE_CENT: BLE Host Task Started', timeout=5) + peripheral.expect('Returned from app_main()', timeout=5) + central.expect('Returned from app_main()', timeout=5) + central.expect('Connection established', timeout=30) + peripheral.expect('connection established; status=0', timeout=30) + output = peripheral.expect(pexpect.TIMEOUT, timeout=30) + assert 'rst:' not in str(output) and 'boot:' not in str(output) diff --git a/examples/wifi/getting_started/pytest_wifi_getting_started.py b/examples/wifi/getting_started/pytest_wifi_getting_started.py index d6edc8a24a..81bfc46fd2 100644 --- a/examples/wifi/getting_started/pytest_wifi_getting_started.py +++ b/examples/wifi/getting_started/pytest_wifi_getting_started.py @@ -1,6 +1,5 @@ -# SPDX-FileCopyrightText: 2022-2023 Espressif Systems (Shanghai) CO LTD +# SPDX-FileCopyrightText: 2022-2025 Espressif Systems (Shanghai) CO LTD # SPDX-License-Identifier: CC0-1.0 - import os.path from typing import Tuple @@ -69,3 +68,65 @@ def test_wifi_getting_started_esp32c2_xtal_26mhz(dut: Tuple[IdfDut, IdfDut]) -> station.expect(f'{tag}: got ip:', timeout=60) station.expect(f'{tag}: connected to ap SSID:{ssid} password:{password}', timeout=60) softap.expect('station .+ join, AID=', timeout=60) + + +@pytest.mark.wifi_two_dut +@pytest.mark.xtal_26mhz +@pytest.mark.esp32c2eco4 +@pytest.mark.esp32c2 +@pytest.mark.parametrize( + 'count, config, baud, app_path', + [ + ( + 2, + 'esp32c2eco4_xtal26m', + '74880', + f'{os.path.join(os.path.dirname(__file__), "softAP")}|{os.path.join(os.path.dirname(__file__), "station")}', + ), + ], + indirect=True, +) +def test_wifi_getting_started_esp32c2eco4_xtal_26mhz(dut: Tuple[IdfDut, IdfDut]) -> None: + softap = dut[0] + station = dut[1] + + assert station.app.sdkconfig['ESP_WIFI_SOFTAP_SUPPORT'] is False + ssid = softap.app.sdkconfig.get('ESP_WIFI_SSID') + password = softap.app.sdkconfig.get('ESP_WIFI_PASSWORD') + assert station.app.sdkconfig.get('ESP_WIFI_SSID') == ssid + assert station.app.sdkconfig.get('ESP_WIFI_PASSWORD') == password + + tag = 'wifi station' + station.expect(f'{tag}: got ip:', timeout=60) + station.expect(f'{tag}: connected to ap SSID:{ssid} password:{password}', timeout=60) + softap.expect('station .+ join, AID=', timeout=60) + + +@pytest.mark.wifi_two_dut +@pytest.mark.esp32c3eco7 +@pytest.mark.esp32c3 +@pytest.mark.parametrize( + 'count, config, app_path', + [ + ( + 2, + 'esp32c3eco7', + f'{os.path.join(os.path.dirname(__file__), "softAP")}|{os.path.join(os.path.dirname(__file__), "station")}', + ), + ], + indirect=True, +) +def test_wifi_getting_started_esp32c3eco7(dut: Tuple[IdfDut, IdfDut]) -> None: + softap = dut[0] + station = dut[1] + + assert station.app.sdkconfig['ESP_WIFI_SOFTAP_SUPPORT'] is False + ssid = softap.app.sdkconfig.get('ESP_WIFI_SSID') + password = softap.app.sdkconfig.get('ESP_WIFI_PASSWORD') + assert station.app.sdkconfig.get('ESP_WIFI_SSID') == ssid + assert station.app.sdkconfig.get('ESP_WIFI_PASSWORD') == password + + tag = 'wifi station' + station.expect(f'{tag}: got ip:', timeout=60) + station.expect(f'{tag}: connected to ap SSID:{ssid} password:{password}', timeout=60) + softap.expect('station .+ join, AID=', timeout=60) diff --git a/examples/wifi/getting_started/softAP/sdkconfig.ci.c3eco7 b/examples/wifi/getting_started/softAP/sdkconfig.ci.c3eco7 new file mode 100644 index 0000000000..ad055155c9 --- /dev/null +++ b/examples/wifi/getting_started/softAP/sdkconfig.ci.c3eco7 @@ -0,0 +1,2 @@ +CONFIG_IDF_TARGET="esp32c3" +CONFIG_ESP32C3_REV_MIN_101=y diff --git a/examples/wifi/getting_started/softAP/sdkconfig.ci.esp32c2eco4_xtal26m b/examples/wifi/getting_started/softAP/sdkconfig.ci.esp32c2eco4_xtal26m new file mode 100644 index 0000000000..651a6cc578 --- /dev/null +++ b/examples/wifi/getting_started/softAP/sdkconfig.ci.esp32c2eco4_xtal26m @@ -0,0 +1,3 @@ +CONFIG_IDF_TARGET="esp32c2" +CONFIG_XTAL_FREQ_26=y +CONFIG_ESP32C2_REV_MIN_200=y diff --git a/examples/wifi/getting_started/station/sdkconfig.ci.c3eco7 b/examples/wifi/getting_started/station/sdkconfig.ci.c3eco7 new file mode 100644 index 0000000000..ad055155c9 --- /dev/null +++ b/examples/wifi/getting_started/station/sdkconfig.ci.c3eco7 @@ -0,0 +1,2 @@ +CONFIG_IDF_TARGET="esp32c3" +CONFIG_ESP32C3_REV_MIN_101=y diff --git a/examples/wifi/getting_started/station/sdkconfig.ci.esp32c2eco4_xtal26m b/examples/wifi/getting_started/station/sdkconfig.ci.esp32c2eco4_xtal26m new file mode 100644 index 0000000000..651a6cc578 --- /dev/null +++ b/examples/wifi/getting_started/station/sdkconfig.ci.esp32c2eco4_xtal26m @@ -0,0 +1,3 @@ +CONFIG_IDF_TARGET="esp32c2" +CONFIG_XTAL_FREQ_26=y +CONFIG_ESP32C2_REV_MIN_200=y diff --git a/examples/wifi/power_save/pytest_wifi_power_save.py b/examples/wifi/power_save/pytest_wifi_power_save.py index d409ba325b..f667d8d9e7 100644 --- a/examples/wifi/power_save/pytest_wifi_power_save.py +++ b/examples/wifi/power_save/pytest_wifi_power_save.py @@ -1,6 +1,5 @@ -# SPDX-FileCopyrightText: 2021-2023 Espressif Systems (Shanghai) CO LTD +# SPDX-FileCopyrightText: 2021-2025 Espressif Systems (Shanghai) CO LTD # SPDX-License-Identifier: Apache-2.0 - import logging import pexpect @@ -75,3 +74,32 @@ def test_wifi_power_save_pd_top(dut: Dut) -> None: ) def test_wifi_power_save_esp32c2_26mhz(dut: Dut) -> None: _run_test(dut) + + +@pytest.mark.wifi_ap +@pytest.mark.xtal_26mhz +@pytest.mark.esp32c2 +@pytest.mark.esp32c2eco4 +@pytest.mark.parametrize( + 'config, baud', + [ + ('c2eco4_xtal26m', '74880',), + ], + indirect=True, +) +def test_wifi_power_save_esp32c2eco4_26mhz(dut: Dut) -> None: + _run_test(dut) + + +@pytest.mark.wifi_ap +@pytest.mark.esp32c3 +@pytest.mark.esp32c3eco7 +@pytest.mark.parametrize( + 'config', + [ + ('c3eco7',) + ], + indirect=True, +) +def test_wifi_power_save_esp32c3eco7(dut: Dut) -> None: + _run_test(dut) diff --git a/examples/wifi/power_save/sdkconfig.ci.c2eco4_xtal26m b/examples/wifi/power_save/sdkconfig.ci.c2eco4_xtal26m new file mode 100644 index 0000000000..a302168187 --- /dev/null +++ b/examples/wifi/power_save/sdkconfig.ci.c2eco4_xtal26m @@ -0,0 +1,4 @@ +CONFIG_IDF_TARGET="esp32c2" +CONFIG_XTAL_FREQ_26=y +CONFIG_EXAMPLE_GET_AP_INFO_FROM_STDIN=y +CONFIG_ESP32C2_REV_MIN_200=y diff --git a/examples/wifi/power_save/sdkconfig.ci.c3eco7 b/examples/wifi/power_save/sdkconfig.ci.c3eco7 new file mode 100644 index 0000000000..6b25329043 --- /dev/null +++ b/examples/wifi/power_save/sdkconfig.ci.c3eco7 @@ -0,0 +1,3 @@ +CONFIG_IDF_TARGET="esp32c3" +CONFIG_ESP32C3_REV_MIN_101=y +CONFIG_EXAMPLE_GET_AP_INFO_FROM_STDIN=y diff --git a/tools/ci/exclude_check_tools_files.txt b/tools/ci/exclude_check_tools_files.txt index 91b0ae0231..ae484902e9 100644 --- a/tools/ci/exclude_check_tools_files.txt +++ b/tools/ci/exclude_check_tools_files.txt @@ -42,3 +42,4 @@ tools/ci/get_known_failure_cases_file.py tools/unit-test-app/**/* tools/bt/bt_hci_to_btsnoop.py tools/bt/README.md +tools/ci/dynamic_pipelines/templates/known_generate_test_child_pipeline_warnings.yml diff --git a/tools/ci/idf_pytest/constants.py b/tools/ci/idf_pytest/constants.py index 98d6166fb3..7d037a5acd 100644 --- a/tools/ci/idf_pytest/constants.py +++ b/tools/ci/idf_pytest/constants.py @@ -105,7 +105,9 @@ ENV_MARKERS = { 'generic_multi_device': 'generic multiple devices whose corresponding gpio pins are connected to each other.', 'twai_network': 'multiple runners form a TWAI network.', 'sdio_master_slave': 'Test sdio multi board.', - 'usj_device': 'Test usb_serial_jtag and usb_serial_jtag is used as serial only (not console)' + 'usj_device': 'Test usb_serial_jtag and usb_serial_jtag is used as serial only (not console)', + 'esp32c3eco7': 'esp32c3 major version(v1.1) chips', + 'esp32c2eco4': 'esp32c2 major version(v2.0) chips', } diff --git a/tools/test_apps/phy/phy_tsens/pytest_phy_tsens.py b/tools/test_apps/phy/phy_tsens/pytest_phy_tsens.py index 5c19ea60ef..1883fa7452 100644 --- a/tools/test_apps/phy/phy_tsens/pytest_phy_tsens.py +++ b/tools/test_apps/phy/phy_tsens/pytest_phy_tsens.py @@ -1,6 +1,5 @@ -# SPDX-FileCopyrightText: 2021-2023 Espressif Systems (Shanghai) CO LTD +# SPDX-FileCopyrightText: 2021-2025 Espressif Systems (Shanghai) CO LTD # SPDX-License-Identifier: Apache-2.0 - import random import string from typing import Tuple @@ -190,3 +189,56 @@ def test_phy_tsens_coexist_c2_xtal26m(dut: Tuple[Dut, Dut]) -> None: _dut.expect('boot:') _dut.expect('esp>') run_phy_tsens_test_with_light_sleep(dut) + + +@pytest.mark.wifi_two_dut +@pytest.mark.xtal_26mhz +@pytest.mark.esp32c2 +@pytest.mark.esp32c2eco4 +@pytest.mark.parametrize( + 'count, config, baud', + [ + (2, 'c2_eco4', '74880'), + ], + indirect=True, +) +def test_phy_tsens_coexist_c2eco4_xtal26m(dut: Tuple[Dut, Dut]) -> None: + for _dut in dut: + _dut.expect('esp>') + run_phy_tsens_test(dut) + for _dut in dut: + _dut.write('restart') + _dut.expect('boot:') + _dut.expect('esp>') + run_phy_tsens_test_init_wifi_first(dut) + for _dut in dut: + _dut.write('restart') + _dut.expect('boot:') + _dut.expect('esp>') + run_phy_tsens_test_with_light_sleep(dut) + + +@pytest.mark.wifi_two_dut +@pytest.mark.esp32c3eco7 +@pytest.mark.esp32c3 +@pytest.mark.parametrize( + 'count, config,', + [ + (2, 'c3_eco7',), + ], + indirect=True, +) +def test_phy_tsens_coexist_c3eco7(dut: Tuple[Dut, Dut]) -> None: + for _dut in dut: + _dut.expect('esp>') + run_phy_tsens_test(dut) + for _dut in dut: + _dut.write('restart') + _dut.expect('boot:') + _dut.expect('esp>') + run_phy_tsens_test_init_wifi_first(dut) + for _dut in dut: + _dut.write('restart') + _dut.expect('boot:') + _dut.expect('esp>') + run_phy_tsens_test_with_light_sleep(dut) diff --git a/tools/test_apps/phy/phy_tsens/sdkconfig.ci.c2_eco4 b/tools/test_apps/phy/phy_tsens/sdkconfig.ci.c2_eco4 index 0a1996d938..b9cda6e21a 100644 --- a/tools/test_apps/phy/phy_tsens/sdkconfig.ci.c2_eco4 +++ b/tools/test_apps/phy/phy_tsens/sdkconfig.ci.c2_eco4 @@ -1,2 +1,3 @@ CONFIG_IDF_TARGET="esp32c2" CONFIG_ESP32C2_REV_MIN_200=y +CONFIG_XTAL_FREQ_26=y From cd7d6f1c124b0c9ce024a9a0cad780b94761cf04 Mon Sep 17 00:00:00 2001 From: luaijun Date: Fri, 18 Apr 2025 11:15:12 +0800 Subject: [PATCH 2/2] fix: pytest did not recognize test cases --- .gitlab/ci/target-test.yml | 16 ++++++++-------- .../esp_wifi/test_apps/.build-test-rules.yml | 2 ++ .../wifi_connect/pytest_wifi_connect.py | 10 ++++------ .../wifi_function/pytest_wifi_function.py | 15 +++++++-------- .../test_apps/pytest_wpa_supplicant_ut.py | 8 +++----- examples/bluetooth/nimble/pytest_nimble_test.py | 10 ++++------ .../pytest_wifi_getting_started.py | 6 ++---- .../wifi/power_save/pytest_wifi_power_save.py | 10 ++++------ tools/ci/idf_pytest/constants.py | 7 ++++--- .../test_apps/phy/phy_tsens/pytest_phy_tsens.py | 10 ++++------ 10 files changed, 42 insertions(+), 52 deletions(-) diff --git a/.gitlab/ci/target-test.yml b/.gitlab/ci/target-test.yml index 71c1ba108b..c1fab4156d 100644 --- a/.gitlab/ci/target-test.yml +++ b/.gitlab/ci/target-test.yml @@ -335,7 +335,7 @@ pytest_examples_esp32c3eco7_wifi_ap: needs: - job: build_pytest_examples_esp32c3 artifacts: false - tags: [ esp32c3eco7, wifi_ap ,esp32c3] + tags: [ wifi_ap_eco ,esp32c3] pytest_examples_esp32s3_wifi_ap: extends: @@ -380,7 +380,7 @@ pytest_examples_esp32c2eco4_26m_wifi_ap: needs: - job: build_pytest_examples_esp32c2 artifacts: false - tags: [ esp32c2eco4, wifi_ap, xtal_26mhz ,esp32c2 ] + tags: [ wifi_ap_eco, xtal_26mhz , esp32c2] pytest_examples_esp32c6_wifi_ap: extends: @@ -544,7 +544,7 @@ pytest_examples_esp32c3eco7_wifi_two_dut: needs: - job: build_pytest_examples_esp32c3 artifacts: false - tags: [ esp32c3eco7, wifi_two_dut, esp32c3 ] + tags: [ wifi_two_dut_eco, esp32c3 ] pytest_examples_esp32s3_wifi_two_dut: extends: @@ -571,7 +571,7 @@ pytest_examples_esp32c2eco4_wifi_two_dut: needs: - job: build_pytest_examples_esp32c2 artifacts: false - tags: [ esp32c2eco4, wifi_two_dut, xtal_26mhz , esp32c2] + tags: [ wifi_two_dut_eco, xtal_26mhz , esp32c2] pytest_examples_esp32c3_flash_encryption: extends: @@ -1498,7 +1498,7 @@ pytest_test_apps_esp32c2eco4_generic: needs: - job: build_pytest_test_apps_esp32c2 artifacts: false - tags: [ esp32c2eco4, generic, xtal_26mhz , esp32c2] + tags: [ generic_eco, xtal_26mhz , esp32c2] pytest_test_apps_esp32c3_generic: extends: @@ -1516,7 +1516,7 @@ pytest_test_apps_esp32c3eco7_generic: needs: - job: build_pytest_test_apps_esp32c3 artifacts: false - tags: [ esp32c3eco7, generic , esp32c3] + tags: [ generic_eco , esp32c3] pytest_test_apps_esp32c6_generic: extends: @@ -1606,7 +1606,7 @@ pytest_test_apps_esp32c2eco4_wifi_two_dut: needs: - job: build_pytest_test_apps_esp32c2 artifacts: false - tags: [ esp32c2eco4, wifi_two_dut, xtal_26mhz, esp32c2 ] + tags: [ wifi_two_dut_eco, xtal_26mhz, esp32c2 ] pytest_test_apps_esp32c3eco7_wifi_two_dut: extends: @@ -1615,4 +1615,4 @@ pytest_test_apps_esp32c3eco7_wifi_two_dut: needs: - job: build_pytest_test_apps_esp32c3 artifacts: false - tags: [ esp32c3eco7, wifi_two_dut, esp32c3] + tags: [ wifi_two_dut_eco, esp32c3] diff --git a/components/esp_wifi/test_apps/.build-test-rules.yml b/components/esp_wifi/test_apps/.build-test-rules.yml index bf19dc53b2..50782379c6 100644 --- a/components/esp_wifi/test_apps/.build-test-rules.yml +++ b/components/esp_wifi/test_apps/.build-test-rules.yml @@ -10,3 +10,5 @@ components/esp_wifi/test_apps/wifi_connect: components/esp_wifi/test_apps/wifi_function: disable: - if: SOC_WIFI_SUPPORTED != 1 + disable_test: + - if: SOC_WIFI_SUPPORTED != 1 diff --git a/components/esp_wifi/test_apps/wifi_connect/pytest_wifi_connect.py b/components/esp_wifi/test_apps/wifi_connect/pytest_wifi_connect.py index f41d4ccb30..5a9def92c5 100644 --- a/components/esp_wifi/test_apps/wifi_connect/pytest_wifi_connect.py +++ b/components/esp_wifi/test_apps/wifi_connect/pytest_wifi_connect.py @@ -28,13 +28,12 @@ def test_wifi_connect_cases_esp32c2_xtal26m(case_tester: CaseTester) -> None: @pytest.mark.esp32c2 -@pytest.mark.esp32c2eco4 -@pytest.mark.wifi_two_dut +@pytest.mark.wifi_two_dut_eco @pytest.mark.xtal_26mhz @pytest.mark.parametrize( 'count, config, baud', [ - (2, 'esp32c2eco4_xtal26m', '74880'), + (2, 'esp32c2eco4_xtal26m', '74880'), ], indirect=True, ) @@ -43,12 +42,11 @@ def test_wifi_connect_cases_esp32c2eco4_xtal26m(case_tester: CaseTester) -> None @pytest.mark.esp32c3 -@pytest.mark.wifi_two_dut -@pytest.mark.esp32c3eco7 +@pytest.mark.wifi_two_dut_eco @pytest.mark.parametrize( 'count, config', [ - (2, 'esp32c3eco7',), + (2, 'esp32c3eco7'), ], indirect=True, ) diff --git a/components/esp_wifi/test_apps/wifi_function/pytest_wifi_function.py b/components/esp_wifi/test_apps/wifi_function/pytest_wifi_function.py index 13f27f5e04..a37dde3bda 100644 --- a/components/esp_wifi/test_apps/wifi_function/pytest_wifi_function.py +++ b/components/esp_wifi/test_apps/wifi_function/pytest_wifi_function.py @@ -17,6 +17,7 @@ def test_wifi_unit_test(dut: Dut) -> None: @pytest.mark.esp32c2 @pytest.mark.xtal_26mhz +@pytest.mark.generic @pytest.mark.parametrize( 'config, baud', [ @@ -29,13 +30,12 @@ def test_wifi_connect_cases_esp32c2_xtal26m(dut: Dut) -> None: @pytest.mark.esp32c2 -@pytest.mark.esp32c2eco4 @pytest.mark.xtal_26mhz -@pytest.mark.generic +@pytest.mark.generic_eco @pytest.mark.parametrize( - 'config, target, baud', + 'config, baud', [ - ('esp32c2eco4_xtal26m', 'esp32c2', '74880'), + ('esp32c2eco4_xtal26m', '74880'), ], indirect=True, ) @@ -44,12 +44,11 @@ def test_wifi_unit_test_esp32c2eco4_xtal26m(dut: Dut) -> None: @pytest.mark.esp32c3 -@pytest.mark.esp32c3eco7 -@pytest.mark.generic +@pytest.mark.generic_eco @pytest.mark.parametrize( - 'config, target', + 'config', [ - ('esp32c3eco7','esp32c3') + ('esp32c3eco7') ], indirect=True, ) 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 e0237b352b..19d64208b4 100644 --- a/components/wpa_supplicant/test_apps/pytest_wpa_supplicant_ut.py +++ b/components/wpa_supplicant/test_apps/pytest_wpa_supplicant_ut.py @@ -32,8 +32,7 @@ def test_wpa_supplicant_ut_offchan(case_tester: CaseTester) -> None: @pytest.mark.esp32c2 -@pytest.mark.wifi_two_dut -@pytest.mark.esp32c2eco4 +@pytest.mark.wifi_two_dut_eco @pytest.mark.xtal_26mhz @pytest.mark.parametrize( 'count, config, baud', @@ -53,10 +52,9 @@ def test_wpa_supplicant_esp32c2eco4_xtal26mhz(case_tester: CaseTester) -> None: @pytest.mark.esp32c3 -@pytest.mark.wifi_two_dut -@pytest.mark.esp32c3eco7 +@pytest.mark.wifi_two_dut_eco @pytest.mark.parametrize( - 'count, config,', + 'count, config', [ ( 2, diff --git a/examples/bluetooth/nimble/pytest_nimble_test.py b/examples/bluetooth/nimble/pytest_nimble_test.py index fc9b3d30ff..f3606f076e 100644 --- a/examples/bluetooth/nimble/pytest_nimble_test.py +++ b/examples/bluetooth/nimble/pytest_nimble_test.py @@ -63,12 +63,11 @@ def test_power_save_conn_esp32c2_26mhz(dut: Tuple[IdfDut, IdfDut]) -> None: # Case 2: BLE power save test for ESP32C2ECO4 -@pytest.mark.wifi_two_dut -@pytest.mark.xtal_26mhz @pytest.mark.esp32c2 -@pytest.mark.esp32c2eco4 +@pytest.mark.wifi_two_dut_eco +@pytest.mark.xtal_26mhz @pytest.mark.parametrize( - 'config, count, app_path, baud', + 'config, count, app_path, baud,', [ ( 'esp32c2eco4_xtal26m', @@ -94,9 +93,8 @@ def test_power_save_conn_esp32c2eco4(dut: Tuple[IdfDut, IdfDut]) -> None: # Case 2: BLE power save test for ESP32C3ECO7 -@pytest.mark.wifi_two_dut @pytest.mark.esp32c3 -@pytest.mark.esp32c3eco7 +@pytest.mark.wifi_two_dut_eco @pytest.mark.parametrize( 'config, count, app_path', [ diff --git a/examples/wifi/getting_started/pytest_wifi_getting_started.py b/examples/wifi/getting_started/pytest_wifi_getting_started.py index 81bfc46fd2..0fb76c0f33 100644 --- a/examples/wifi/getting_started/pytest_wifi_getting_started.py +++ b/examples/wifi/getting_started/pytest_wifi_getting_started.py @@ -70,9 +70,8 @@ def test_wifi_getting_started_esp32c2_xtal_26mhz(dut: Tuple[IdfDut, IdfDut]) -> softap.expect('station .+ join, AID=', timeout=60) -@pytest.mark.wifi_two_dut +@pytest.mark.wifi_two_dut_eco @pytest.mark.xtal_26mhz -@pytest.mark.esp32c2eco4 @pytest.mark.esp32c2 @pytest.mark.parametrize( 'count, config, baud, app_path', @@ -102,8 +101,7 @@ def test_wifi_getting_started_esp32c2eco4_xtal_26mhz(dut: Tuple[IdfDut, IdfDut]) softap.expect('station .+ join, AID=', timeout=60) -@pytest.mark.wifi_two_dut -@pytest.mark.esp32c3eco7 +@pytest.mark.wifi_two_dut_eco @pytest.mark.esp32c3 @pytest.mark.parametrize( 'count, config, app_path', diff --git a/examples/wifi/power_save/pytest_wifi_power_save.py b/examples/wifi/power_save/pytest_wifi_power_save.py index f667d8d9e7..a1078f9fee 100644 --- a/examples/wifi/power_save/pytest_wifi_power_save.py +++ b/examples/wifi/power_save/pytest_wifi_power_save.py @@ -76,14 +76,13 @@ def test_wifi_power_save_esp32c2_26mhz(dut: Dut) -> None: _run_test(dut) -@pytest.mark.wifi_ap +@pytest.mark.wifi_ap_eco @pytest.mark.xtal_26mhz @pytest.mark.esp32c2 -@pytest.mark.esp32c2eco4 @pytest.mark.parametrize( 'config, baud', [ - ('c2eco4_xtal26m', '74880',), + ('c2eco4_xtal26m', '74880'), ], indirect=True, ) @@ -91,13 +90,12 @@ def test_wifi_power_save_esp32c2eco4_26mhz(dut: Dut) -> None: _run_test(dut) -@pytest.mark.wifi_ap +@pytest.mark.wifi_ap_eco @pytest.mark.esp32c3 -@pytest.mark.esp32c3eco7 @pytest.mark.parametrize( 'config', [ - ('c3eco7',) + ('c3eco7') ], indirect=True, ) diff --git a/tools/ci/idf_pytest/constants.py b/tools/ci/idf_pytest/constants.py index 7d037a5acd..2fdfeba4ff 100644 --- a/tools/ci/idf_pytest/constants.py +++ b/tools/ci/idf_pytest/constants.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2023 Espressif Systems (Shanghai) CO LTD +# SPDX-FileCopyrightText: 2023-2025 Espressif Systems (Shanghai) CO LTD # SPDX-License-Identifier: Apache-2.0 """ Pytest Related Constants. Don't import third-party packages here. @@ -106,8 +106,9 @@ ENV_MARKERS = { 'twai_network': 'multiple runners form a TWAI network.', 'sdio_master_slave': 'Test sdio multi board.', 'usj_device': 'Test usb_serial_jtag and usb_serial_jtag is used as serial only (not console)', - 'esp32c3eco7': 'esp32c3 major version(v1.1) chips', - 'esp32c2eco4': 'esp32c2 major version(v2.0) chips', + 'wifi_ap_eco': 'a wifi AP in the environment for major version chips', + 'generic_eco': 'tests should be run on generic runners for major version chips', + 'wifi_two_dut_eco': 'tests should be run on runners which has two wifi duts connected for major version chips', } diff --git a/tools/test_apps/phy/phy_tsens/pytest_phy_tsens.py b/tools/test_apps/phy/phy_tsens/pytest_phy_tsens.py index 1883fa7452..91e246f602 100644 --- a/tools/test_apps/phy/phy_tsens/pytest_phy_tsens.py +++ b/tools/test_apps/phy/phy_tsens/pytest_phy_tsens.py @@ -191,10 +191,9 @@ def test_phy_tsens_coexist_c2_xtal26m(dut: Tuple[Dut, Dut]) -> None: run_phy_tsens_test_with_light_sleep(dut) -@pytest.mark.wifi_two_dut +@pytest.mark.wifi_two_dut_eco @pytest.mark.xtal_26mhz @pytest.mark.esp32c2 -@pytest.mark.esp32c2eco4 @pytest.mark.parametrize( 'count, config, baud', [ @@ -218,13 +217,12 @@ def test_phy_tsens_coexist_c2eco4_xtal26m(dut: Tuple[Dut, Dut]) -> None: run_phy_tsens_test_with_light_sleep(dut) -@pytest.mark.wifi_two_dut -@pytest.mark.esp32c3eco7 +@pytest.mark.wifi_two_dut_eco @pytest.mark.esp32c3 @pytest.mark.parametrize( - 'count, config,', + 'count, config, ', [ - (2, 'c3_eco7',), + (2, 'c3_eco7', ), ], indirect=True, )