diff --git a/components/driver/test_apps/.build-test-rules.yml b/components/driver/test_apps/.build-test-rules.yml index 0a4a9f9ef56..b39351971b8 100644 --- a/components/driver/test_apps/.build-test-rules.yml +++ b/components/driver/test_apps/.build-test-rules.yml @@ -79,9 +79,6 @@ components/driver/test_apps/legacy_twai: disable: - if: SOC_TWAI_SUPPORTED != 1 or SOC_TWAI_SUPPORT_FD == 1 reason: legacy driver doesn't support FD - - if: IDF_TARGET == "esp32p4" - temporary: true - reason: p4 rev3 migration # TODO: IDF-14393 depends_filepatterns: - components/driver/twai/**/* depends_components: diff --git a/components/driver/test_apps/legacy_twai/README.md b/components/driver/test_apps/legacy_twai/README.md index 2eccd3e551a..bf6a3f380d3 100644 --- a/components/driver/test_apps/legacy_twai/README.md +++ b/components/driver/test_apps/legacy_twai/README.md @@ -1,5 +1,5 @@ -| Supported Targets | ESP32 | ESP32-C3 | ESP32-C6 | ESP32-H2 | ESP32-S2 | ESP32-S3 | -| ----------------- | ----- | -------- | -------- | -------- | -------- | -------- | +| Supported Targets | ESP32 | ESP32-C3 | ESP32-C6 | ESP32-H2 | ESP32-P4 | ESP32-S2 | ESP32-S3 | +| ----------------- | ----- | -------- | -------- | -------- | -------- | -------- | -------- | # Enable Socket CAN Device with bitrate 250Kbps diff --git a/components/driver/test_apps/legacy_twai/pytest_twai.py b/components/driver/test_apps/legacy_twai/pytest_twai.py index 1c6086ceafe..f8d4b70a7aa 100644 --- a/components/driver/test_apps/legacy_twai/pytest_twai.py +++ b/components/driver/test_apps/legacy_twai/pytest_twai.py @@ -23,7 +23,9 @@ from pytest_embedded_idf.utils import idf_parametrize ], indirect=True, ) -@idf_parametrize('target', ['esp32', 'esp32c3', 'esp32c6', 'esp32h2', 'esp32s2', 'esp32s3'], indirect=['target']) +@idf_parametrize( + 'target', ['esp32', 'esp32c3', 'esp32c6', 'esp32h2', 'esp32s2', 'esp32s3', 'esp32p4'], indirect=['target'] +) def test_legacy_twai_self(dut: Dut) -> None: dut.run_all_single_board_cases(group='twai-loop-back') @@ -89,7 +91,9 @@ def fixture_create_socket_can() -> Bus: ], indirect=True, ) -@idf_parametrize('target', ['esp32', 'esp32c3', 'esp32c6', 'esp32h2', 'esp32s2', 'esp32s3'], indirect=['target']) +@idf_parametrize( + 'target', ['esp32', 'esp32c3', 'esp32c6', 'esp32h2', 'esp32s2', 'esp32s3', 'esp32p4'], indirect=['target'] +) def test_legacy_twai_listen_only(dut: Dut, socket_can: Bus) -> None: esp_reset_and_wait_ready(dut) @@ -117,7 +121,9 @@ def test_legacy_twai_listen_only(dut: Dut, socket_can: Bus) -> None: ], indirect=True, ) -@idf_parametrize('target', ['esp32', 'esp32c3', 'esp32c6', 'esp32h2', 'esp32s2', 'esp32s3'], indirect=['target']) +@idf_parametrize( + 'target', ['esp32', 'esp32c3', 'esp32c6', 'esp32h2', 'esp32s2', 'esp32s3', 'esp32p4'], indirect=['target'] +) def test_legacy_twai_remote_request(dut: Dut, socket_can: Bus) -> None: esp_reset_and_wait_ready(dut) diff --git a/components/esp_driver_twai/test_apps/.build-test-rules.yml b/components/esp_driver_twai/test_apps/.build-test-rules.yml index 96a4646be01..3cae20b47dc 100644 --- a/components/esp_driver_twai/test_apps/.build-test-rules.yml +++ b/components/esp_driver_twai/test_apps/.build-test-rules.yml @@ -1,8 +1,5 @@ components/esp_driver_twai/test_apps/test_twai: disable: - if: SOC_TWAI_SUPPORTED != 1 - - if: IDF_TARGET == "esp32p4" - temporary: true - reason: p4 rev3 migration # TODO: IDF-14393 depends_components: - esp_driver_twai diff --git a/components/esp_driver_twai/test_apps/test_twai/README.md b/components/esp_driver_twai/test_apps/test_twai/README.md index b5f247a643d..46d16c788ce 100644 --- a/components/esp_driver_twai/test_apps/test_twai/README.md +++ b/components/esp_driver_twai/test_apps/test_twai/README.md @@ -1,2 +1,2 @@ -| Supported Targets | ESP32 | ESP32-C3 | ESP32-C5 | ESP32-C6 | ESP32-H2 | ESP32-S2 | ESP32-S3 | -| ----------------- | ----- | -------- | -------- | -------- | -------- | -------- | -------- | +| Supported Targets | ESP32 | ESP32-C3 | ESP32-C5 | ESP32-C6 | ESP32-H2 | ESP32-P4 | ESP32-S2 | ESP32-S3 | +| ----------------- | ----- | -------- | -------- | -------- | -------- | -------- | -------- | -------- | diff --git a/components/esp_driver_twai/test_apps/test_twai/pytest_driver_twai.py b/components/esp_driver_twai/test_apps/test_twai/pytest_driver_twai.py index 6c22dad4886..f1443576459 100644 --- a/components/esp_driver_twai/test_apps/test_twai/pytest_driver_twai.py +++ b/components/esp_driver_twai/test_apps/test_twai/pytest_driver_twai.py @@ -16,7 +16,6 @@ from pytest_embedded_idf.utils import soc_filtered_targets # Loop Back Tests # --------------------------------------------------------------------------- @pytest.mark.generic -@pytest.mark.temp_skip_ci(targets=['esp32p4'], reason='p4 rev3 migration, IDF-14393') @pytest.mark.parametrize('config', ['release', 'cache_safe'], indirect=True) @idf_parametrize('target', soc_filtered_targets('SOC_TWAI_SUPPORTED == 1'), indirect=['target']) def test_driver_twai_loopbk(dut: Dut) -> None: @@ -75,7 +74,6 @@ def fixture_create_socket_can() -> Bus: # Interactive Tests # --------------------------------------------------------------------------- @pytest.mark.twai_std -@pytest.mark.temp_skip_ci(targets=['esp32p4'], reason='p4 rev3 migration, IDF-14393') @pytest.mark.parametrize('config', ['release'], indirect=True) @idf_parametrize('target', soc_filtered_targets('SOC_TWAI_SUPPORTED == 1'), indirect=['target']) def test_driver_twai_listen_only(dut: Dut, socket_can: Bus) -> None: @@ -97,7 +95,6 @@ def test_driver_twai_listen_only(dut: Dut, socket_can: Bus) -> None: @pytest.mark.twai_std -@pytest.mark.temp_skip_ci(targets=['esp32p4'], reason='p4 rev3 migration, IDF-14393') @pytest.mark.parametrize('config', ['release'], indirect=True) @idf_parametrize('target', soc_filtered_targets('SOC_TWAI_SUPPORTED == 1'), indirect=['target']) def test_driver_twai_remote_request(dut: Dut, socket_can: Bus) -> None: diff --git a/examples/peripherals/.build-test-rules.yml b/examples/peripherals/.build-test-rules.yml index f44e6ad3fc4..e8793972f99 100644 --- a/examples/peripherals/.build-test-rules.yml +++ b/examples/peripherals/.build-test-rules.yml @@ -499,10 +499,6 @@ examples/peripherals/twai/twai_error_recovery: examples/peripherals/twai/twai_network/twai_listen_only: disable: - if: SOC_TWAI_SUPPORTED != 1 - disable_test: - - if: IDF_TARGET in ["esp32p4", "esp32h2"] - temporary: true - reason: p4 rev3 migration # TODO: IDF-14393 depends_components: - esp_driver_twai @@ -511,10 +507,6 @@ examples/peripherals/twai/twai_network/twai_listen_only: examples/peripherals/twai/twai_network/twai_sender: disable: - if: SOC_TWAI_SUPPORTED != 1 - disable_test: - - if: IDF_TARGET in ["esp32p4", "esp32c5"] - temporary: true - reason: p4 rev3 migration # TODO: IDF-14393 depends_components: - esp_driver_twai diff --git a/examples/peripherals/twai/twai_network/pytest_twai_network.py b/examples/peripherals/twai/twai_network/pytest_twai_network.py index 2b0a31aae11..b0432d99b71 100644 --- a/examples/peripherals/twai/twai_network/pytest_twai_network.py +++ b/examples/peripherals/twai/twai_network/pytest_twai_network.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2025 Espressif Systems (Shanghai) CO LTD +# SPDX-FileCopyrightText: 2025-2026 Espressif Systems (Shanghai) CO LTD # SPDX-License-Identifier: CC0-1.0 import os.path import subprocess @@ -8,9 +8,6 @@ import pytest from can import Bus from can import Message from pytest_embedded_idf import IdfDut -from pytest_embedded_idf.utils import soc_filtered_targets - -TWAI_SUPPORTED_TARGETS = soc_filtered_targets('SOC_TWAI_SUPPORTED == 1') # Socket CAN fixture @@ -28,17 +25,6 @@ def fixture_create_socket_can() -> Bus: subprocess.run(stop_command, shell=True, capture_output=True, text=True) -# Generate minimal combinations that each target appears in each app -def generate_target_combinations(target_list: list, count: int = 2) -> list: - combinations = [] - num_targets = len(target_list) - for round_num in range(num_targets): - selected_targets = [target_list[(round_num + i) % num_targets] for i in range(count)] - combinations.append('|'.join(selected_targets)) - - return combinations - - @pytest.mark.twai_std @pytest.mark.parametrize('count', [2], indirect=True) @pytest.mark.timeout(120) @@ -50,16 +36,24 @@ def generate_target_combinations(target_list: list, count: int = 2) -> list: f'{os.path.join(os.path.dirname(__file__), "twai_sender")}', target_combo, ) - for target_combo in generate_target_combinations(TWAI_SUPPORTED_TARGETS) + for target_combo in [ # Test each target combination and its reverse + 'esp32|esp32c6', + 'esp32c6|esp32', + 'esp32s2|esp32h2', + 'esp32h2|esp32s2', + 'esp32s3|esp32p4', + 'esp32p4|esp32s3', + 'esp32c3|esp32c5', + 'esp32c5|esp32c3', + ] ], indirect=True, ) -@pytest.mark.temp_skip_ci(targets=['esp32p4,*', '*,esp32p4'], reason='p4 rev3 migration, IDF-14393') def test_twai_network_multi(dut: Tuple[IdfDut, IdfDut], socket_can: Bus) -> None: # type: ignore """ Test TWAI network communication between two nodes: - - dut[0]: listener (first chip) - uses twai_listen_only - - dut[1]: sender (second chip) - uses twai_sender + - dut[0]: twai_listen_only + - dut[1]: twai_sender """ # Print chip information for debugging