mirror of
https://github.com/espressif/esp-idf.git
synced 2026-04-27 19:13:21 +00:00
ci: temp_skip_ci for p4
This commit is contained in:
@@ -19,6 +19,7 @@ TEST_SUBMENU_PATTERN_PYTEST = re.compile(rb'\s+\((\d+)\)\s+"([^"]+)"\r?\n')
|
||||
indirect=True,
|
||||
)
|
||||
@idf_parametrize('target', ['supported_targets'], indirect=['target'])
|
||||
@pytest.mark.temp_skip_ci(targets=['esp32p4'], reason='p4 rev3 migration')
|
||||
def test_app_update(dut: Dut) -> None:
|
||||
dut.run_all_single_board_cases(timeout=180)
|
||||
|
||||
@@ -32,6 +33,7 @@ def test_app_update(dut: Dut) -> None:
|
||||
indirect=True,
|
||||
)
|
||||
@idf_parametrize('target', ['supported_targets'], indirect=['target'])
|
||||
@pytest.mark.temp_skip_ci(targets=['esp32p4'], reason='p4 rev3 migration')
|
||||
def test_app_update_xip_psram(dut: Dut) -> None:
|
||||
dut.run_all_single_board_cases(timeout=180)
|
||||
|
||||
@@ -45,6 +47,7 @@ def test_app_update_xip_psram(dut: Dut) -> None:
|
||||
indirect=True,
|
||||
)
|
||||
@idf_parametrize('target', ['supported_targets'], indirect=['target'])
|
||||
@pytest.mark.temp_skip_ci(targets=['esp32p4'], reason='p4 rev3 migration')
|
||||
def test_app_update_xip_psram_rom_impl(dut: Dut) -> None:
|
||||
dut.run_all_single_board_cases(timeout=180)
|
||||
|
||||
@@ -58,6 +61,7 @@ def test_app_update_xip_psram_rom_impl(dut: Dut) -> None:
|
||||
indirect=True,
|
||||
)
|
||||
@idf_parametrize('target', ['esp32', 'esp32c3', 'esp32s3', 'esp32p4'], indirect=['target'])
|
||||
@pytest.mark.temp_skip_ci(targets=['esp32p4'], reason='p4 rev3 migration')
|
||||
def test_app_update_with_rollback(dut: Dut) -> None:
|
||||
dut.run_all_single_board_cases(timeout=180)
|
||||
|
||||
|
||||
@@ -26,6 +26,7 @@ from pytest_embedded_idf.utils import idf_parametrize
|
||||
@idf_parametrize(
|
||||
'target', ['esp32', 'esp32c3', 'esp32c6', 'esp32h2', 'esp32s2', 'esp32s3', 'esp32p4'], indirect=['target']
|
||||
)
|
||||
@pytest.mark.temp_skip_ci(targets=['esp32p4'], reason='p4 rev3 migration')
|
||||
def test_legacy_twai_self(dut: Dut) -> None:
|
||||
dut.run_all_single_board_cases(group='twai-loop-back')
|
||||
|
||||
@@ -94,6 +95,7 @@ def fixture_create_socket_can() -> Bus:
|
||||
@idf_parametrize(
|
||||
'target', ['esp32', 'esp32c3', 'esp32c6', 'esp32h2', 'esp32s2', 'esp32s3', 'esp32p4'], indirect=['target']
|
||||
)
|
||||
@pytest.mark.temp_skip_ci(targets=['esp32p4'], reason='p4 rev3 migration')
|
||||
def test_legacy_twai_listen_only(dut: Dut, socket_can: Bus) -> None:
|
||||
esp_reset_and_wait_ready(dut)
|
||||
|
||||
@@ -124,6 +126,7 @@ def test_legacy_twai_listen_only(dut: Dut, socket_can: Bus) -> None:
|
||||
@idf_parametrize(
|
||||
'target', ['esp32', 'esp32c3', 'esp32c6', 'esp32h2', 'esp32s2', 'esp32s3', 'esp32p4'], indirect=['target']
|
||||
)
|
||||
@pytest.mark.temp_skip_ci(targets=['esp32p4'], reason='p4 rev3 migration')
|
||||
def test_legacy_twai_remote_request(dut: Dut, socket_can: Bus) -> None:
|
||||
esp_reset_and_wait_ready(dut)
|
||||
|
||||
|
||||
@@ -15,6 +15,7 @@ from pytest_embedded_idf.utils import soc_filtered_targets
|
||||
indirect=True,
|
||||
)
|
||||
@idf_parametrize('target', ['supported_targets'], indirect=['target'])
|
||||
@pytest.mark.temp_skip_ci(targets=['esp32p4'], reason='p4 rev3 migration')
|
||||
def test_esp_common(dut: Dut) -> None:
|
||||
dut.run_all_single_board_cases()
|
||||
|
||||
@@ -29,6 +30,7 @@ def test_esp_common(dut: Dut) -> None:
|
||||
indirect=True,
|
||||
)
|
||||
@idf_parametrize('target', soc_filtered_targets('SOC_SPIRAM_SUPPORTED == 1'), indirect=['target'])
|
||||
@pytest.mark.temp_skip_ci(targets=['esp32p4'], reason='p4 rev3 migration')
|
||||
def test_esp_attr_psram_noinit(dut: Dut) -> None:
|
||||
dut.run_all_single_board_cases()
|
||||
|
||||
@@ -41,6 +43,7 @@ def test_esp_attr_psram_noinit(dut: Dut) -> None:
|
||||
indirect=True,
|
||||
)
|
||||
@idf_parametrize('target', soc_filtered_targets('SOC_SPIRAM_SUPPORTED == 1'), indirect=['target'])
|
||||
@pytest.mark.temp_skip_ci(targets=['esp32p4'], reason='p4 rev3 migration')
|
||||
def test_esp_attr_psram_noinit_multiple_stages(case_tester: Any) -> None:
|
||||
case_tester.run_all_multi_stage_cases()
|
||||
|
||||
@@ -55,6 +58,7 @@ def test_esp_attr_psram_noinit_multiple_stages(case_tester: Any) -> None:
|
||||
indirect=True,
|
||||
)
|
||||
@idf_parametrize('target', soc_filtered_targets('SOC_SPIRAM_SUPPORTED == 1'), indirect=['target'])
|
||||
@pytest.mark.temp_skip_ci(targets=['esp32p4'], reason='p4 rev3 migration')
|
||||
def test_esp_attr_psram(dut: Dut) -> None:
|
||||
dut.run_all_single_board_cases()
|
||||
|
||||
@@ -67,5 +71,6 @@ def test_esp_attr_psram(dut: Dut) -> None:
|
||||
indirect=True,
|
||||
)
|
||||
@idf_parametrize('target', soc_filtered_targets('SOC_SPIRAM_XIP_SUPPORTED == 1'), indirect=['target'])
|
||||
@pytest.mark.temp_skip_ci(targets=['esp32p4'], reason='p4 rev3 migration')
|
||||
def test_esp_attr_xip_psram(dut: Dut) -> None:
|
||||
dut.run_all_single_board_cases()
|
||||
|
||||
@@ -6,6 +6,7 @@ from pytest_embedded_idf.utils import soc_filtered_targets
|
||||
|
||||
|
||||
@pytest.mark.generic_multi_device
|
||||
@pytest.mark.temp_skip_ci(targets=['esp32c61'], reason='p4 rev3 migration # TODO: IDF-11442')
|
||||
@pytest.mark.temp_skip_ci(targets=['esp32p4'], reason='p4 rev3 migration # TODO: IDF-14396')
|
||||
@pytest.mark.parametrize('count', [2], indirect=True)
|
||||
@idf_parametrize('target', soc_filtered_targets('SOC_I2S_SUPPORTS_TDM == 1'), indirect=['target'])
|
||||
|
||||
@@ -3,9 +3,5 @@
|
||||
components/esp_driver_ledc/test_apps/ledc:
|
||||
disable:
|
||||
- if: SOC_LEDC_SUPPORTED != 1
|
||||
disable_test:
|
||||
- if: IDF_TARGET == "esp32p4"
|
||||
temporary: true
|
||||
reason: p4 rev3 migration # TODO: IDF-14398
|
||||
depends_components:
|
||||
- esp_driver_ledc
|
||||
|
||||
@@ -1,14 +1,12 @@
|
||||
# SPDX-FileCopyrightText: 2022-2025 Espressif Systems (Shanghai) CO LTD
|
||||
# SPDX-License-Identifier: CC0-1.0
|
||||
import os.path
|
||||
from typing import List
|
||||
from typing import Tuple
|
||||
|
||||
import pytest
|
||||
from pytest_embedded_idf import IdfDut
|
||||
|
||||
|
||||
def parameter_expand(existing_parameters: List[List[str]], value_list: List[str]) -> List[List[str]]:
|
||||
def parameter_expand(existing_parameters: list[list[str]], value_list: list[str]) -> list[list[str]]:
|
||||
ret = []
|
||||
for param in existing_parameters:
|
||||
ret.extend([param + [value] for value in value_list])
|
||||
@@ -52,7 +50,7 @@ c6_param_retention = [pytest.param(*param) for param in parameter_expand(esp32_c
|
||||
|
||||
|
||||
# Normal tests
|
||||
def test_sdio_flow(dut: Tuple[IdfDut, IdfDut]) -> None:
|
||||
def test_sdio_flow(dut: tuple[IdfDut, IdfDut]) -> None:
|
||||
dut[1].expect('Press ENTER to see the list of tests')
|
||||
dut[1].write('[sdio]')
|
||||
dut[1].expect('test_sdio: slave ready')
|
||||
@@ -73,7 +71,7 @@ def test_sdio_flow(dut: Tuple[IdfDut, IdfDut]) -> None:
|
||||
indirect=True,
|
||||
)
|
||||
@pytest.mark.parametrize('app_path, target, config', c6_param_default, indirect=True)
|
||||
def test_sdio_esp32_esp32c6(dut: Tuple[IdfDut, IdfDut]) -> None:
|
||||
def test_sdio_esp32_esp32c6(dut: tuple[IdfDut, IdfDut]) -> None:
|
||||
test_sdio_flow(dut)
|
||||
|
||||
|
||||
@@ -86,7 +84,7 @@ def test_sdio_esp32_esp32c6(dut: Tuple[IdfDut, IdfDut]) -> None:
|
||||
indirect=True,
|
||||
)
|
||||
@pytest.mark.parametrize('app_path, target, config', esp32_param_default, indirect=True)
|
||||
def test_sdio_esp32_esp32(dut: Tuple[IdfDut, IdfDut]) -> None:
|
||||
def test_sdio_esp32_esp32(dut: tuple[IdfDut, IdfDut]) -> None:
|
||||
test_sdio_flow(dut)
|
||||
|
||||
|
||||
@@ -99,7 +97,8 @@ def test_sdio_esp32_esp32(dut: Tuple[IdfDut, IdfDut]) -> None:
|
||||
indirect=True,
|
||||
)
|
||||
@pytest.mark.parametrize('app_path, target, config', c5_param_default, indirect=True)
|
||||
def test_sdio_esp32p4_esp32c5(dut: Tuple[IdfDut, IdfDut]) -> None:
|
||||
@pytest.mark.temp_skip_ci(targets=['esp32p4,*', '*,esp32p4'], reason='p4 rev3 migration')
|
||||
def test_sdio_esp32p4_esp32c5(dut: tuple[IdfDut, IdfDut]) -> None:
|
||||
test_sdio_flow(dut)
|
||||
|
||||
|
||||
@@ -112,12 +111,12 @@ def test_sdio_esp32p4_esp32c5(dut: Tuple[IdfDut, IdfDut]) -> None:
|
||||
indirect=True,
|
||||
)
|
||||
@pytest.mark.parametrize('app_path, target, config', c61_param_default, indirect=True)
|
||||
def test_sdio_esp32_esp32c61(dut: Tuple[IdfDut, IdfDut]) -> None:
|
||||
def test_sdio_esp32_esp32c61(dut: tuple[IdfDut, IdfDut]) -> None:
|
||||
test_sdio_flow(dut)
|
||||
|
||||
|
||||
# From host speed tests
|
||||
def test_sdio_speed_frhost_flow(dut: Tuple[IdfDut, IdfDut], expected_4b_speed: int, expected_1b_speed: int) -> None:
|
||||
def test_sdio_speed_frhost_flow(dut: tuple[IdfDut, IdfDut], expected_4b_speed: int, expected_1b_speed: int) -> None:
|
||||
dut[1].expect('Press ENTER to see the list of tests')
|
||||
dut[1].write('"SDIO_Slave: test from host (Performance)"')
|
||||
dut[1].expect('test_sdio: slave ready')
|
||||
@@ -145,7 +144,7 @@ def test_sdio_speed_frhost_flow(dut: Tuple[IdfDut, IdfDut], expected_4b_speed: i
|
||||
indirect=True,
|
||||
)
|
||||
@pytest.mark.parametrize('app_path, target, config', c6_param_default, indirect=True)
|
||||
def test_sdio_speed_frhost_esp32_esp32c6(dut: Tuple[IdfDut, IdfDut]) -> None:
|
||||
def test_sdio_speed_frhost_esp32_esp32c6(dut: tuple[IdfDut, IdfDut]) -> None:
|
||||
test_sdio_speed_frhost_flow(dut, 10000, 4000)
|
||||
|
||||
|
||||
@@ -158,7 +157,7 @@ def test_sdio_speed_frhost_esp32_esp32c6(dut: Tuple[IdfDut, IdfDut]) -> None:
|
||||
indirect=True,
|
||||
)
|
||||
@pytest.mark.parametrize('app_path, target, config', esp32_param_default, indirect=True)
|
||||
def test_sdio_speed_frhost_esp32_esp32(dut: Tuple[IdfDut, IdfDut]) -> None:
|
||||
def test_sdio_speed_frhost_esp32_esp32(dut: tuple[IdfDut, IdfDut]) -> None:
|
||||
test_sdio_speed_frhost_flow(dut, 12200, 4000)
|
||||
|
||||
|
||||
@@ -171,7 +170,8 @@ def test_sdio_speed_frhost_esp32_esp32(dut: Tuple[IdfDut, IdfDut]) -> None:
|
||||
indirect=True,
|
||||
)
|
||||
@pytest.mark.parametrize('app_path, target, config', c5_param_default, indirect=True)
|
||||
def test_sdio_speed_frhost_esp32p4_esp32c5(dut: Tuple[IdfDut, IdfDut]) -> None:
|
||||
@pytest.mark.temp_skip_ci(targets=['esp32p4,*', '*,esp32p4'], reason='p4 rev3 migration')
|
||||
def test_sdio_speed_frhost_esp32p4_esp32c5(dut: tuple[IdfDut, IdfDut]) -> None:
|
||||
test_sdio_speed_frhost_flow(dut, 10000, 4000)
|
||||
|
||||
|
||||
@@ -184,12 +184,12 @@ def test_sdio_speed_frhost_esp32p4_esp32c5(dut: Tuple[IdfDut, IdfDut]) -> None:
|
||||
indirect=True,
|
||||
)
|
||||
@pytest.mark.parametrize('app_path, target, config', c61_param_default, indirect=True)
|
||||
def test_sdio_speed_frhost_esp32_esp32c61(dut: Tuple[IdfDut, IdfDut]) -> None:
|
||||
def test_sdio_speed_frhost_esp32_esp32c61(dut: tuple[IdfDut, IdfDut]) -> None:
|
||||
test_sdio_speed_frhost_flow(dut, 10000, 4000)
|
||||
|
||||
|
||||
# To host speed tests
|
||||
def test_sdio_speed_tohost_flow(dut: Tuple[IdfDut, IdfDut], expected_4b_speed: int, expected_1b_speed: int) -> None:
|
||||
def test_sdio_speed_tohost_flow(dut: tuple[IdfDut, IdfDut], expected_4b_speed: int, expected_1b_speed: int) -> None:
|
||||
dut[1].expect('Press ENTER to see the list of tests')
|
||||
dut[1].write('"SDIO_Slave: test to host (Performance)"')
|
||||
dut[1].expect('test_sdio: slave ready')
|
||||
@@ -217,7 +217,7 @@ def test_sdio_speed_tohost_flow(dut: Tuple[IdfDut, IdfDut], expected_4b_speed: i
|
||||
indirect=True,
|
||||
)
|
||||
@pytest.mark.parametrize('app_path, target, config', c6_param_default, indirect=True)
|
||||
def test_sdio_speed_tohost_esp32_esp32c6(dut: Tuple[IdfDut, IdfDut]) -> None:
|
||||
def test_sdio_speed_tohost_esp32_esp32c6(dut: tuple[IdfDut, IdfDut]) -> None:
|
||||
test_sdio_speed_tohost_flow(dut, 9000, 4000)
|
||||
|
||||
|
||||
@@ -230,7 +230,7 @@ def test_sdio_speed_tohost_esp32_esp32c6(dut: Tuple[IdfDut, IdfDut]) -> None:
|
||||
indirect=True,
|
||||
)
|
||||
@pytest.mark.parametrize('app_path, target, config', esp32_param_default, indirect=True)
|
||||
def test_sdio_speed_tohost_esp32_esp32(dut: Tuple[IdfDut, IdfDut]) -> None:
|
||||
def test_sdio_speed_tohost_esp32_esp32(dut: tuple[IdfDut, IdfDut]) -> None:
|
||||
test_sdio_speed_tohost_flow(dut, 12200, 4000)
|
||||
|
||||
|
||||
@@ -243,7 +243,8 @@ def test_sdio_speed_tohost_esp32_esp32(dut: Tuple[IdfDut, IdfDut]) -> None:
|
||||
indirect=True,
|
||||
)
|
||||
@pytest.mark.parametrize('app_path, target, config', c5_param_default, indirect=True)
|
||||
def test_sdio_speed_tohost_esp32p4_esp32c5(dut: Tuple[IdfDut, IdfDut]) -> None:
|
||||
@pytest.mark.temp_skip_ci(targets=['esp32p4,*', '*,esp32p4'], reason='p4 rev3 migration')
|
||||
def test_sdio_speed_tohost_esp32p4_esp32c5(dut: tuple[IdfDut, IdfDut]) -> None:
|
||||
test_sdio_speed_tohost_flow(dut, 8500, 4000)
|
||||
|
||||
|
||||
@@ -256,12 +257,12 @@ def test_sdio_speed_tohost_esp32p4_esp32c5(dut: Tuple[IdfDut, IdfDut]) -> None:
|
||||
indirect=True,
|
||||
)
|
||||
@pytest.mark.parametrize('app_path, target, config', c61_param_default, indirect=True)
|
||||
def test_sdio_speed_tohost_esp32_esp32c61(dut: Tuple[IdfDut, IdfDut]) -> None:
|
||||
def test_sdio_speed_tohost_esp32_esp32c61(dut: tuple[IdfDut, IdfDut]) -> None:
|
||||
test_sdio_speed_tohost_flow(dut, 8500, 4000)
|
||||
|
||||
|
||||
# Retention tests
|
||||
def test_sdio_retention(dut: Tuple[IdfDut, IdfDut]) -> None:
|
||||
def test_sdio_retention(dut: tuple[IdfDut, IdfDut]) -> None:
|
||||
dut[1].expect('Press ENTER to see the list of tests')
|
||||
dut[1].write('[sdio_retention]')
|
||||
dut[1].expect('test_sdio: slave ready')
|
||||
@@ -282,5 +283,5 @@ def test_sdio_retention(dut: Tuple[IdfDut, IdfDut]) -> None:
|
||||
indirect=True,
|
||||
)
|
||||
@pytest.mark.parametrize('app_path, target, config', c6_param_retention, indirect=True)
|
||||
def test_sdio_retention_esp32_esp32c6(dut: Tuple[IdfDut, IdfDut]) -> None:
|
||||
def test_sdio_retention_esp32_esp32c6(dut: tuple[IdfDut, IdfDut]) -> None:
|
||||
test_sdio_retention(dut)
|
||||
|
||||
@@ -16,5 +16,6 @@ from pytest_embedded_idf.utils import idf_parametrize
|
||||
indirect=True,
|
||||
)
|
||||
@idf_parametrize('target', ['esp32', 'esp32s3', 'esp32c3', 'esp32p4', 'esp32c5'], indirect=['target'])
|
||||
@pytest.mark.temp_skip_ci(targets=['esp32p4'], reason='p4 rev3 migration')
|
||||
def test_sdspi(dut: IdfDut) -> None:
|
||||
dut.run_all_single_board_cases(reset=True, timeout=180)
|
||||
|
||||
@@ -18,6 +18,7 @@ from pytest_embedded_idf.utils import soc_filtered_targets
|
||||
@pytest.mark.generic
|
||||
@pytest.mark.parametrize('config', ['release', 'cache_safe'], indirect=True)
|
||||
@idf_parametrize('target', soc_filtered_targets('SOC_TWAI_SUPPORTED == 1'), indirect=['target'])
|
||||
@pytest.mark.temp_skip_ci(targets=['esp32p4'], reason='p4 rev3 migration')
|
||||
def test_driver_twai_loopbk(dut: Dut) -> None:
|
||||
dut.run_all_single_board_cases(group='twai', reset=True)
|
||||
|
||||
@@ -77,6 +78,7 @@ def fixture_create_socket_can() -> Bus:
|
||||
@pytest.mark.temp_skip_ci(targets=['esp32h4'], reason='no runner')
|
||||
@pytest.mark.parametrize('config', ['release'], indirect=True)
|
||||
@idf_parametrize('target', soc_filtered_targets('SOC_TWAI_SUPPORTED == 1'), indirect=['target'])
|
||||
@pytest.mark.temp_skip_ci(targets=['esp32p4'], reason='p4 rev3 migration')
|
||||
def test_driver_twai_listen_only(dut: Dut, socket_can: Bus) -> None:
|
||||
esp_reset_and_wait_ready(dut)
|
||||
|
||||
@@ -99,6 +101,7 @@ def test_driver_twai_listen_only(dut: Dut, socket_can: Bus) -> None:
|
||||
@pytest.mark.temp_skip_ci(targets=['esp32h4'], reason='no runner')
|
||||
@pytest.mark.parametrize('config', ['release'], indirect=True)
|
||||
@idf_parametrize('target', soc_filtered_targets('SOC_TWAI_SUPPORTED == 1'), indirect=['target'])
|
||||
@pytest.mark.temp_skip_ci(targets=['esp32p4'], reason='p4 rev3 migration')
|
||||
def test_driver_twai_remote_request(dut: Dut, socket_can: Bus) -> None:
|
||||
esp_reset_and_wait_ready(dut)
|
||||
|
||||
|
||||
+2
@@ -14,6 +14,7 @@ from pytest_embedded_idf.utils import idf_parametrize
|
||||
indirect=True,
|
||||
)
|
||||
@idf_parametrize('target', ['esp32s3', 'esp32c3', 'esp32c6', 'esp32h2', 'esp32c61', 'esp32p4'], indirect=['target'])
|
||||
@pytest.mark.temp_skip_ci(targets=['esp32p4'], reason='p4 rev3 migration')
|
||||
def test_usb_serial_jtag_dev(dut: Dut) -> None: # type: ignore
|
||||
dut.expect_exact('Press ENTER to see the list of tests')
|
||||
dut.write('"test print via usb_serial_jtag driver multiple times in different tasks"')
|
||||
@@ -36,6 +37,7 @@ def test_usb_serial_jtag_dev(dut: Dut) -> None: # type: ignore
|
||||
indirect=True,
|
||||
)
|
||||
@idf_parametrize('target', ['esp32s3', 'esp32c3', 'esp32c6', 'esp32h2', 'esp32c61', 'esp32p4'], indirect=['target'])
|
||||
@pytest.mark.temp_skip_ci(targets=['esp32p4'], reason='p4 rev3 migration')
|
||||
def test_usb_serial_jtag_rom_dev(dut: Dut) -> None: # type: ignore
|
||||
dut.expect_exact('Press ENTER to see the list of tests')
|
||||
dut.write('"test rom printf work after driver installed"')
|
||||
|
||||
+3
@@ -14,6 +14,7 @@ from pytest_embedded_idf.utils import idf_parametrize
|
||||
indirect=True,
|
||||
)
|
||||
@idf_parametrize('target', ['esp32s3', 'esp32c3', 'esp32c6', 'esp32h2', 'esp32c61', 'esp32p4'], indirect=['target'])
|
||||
@pytest.mark.temp_skip_ci(targets=['esp32p4'], reason='p4 rev3 migration')
|
||||
def test_usj_vfs_select(dut: Dut) -> None:
|
||||
test_message = 'test123456789!@#%^&*'
|
||||
|
||||
@@ -34,6 +35,7 @@ def test_usj_vfs_select(dut: Dut) -> None:
|
||||
indirect=True,
|
||||
)
|
||||
@idf_parametrize('target', ['esp32s3', 'esp32c3', 'esp32c6', 'esp32h2', 'esp32c61', 'esp32p4'], indirect=['target'])
|
||||
@pytest.mark.temp_skip_ci(targets=['esp32p4'], reason='p4 rev3 migration')
|
||||
def test_usj_vfs_read_return(dut: Dut) -> None:
|
||||
test_message = '!(@*#&(!*@&#((SDasdkjhad\nce'
|
||||
|
||||
@@ -53,6 +55,7 @@ def test_usj_vfs_read_return(dut: Dut) -> None:
|
||||
indirect=True,
|
||||
)
|
||||
@idf_parametrize('target', ['esp32s3', 'esp32c3', 'esp32c6', 'esp32h2', 'esp32c61', 'esp32p4'], indirect=['target'])
|
||||
@pytest.mark.temp_skip_ci(targets=['esp32p4'], reason='p4 rev3 migration')
|
||||
def test_usj_vfs_read_blocking(dut: Dut) -> None:
|
||||
test_message = 'testdata'
|
||||
|
||||
|
||||
@@ -297,6 +297,7 @@ def test_esp_eth_ip101(dut: IdfDut) -> None:
|
||||
indirect=True,
|
||||
)
|
||||
@idf_parametrize('target', ['esp32p4'], indirect=['target'])
|
||||
@pytest.mark.temp_skip_ci(targets=['esp32p4'], reason='p4 rev3 migration')
|
||||
def test_esp32p4_ethernet(dut: IdfDut) -> None:
|
||||
ethernet_test(dut)
|
||||
dut.serial.hard_reset()
|
||||
@@ -312,6 +313,7 @@ def test_esp32p4_ethernet(dut: IdfDut) -> None:
|
||||
indirect=True,
|
||||
)
|
||||
@idf_parametrize('target', ['esp32p4'], indirect=['target'])
|
||||
@pytest.mark.temp_skip_ci(targets=['esp32p4'], reason='p4 rev3 migration')
|
||||
def test_esp32p4_emac(dut: IdfDut) -> None:
|
||||
ethernet_int_emac_test(dut)
|
||||
dut.serial.hard_reset()
|
||||
@@ -327,6 +329,7 @@ def test_esp32p4_emac(dut: IdfDut) -> None:
|
||||
indirect=True,
|
||||
)
|
||||
@idf_parametrize('target', ['esp32p4'], indirect=['target'])
|
||||
@pytest.mark.temp_skip_ci(targets=['esp32p4'], reason='p4 rev3 migration')
|
||||
def test_esp32p4_emac_clko(dut: IdfDut) -> None:
|
||||
dut.run_all_single_board_cases(group='esp_emac_clk_out')
|
||||
|
||||
@@ -469,5 +472,6 @@ def test_esp_eth_dm9051(dut: IdfDut) -> None:
|
||||
indirect=True,
|
||||
)
|
||||
@idf_parametrize('target', ['esp32p4'], indirect=['target'])
|
||||
@pytest.mark.temp_skip_ci(targets=['esp32p4'], reason='p4 rev3 migration')
|
||||
def test_emac_sleep_retention(dut: IdfDut) -> None:
|
||||
dut.run_all_single_board_cases(group='sleep_retention', timeout=120)
|
||||
|
||||
@@ -15,5 +15,6 @@ from pytest_embedded_idf.utils import soc_filtered_targets
|
||||
indirect=True,
|
||||
)
|
||||
@idf_parametrize('target', soc_filtered_targets('SOC_DMA2D_SUPPORTED == 1'), indirect=['target'])
|
||||
@pytest.mark.temp_skip_ci(targets=['esp32p4'], reason='p4 rev3 migration')
|
||||
def test_dma2d(dut: Dut) -> None:
|
||||
dut.run_all_single_board_cases()
|
||||
|
||||
@@ -58,18 +58,20 @@ def test_flash4_psram4(dut: IdfDut) -> None:
|
||||
indirect=True,
|
||||
)
|
||||
@idf_parametrize('target', ['esp32p4'], indirect=['target'])
|
||||
@pytest.mark.temp_skip_ci(targets=['esp32p4'], reason='p4 rev3 migration')
|
||||
def test_flash_psram_esp32p4(dut: IdfDut) -> None:
|
||||
dut.run_all_single_board_cases()
|
||||
|
||||
|
||||
@pytest.mark.generic
|
||||
@pytest.mark.parametrize(
|
||||
'config',
|
||||
[
|
||||
'generic_timing_tuning_log_safe',
|
||||
],
|
||||
indirect=True,
|
||||
)
|
||||
@idf_parametrize('target', ['esp32c5', 'esp32c61'], indirect=['target'])
|
||||
def test_flash_psram_generic(dut: IdfDut) -> None:
|
||||
dut.run_all_single_board_cases()
|
||||
# TODO: never was tested IDF-14918
|
||||
# @pytest.mark.generic
|
||||
# @pytest.mark.parametrize(
|
||||
# 'config',
|
||||
# [
|
||||
# 'generic_timing_tuning_log_safe',
|
||||
# ],
|
||||
# indirect=True,
|
||||
# )
|
||||
# @idf_parametrize('target', ['esp32c5', 'esp32c61'], indirect=['target'])
|
||||
# def test_flash_psram_generic(dut: IdfDut) -> None:
|
||||
# dut.run_all_single_board_cases()
|
||||
|
||||
@@ -10,6 +10,7 @@ from pytest_embedded_idf.utils import soc_filtered_targets
|
||||
|
||||
@pytest.mark.generic
|
||||
@idf_parametrize('target', soc_filtered_targets('SOC_CLK_TREE_SUPPORTED == 1'), indirect=['target'])
|
||||
@pytest.mark.temp_skip_ci(targets=['esp32p4'], reason='p4 rev3 migration')
|
||||
def test_rtc_clk(case_tester: CaseTester) -> None:
|
||||
for case in case_tester.test_menu:
|
||||
if 'test_env' in case.attributes:
|
||||
@@ -31,5 +32,6 @@ def test_rtc_no_xtal32k(dut: IdfDut) -> None:
|
||||
|
||||
@pytest.mark.generic
|
||||
@idf_parametrize('target', soc_filtered_targets('SOC_CLK_TREE_SUPPORTED == 1'), indirect=['target'])
|
||||
@pytest.mark.temp_skip_ci(targets=['esp32p4'], reason='p4 rev3 migration')
|
||||
def test_rtc_calib_compensation_across_dslp(case_tester: CaseTester) -> None:
|
||||
case_tester.run_all_multi_stage_cases()
|
||||
|
||||
@@ -142,6 +142,7 @@ def test_rtcio_deepsleep(dut: tuple[IdfDut, IdfDut]) -> None:
|
||||
@pytest.mark.parametrize('count', [2], indirect=True)
|
||||
@pytest.mark.parametrize('config', TEST_CONFIGS, indirect=True)
|
||||
@idf_parametrize('target', ['supported_targets'], indirect=['target'])
|
||||
@pytest.mark.temp_skip_ci(targets=['esp32c61'], reason='p4 rev3 migration')
|
||||
def test_gpio_wakeup_enable_lightsleep(dut: tuple[IdfDut, IdfDut]) -> None:
|
||||
wakee = dut[0]
|
||||
waker = dut[1]
|
||||
|
||||
@@ -16,6 +16,7 @@ from pytest_embedded_idf.utils import idf_parametrize
|
||||
indirect=True,
|
||||
)
|
||||
@idf_parametrize('target', ['supported_targets'], indirect=['target'])
|
||||
@pytest.mark.temp_skip_ci(targets=['esp32p4'], reason='p4 rev3 migration')
|
||||
def test_mmap(dut: Dut) -> None:
|
||||
dut.run_all_single_board_cases(group='mmu')
|
||||
|
||||
@@ -32,6 +33,7 @@ def test_mmap(dut: Dut) -> None:
|
||||
],
|
||||
indirect=['config', 'target'],
|
||||
)
|
||||
@pytest.mark.temp_skip_ci(targets=['esp32p4'], reason='p4 rev3 migration')
|
||||
def test_mmap_psram(dut: Dut) -> None:
|
||||
dut.run_all_single_board_cases(group='mmu')
|
||||
|
||||
@@ -55,6 +57,7 @@ def test_mmap_xip_psram(dut: Dut) -> None:
|
||||
indirect=True,
|
||||
)
|
||||
@idf_parametrize('target', ['supported_targets'], indirect=['target'])
|
||||
@pytest.mark.temp_skip_ci(targets=['esp32p4'], reason='p4 rev3 migration')
|
||||
def test_cache(dut: Dut) -> None:
|
||||
dut.run_all_single_board_cases(group='cache')
|
||||
|
||||
|
||||
@@ -27,5 +27,6 @@ def test_esp_netif_vfs_l2tp(dut: Dut) -> None:
|
||||
indirect=True,
|
||||
)
|
||||
@idf_parametrize('target', ['esp32p4'], indirect=['target'])
|
||||
@pytest.mark.temp_skip_ci(targets=['esp32p4'], reason='p4 rev3 migration')
|
||||
def test_esp_netif_vfs_l2tp_p4(dut: Dut) -> None:
|
||||
dut.run_all_single_board_cases()
|
||||
|
||||
@@ -19,6 +19,7 @@ def not_expect(dut: Dut, output_regex: str) -> None:
|
||||
@pytest.mark.generic
|
||||
@idf_parametrize('config', ['stdio_none'], indirect=['config'])
|
||||
@idf_parametrize('target', ['supported_targets'], indirect=['target'])
|
||||
@pytest.mark.temp_skip_ci(targets=['esp32p4'], reason='p4 rev3 migration')
|
||||
def test_esp_system_stdio_no_output_uart(dut: Dut) -> None:
|
||||
not_expect(dut, r'2nd stage bootloader|Hello World')
|
||||
dut.expect('This message will be printed even with CONFIG_ESP_CONSOLE_NONE')
|
||||
@@ -29,6 +30,7 @@ def test_esp_system_stdio_no_output_uart(dut: Dut) -> None:
|
||||
@idf_parametrize('flash_port', ['/dev/serial_ports/ttyUSB-esp32'], indirect=['flash_port'])
|
||||
@idf_parametrize('port', ['/dev/serial_ports/ttyACM-esp32'], indirect=['port'])
|
||||
@idf_parametrize('target', soc_filtered_targets('SOC_USB_SERIAL_JTAG_SUPPORTED == 1'), indirect=['target'])
|
||||
@pytest.mark.temp_skip_ci(targets=['esp32p4'], reason='p4 rev3 migration')
|
||||
def test_esp_system_stdio_only_serial_jtag(dut: Dut) -> None:
|
||||
dut.expect('2nd stage bootloader')
|
||||
dut.expect('Hello World')
|
||||
@@ -43,6 +45,7 @@ def test_esp_system_stdio_only_serial_jtag(dut: Dut) -> None:
|
||||
@idf_parametrize('flash_port', ['/dev/serial_ports/ttyUSB-esp32'], indirect=['flash_port'])
|
||||
@idf_parametrize('port', ['/dev/serial_ports/ttyACM-esp32'], indirect=['port'])
|
||||
@idf_parametrize('target', soc_filtered_targets('SOC_USB_SERIAL_JTAG_SUPPORTED == 1'), indirect=['target'])
|
||||
@pytest.mark.temp_skip_ci(targets=['esp32p4'], reason='p4 rev3 migration')
|
||||
def test_esp_system_stdio_only_serial_jtag_no_vfs(dut: Dut) -> None:
|
||||
dut.expect('2nd stage bootloader')
|
||||
dut.expect('Hello World')
|
||||
@@ -53,6 +56,7 @@ def test_esp_system_stdio_only_serial_jtag_no_vfs(dut: Dut) -> None:
|
||||
@idf_parametrize('flash_port', ['/dev/serial_ports/ttyUSB-esp32'], indirect=['flash_port'])
|
||||
@idf_parametrize('port', ['/dev/serial_ports/ttyACM-esp32'], indirect=['port'])
|
||||
@idf_parametrize('target', soc_filtered_targets('SOC_USB_SERIAL_JTAG_SUPPORTED == 1'), indirect=['target'])
|
||||
@pytest.mark.temp_skip_ci(targets=['esp32p4'], reason='p4 rev3 migration')
|
||||
def test_esp_system_stdio_secondary_serial_jtag(dut: Dut) -> None:
|
||||
dut.expect('2nd stage bootloader')
|
||||
dut.expect('Hello World')
|
||||
@@ -61,6 +65,7 @@ def test_esp_system_stdio_secondary_serial_jtag(dut: Dut) -> None:
|
||||
@pytest.mark.generic
|
||||
@idf_parametrize('config', ['simple'], indirect=['config'])
|
||||
@idf_parametrize('target', ['supported_targets'], indirect=['target'])
|
||||
@pytest.mark.temp_skip_ci(targets=['esp32p4'], reason='p4 rev3 migration')
|
||||
def test_esp_system_stdio_correct_open_and_close(dut: Dut) -> None:
|
||||
dut.expect('2nd stage bootloader')
|
||||
dut.expect('Hello World')
|
||||
|
||||
@@ -7,6 +7,7 @@ from pytest_embedded_idf.utils import idf_parametrize
|
||||
|
||||
@pytest.mark.generic
|
||||
@idf_parametrize('target', ['supported_targets'], indirect=['target'])
|
||||
@pytest.mark.temp_skip_ci(targets=['esp32p4'], reason='p4 rev3 migration')
|
||||
def test_mbedtls(dut: Dut) -> None:
|
||||
dut.run_all_single_board_cases()
|
||||
|
||||
@@ -71,6 +72,7 @@ def test_mbedtls_psram_all_ext_flash_enc(dut: Dut) -> None:
|
||||
indirect=True,
|
||||
)
|
||||
@idf_parametrize('target', ['esp32p4'], indirect=['target'])
|
||||
@pytest.mark.temp_skip_ci(targets=['esp32p4'], reason='p4 rev3 migration')
|
||||
def test_mbedtls_psram_esp32p4(dut: Dut) -> None:
|
||||
dut.run_all_single_board_cases()
|
||||
|
||||
@@ -84,6 +86,7 @@ def test_mbedtls_psram_esp32p4(dut: Dut) -> None:
|
||||
indirect=True,
|
||||
)
|
||||
@idf_parametrize('target', ['esp32p4'], indirect=['target'])
|
||||
@pytest.mark.temp_skip_ci(targets=['esp32p4'], reason='p4 rev3 migration')
|
||||
def test_mbedtls_psram_all_ext_flash_enc_esp32p4_200m(dut: Dut) -> None:
|
||||
dut.run_all_single_board_cases()
|
||||
|
||||
|
||||
@@ -16,6 +16,7 @@ from pytest_embedded import Dut
|
||||
],
|
||||
indirect=['target'],
|
||||
)
|
||||
@pytest.mark.temp_skip_ci(targets=['esp32p4'], reason='p4 rev3 migration')
|
||||
def test_esp_eth_basic(dut: Dut) -> None:
|
||||
# wait for ip received
|
||||
dut_ip = dut.expect(r'esp_netif_handlers: .+ ip: (\d+\.\d+\.\d+\.\d+),').group(1)
|
||||
|
||||
@@ -141,6 +141,7 @@ def test_esp_eth_iperf_ip101(
|
||||
indirect=True,
|
||||
)
|
||||
@idf_parametrize('target', ['esp32p4'], indirect=['target'])
|
||||
@pytest.mark.temp_skip_ci(targets=['esp32p4'], reason='p4 rev3 migration')
|
||||
def test_esp_eth_iperf_ip101_esp32p4(
|
||||
dut: Dut,
|
||||
log_performance: Callable[[str, object], None],
|
||||
|
||||
@@ -542,11 +542,21 @@ examples/peripherals/twai/twai_error_recovery:
|
||||
depends_components:
|
||||
- esp_driver_twai
|
||||
|
||||
examples/peripherals/twai/twai_network:
|
||||
examples/peripherals/twai/twai_network/twai_listen_only:
|
||||
disable:
|
||||
- if: SOC_TWAI_SUPPORTED != 1
|
||||
disable_test:
|
||||
- if: IDF_TARGET == "esp32p4"
|
||||
- if: IDF_TARGET in ["esp32p4", "esp32h2"]
|
||||
temporary: true
|
||||
reason: p4 rev3 migration # TODO: IDF-14393
|
||||
depends_components:
|
||||
- esp_driver_twai
|
||||
|
||||
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:
|
||||
|
||||
@@ -8,5 +8,6 @@ from pytest_embedded_idf.utils import soc_filtered_targets
|
||||
|
||||
@pytest.mark.generic
|
||||
@idf_parametrize('target', soc_filtered_targets('SOC_TWAI_SUPPORTED == 1'), indirect=['target'])
|
||||
@pytest.mark.temp_skip_ci(targets=['esp32p4'], reason='p4 rev3 migration')
|
||||
def test_cybergear_example(dut: Dut) -> None:
|
||||
dut.expect_exact('CyberGear console started')
|
||||
|
||||
@@ -53,6 +53,7 @@ def generate_target_combinations(target_list: list, count: int = 2) -> list:
|
||||
],
|
||||
indirect=True,
|
||||
)
|
||||
@pytest.mark.temp_skip_ci(targets=['esp32p4,*', '*,esp32p4'], reason='p4 rev3 migration')
|
||||
def test_twai_network_multi(dut: tuple[IdfDut, IdfDut], socket_can: Bus) -> None:
|
||||
"""
|
||||
Test TWAI network communication between two nodes:
|
||||
|
||||
@@ -310,6 +310,7 @@ def usb_can() -> CanBusManager:
|
||||
|
||||
@pytest.mark.generic
|
||||
@idf_parametrize('target', soc_filtered_targets('SOC_TWAI_SUPPORTED == 1'), indirect=['target'])
|
||||
@pytest.mark.temp_skip_ci(targets=['esp32p4'], reason='p4 rev3 migration')
|
||||
def test_twai_utils_basic_operations(twai: TwaiTestHelper) -> None:
|
||||
with twai.session(start_dump=False):
|
||||
# Test basic send operation
|
||||
@@ -328,6 +329,7 @@ def test_twai_utils_basic_operations(twai: TwaiTestHelper) -> None:
|
||||
|
||||
@pytest.mark.generic
|
||||
@idf_parametrize('target', soc_filtered_targets('SOC_TWAI_SUPPORTED == 1'), indirect=['target'])
|
||||
@pytest.mark.temp_skip_ci(targets=['esp32p4'], reason='p4 rev3 migration')
|
||||
def test_twai_utils_bitrate_configuration(twai: TwaiTestHelper) -> None:
|
||||
for bitrate in [125000, 250000, 500000, 1000000]:
|
||||
with twai.session(mode='standard', bitrate=bitrate, tx_gpio=DEFAULT_TX_GPIO, rx_gpio=DEFAULT_RX_GPIO):
|
||||
@@ -336,6 +338,7 @@ def test_twai_utils_bitrate_configuration(twai: TwaiTestHelper) -> None:
|
||||
|
||||
@pytest.mark.generic
|
||||
@idf_parametrize('target', soc_filtered_targets('SOC_TWAI_SUPPORTED == 1'), indirect=['target'])
|
||||
@pytest.mark.temp_skip_ci(targets=['esp32p4'], reason='p4 rev3 migration')
|
||||
def test_twai_utils_frame_formats(twai: TwaiTestHelper) -> None:
|
||||
with twai.session():
|
||||
BASIC_FRAMES = [
|
||||
@@ -366,6 +369,7 @@ def test_twai_utils_frame_formats(twai: TwaiTestHelper) -> None:
|
||||
|
||||
@pytest.mark.generic
|
||||
@idf_parametrize('target', soc_filtered_targets('SOC_TWAI_SUPPORTED == 1'), indirect=['target'])
|
||||
@pytest.mark.temp_skip_ci(targets=['esp32p4'], reason='p4 rev3 migration')
|
||||
def test_twai_utils_info_and_recovery(twai: TwaiTestHelper) -> None:
|
||||
with twai.session():
|
||||
assert twai.info(), 'Info command failed'
|
||||
@@ -386,6 +390,7 @@ def test_twai_utils_info_and_recovery(twai: TwaiTestHelper) -> None:
|
||||
|
||||
@pytest.mark.generic
|
||||
@idf_parametrize('target', soc_filtered_targets('SOC_TWAI_SUPPORTED == 1'), indirect=['target'])
|
||||
@pytest.mark.temp_skip_ci(targets=['esp32p4'], reason='p4 rev3 migration')
|
||||
def test_twai_utils_input_validation(twai: TwaiTestHelper) -> None:
|
||||
with twai.session(start_dump=False):
|
||||
INVALID_FRAMES = [
|
||||
@@ -432,6 +437,7 @@ def test_twai_utils_input_validation(twai: TwaiTestHelper) -> None:
|
||||
|
||||
@pytest.mark.generic
|
||||
@idf_parametrize('target', soc_filtered_targets('SOC_TWAI_SUPPORTED == 1'), indirect=['target'])
|
||||
@pytest.mark.temp_skip_ci(targets=['esp32p4'], reason='p4 rev3 migration')
|
||||
def test_twai_utils_gpio_and_basic_send(twai: TwaiTestHelper) -> None:
|
||||
with twai.session():
|
||||
assert twai.info(), 'GPIO info failed'
|
||||
@@ -459,6 +465,7 @@ def test_twai_utils_gpio_and_basic_send(twai: TwaiTestHelper) -> None:
|
||||
|
||||
@pytest.mark.generic
|
||||
@idf_parametrize('target', soc_filtered_targets('SOC_TWAI_SUPPORTED == 1'), indirect=['target'])
|
||||
@pytest.mark.temp_skip_ci(targets=['esp32p4'], reason='p4 rev3 migration')
|
||||
def test_twai_utils_send_various_frames(twai: TwaiTestHelper) -> None:
|
||||
with twai.session():
|
||||
# Boundary ID tests
|
||||
@@ -492,6 +499,7 @@ def test_twai_utils_fd_frames(twai: TwaiTestHelper) -> None:
|
||||
|
||||
@pytest.mark.generic
|
||||
@idf_parametrize('target', soc_filtered_targets('SOC_TWAI_SUPPORTED == 1'), indirect=['target'])
|
||||
@pytest.mark.temp_skip_ci(targets=['esp32p4'], reason='p4 rev3 migration')
|
||||
def test_twai_utils_mask_filters(twai: TwaiTestHelper) -> None:
|
||||
"""Test TWAI filtering including automatic extended frame detection."""
|
||||
MASK_FILTER_GROUPS = [
|
||||
|
||||
@@ -79,6 +79,7 @@ def _test_flash_encryption(dut: Dut) -> None:
|
||||
|
||||
@pytest.mark.flash_encryption
|
||||
@idf_parametrize('target', ['esp32', 'esp32c3', 'esp32p4'], indirect=['target'])
|
||||
@pytest.mark.temp_skip_ci(targets=['esp32p4'], reason='p4 rev3 migration')
|
||||
def test_examples_security_flash_encryption(dut: Dut) -> None:
|
||||
_test_flash_encryption(dut)
|
||||
|
||||
@@ -118,5 +119,6 @@ def test_examples_security_flash_encryption_psram_esp32(dut: Dut) -> None:
|
||||
indirect=True,
|
||||
)
|
||||
@idf_parametrize('target', ['esp32p4'], indirect=['target'])
|
||||
@pytest.mark.temp_skip_ci(targets=['esp32p4'], reason='p4 rev3 migration')
|
||||
def test_examples_security_flash_encryption_psram(dut: Dut) -> None:
|
||||
_test_flash_encryption(dut)
|
||||
|
||||
@@ -46,7 +46,7 @@ def verify_att_token_signature(att_tk: str) -> Any:
|
||||
|
||||
|
||||
@pytest.mark.generic
|
||||
@idf_parametrize('target', ['supported_targets'], indirect=['target'])
|
||||
@idf_parametrize('target', ['esp32c6', 'esp32c5', 'esp32c61'], indirect=['target'])
|
||||
def test_example_tee_attestation(dut: Dut) -> None:
|
||||
# Erase the TEE secure_storage partition
|
||||
dut.serial.erase_partition('secure_storage')
|
||||
|
||||
@@ -9,7 +9,7 @@ from pytest_embedded_idf.utils import idf_parametrize
|
||||
|
||||
|
||||
@pytest.mark.generic
|
||||
@idf_parametrize('target', ['supported_targets'], indirect=['target'])
|
||||
@idf_parametrize('target', ['esp32c6', 'esp32c5', 'esp32c61'], indirect=['target'])
|
||||
def test_example_tee_basic(dut: Dut) -> None:
|
||||
# Logging example binary details
|
||||
binary_files = [
|
||||
|
||||
@@ -32,7 +32,7 @@ def start_https_server(ota_image_dir: str, server_ip: str, server_port: int) ->
|
||||
|
||||
|
||||
@pytest.mark.wifi_high_traffic
|
||||
@idf_parametrize('target', ['supported_targets'], indirect=['target'])
|
||||
@idf_parametrize('target', ['esp32c5', 'esp32c6', 'esp32c61'], indirect=['target'])
|
||||
def test_examples_tee_secure_ota_example(dut: Dut) -> None:
|
||||
"""
|
||||
This is a positive test case, which downloads complete binary file multiple number of times.
|
||||
|
||||
@@ -6,7 +6,7 @@ from pytest_embedded_idf.utils import idf_parametrize
|
||||
|
||||
|
||||
@pytest.mark.generic
|
||||
@idf_parametrize('target', ['supported_targets'], indirect=['target'])
|
||||
@idf_parametrize('target', ['esp32c6', 'esp32c5', 'esp32c61'], indirect=['target'])
|
||||
def test_example_tee_secure_storage(dut: Dut) -> None:
|
||||
# Start test
|
||||
dut.expect('TEE Secure Storage', timeout=30)
|
||||
|
||||
@@ -19,6 +19,7 @@ from pytest_embedded_idf.utils import idf_parametrize
|
||||
indirect=True,
|
||||
)
|
||||
@idf_parametrize('target', ['esp32s3', 'esp32p4'], indirect=['target'])
|
||||
@pytest.mark.temp_skip_ci(targets=['esp32p4'], reason='p4 rev3 migration')
|
||||
def test_examples_sd_card_sdmmc(dut: Dut) -> None:
|
||||
dut.expect('example: Initializing eMMC', timeout=20)
|
||||
dut.expect('example: Using SDMMC peripheral', timeout=10)
|
||||
@@ -32,14 +33,14 @@ def test_examples_sd_card_sdmmc(dut: Dut) -> None:
|
||||
speed = dut.expect(re.compile(rb'Speed: (\S+)'), timeout=10).group(1).decode()
|
||||
size = dut.expect(re.compile(rb'Size: (\S+)'), timeout=10).group(1).decode()
|
||||
|
||||
logging.info('Card {} {} {}MHz {} found'.format(name, _type, speed, size))
|
||||
logging.info(f'Card {name} {_type} {speed}MHz {size} found')
|
||||
|
||||
message_list = (
|
||||
'Opening file /eMMC/hello.txt',
|
||||
'File written',
|
||||
'Renaming file /eMMC/hello.txt to /eMMC/foo.txt',
|
||||
'Reading file /eMMC/foo.txt',
|
||||
"Read from file: 'Hello {}!'".format(name),
|
||||
f"Read from file: 'Hello {name}!'",
|
||||
'Card unmounted',
|
||||
)
|
||||
|
||||
|
||||
@@ -11,6 +11,7 @@ from pytest_embedded_idf.utils import idf_parametrize
|
||||
@pytest.mark.temp_skip_ci(targets=['esp32c61'], reason='C5 C61 GPSPI same, so testing on C5 is enough')
|
||||
@pytest.mark.sdcard_spimode
|
||||
@idf_parametrize('target', ['esp32', 'esp32s3', 'esp32c3', 'esp32p4', 'esp32c5'], indirect=['target'])
|
||||
@pytest.mark.temp_skip_ci(targets=['esp32p4'], reason='p4 rev3 migration')
|
||||
def test_examples_sd_card_sdspi(dut: Dut) -> None:
|
||||
dut.expect('example: Initializing SD card', timeout=20)
|
||||
dut.expect('example: Using SPI peripheral', timeout=20)
|
||||
|
||||
@@ -56,6 +56,7 @@ def test_examples_app_trace_basic(openocd_dut: 'OpenOCD', dut: IdfDut) -> None:
|
||||
@idf_parametrize(
|
||||
'target', ['esp32s3', 'esp32c3', 'esp32c5', 'esp32c6', 'esp32c61', 'esp32h2', 'esp32p4'], indirect=['target']
|
||||
)
|
||||
@pytest.mark.temp_skip_ci(targets=['esp32p4'], reason='p4 rev3 migration')
|
||||
def test_examples_app_trace_basic_usj(openocd_dut: 'OpenOCD', dut: IdfDut) -> None:
|
||||
_test_examples_app_trace_basic(openocd_dut, dut)
|
||||
|
||||
@@ -63,6 +64,7 @@ def test_examples_app_trace_basic_usj(openocd_dut: 'OpenOCD', dut: IdfDut) -> No
|
||||
@pytest.mark.generic
|
||||
@idf_parametrize('config', ['apptrace_uart'], indirect=['config'])
|
||||
@idf_parametrize('target', ['supported_targets'], indirect=['target'])
|
||||
@pytest.mark.temp_skip_ci(targets=['esp32p4'], reason='p4 rev3 migration')
|
||||
def test_examples_app_trace_basic_uart(dut: IdfDut) -> None:
|
||||
dut.serial.close()
|
||||
with serial.Serial(dut.serial.port, baudrate=1000000, timeout=10) as ser:
|
||||
|
||||
@@ -3,10 +3,11 @@
|
||||
import pytest
|
||||
from pytest_embedded import Dut
|
||||
from pytest_embedded_idf.utils import idf_parametrize
|
||||
from pytest_embedded_idf.utils import soc_filtered_targets
|
||||
|
||||
|
||||
@pytest.mark.generic
|
||||
@idf_parametrize('target', ['supported_targets'], indirect=['target'])
|
||||
@idf_parametrize('target', soc_filtered_targets('SOC_LP_CORE_SUPPORTED == 1'), indirect=['target'])
|
||||
def test_lp_mailbox(dut: Dut) -> None:
|
||||
# Wait for LP core to be loaded and running
|
||||
dut.expect_exact('LP Mailbox initialized successfully')
|
||||
|
||||
@@ -176,6 +176,7 @@ def common_test(
|
||||
|
||||
@pytest.mark.generic
|
||||
@idf_parametrize('config, target', CONFIGS, indirect=['config', 'target'])
|
||||
@pytest.mark.temp_skip_ci(targets=['esp32p4'], reason='p4 rev3 migration')
|
||||
def test_task_wdt_cpu0(dut: PanicTestDut, config: str, test_func_name: str) -> None:
|
||||
dut.run_test_func(test_func_name)
|
||||
dut.expect_exact('Task watchdog got triggered. The following tasks/users did not reset the watchdog in time:')
|
||||
@@ -208,6 +209,7 @@ def test_task_wdt_cpu0(dut: PanicTestDut, config: str, test_func_name: str) -> N
|
||||
|
||||
@pytest.mark.generic
|
||||
@idf_parametrize('config, target', CONFIGS_DUAL_CORE, indirect=['config', 'target'])
|
||||
@pytest.mark.temp_skip_ci(targets=['esp32p4'], reason='p4 rev3 migration')
|
||||
def test_task_wdt_cpu1(dut: PanicTestDut, config: str, test_func_name: str) -> None:
|
||||
dut.run_test_func(test_func_name)
|
||||
dut.expect_exact('Task watchdog got triggered. The following tasks/users did not reset the watchdog in time:')
|
||||
@@ -272,6 +274,7 @@ def test_panic_extram_stack(dut: PanicTestDut, config: str) -> None:
|
||||
|
||||
@pytest.mark.generic
|
||||
@idf_parametrize('config, target', CONFIGS, indirect=['config', 'target'])
|
||||
@pytest.mark.temp_skip_ci(targets=['esp32p4'], reason='p4 rev3 migration')
|
||||
def test_int_wdt(dut: PanicTestDut, target: str, config: str, test_func_name: str) -> None:
|
||||
dut.run_test_func(test_func_name)
|
||||
dut.expect_gme('Interrupt wdt timeout on CPU0')
|
||||
@@ -294,6 +297,7 @@ def test_int_wdt(dut: PanicTestDut, target: str, config: str, test_func_name: st
|
||||
|
||||
@pytest.mark.generic
|
||||
@idf_parametrize('config, target', CONFIGS, indirect=['config', 'target'])
|
||||
@pytest.mark.temp_skip_ci(targets=['esp32p4'], reason='p4 rev3 migration')
|
||||
def test_int_wdt_cache_disabled(dut: PanicTestDut, target: str, config: str, test_func_name: str) -> None:
|
||||
dut.run_test_func(test_func_name)
|
||||
dut.expect_gme('Interrupt wdt timeout on CPU0')
|
||||
@@ -316,6 +320,7 @@ def test_int_wdt_cache_disabled(dut: PanicTestDut, target: str, config: str, tes
|
||||
|
||||
@pytest.mark.generic
|
||||
@idf_parametrize('config, target', CONFIGS, indirect=['config', 'target'])
|
||||
@pytest.mark.temp_skip_ci(targets=['esp32p4'], reason='p4 rev3 migration')
|
||||
def test_cache_error(dut: PanicTestDut, config: str, test_func_name: str) -> None:
|
||||
dut.run_test_func(test_func_name)
|
||||
if dut.target in ['esp32c3', 'esp32c2']:
|
||||
@@ -347,6 +352,7 @@ def test_cache_error(dut: PanicTestDut, config: str, test_func_name: str) -> Non
|
||||
|
||||
@pytest.mark.generic
|
||||
@idf_parametrize('config, target', CONFIGS, indirect=['config', 'target'])
|
||||
@pytest.mark.temp_skip_ci(targets=['esp32p4'], reason='p4 rev3 migration')
|
||||
def test_stack_overflow(dut: PanicTestDut, config: str, test_func_name: str) -> None:
|
||||
dut.run_test_func(test_func_name)
|
||||
if dut.is_xtensa:
|
||||
@@ -368,6 +374,7 @@ def test_stack_overflow(dut: PanicTestDut, config: str, test_func_name: str) ->
|
||||
|
||||
@pytest.mark.generic
|
||||
@idf_parametrize('config, target', CONFIGS, indirect=['config', 'target'])
|
||||
@pytest.mark.temp_skip_ci(targets=['esp32p4'], reason='p4 rev3 migration')
|
||||
def test_instr_fetch_prohibited(dut: PanicTestDut, config: str, test_func_name: str) -> None:
|
||||
dut.run_test_func(test_func_name)
|
||||
if dut.is_xtensa:
|
||||
@@ -395,6 +402,7 @@ def test_instr_fetch_prohibited(dut: PanicTestDut, config: str, test_func_name:
|
||||
|
||||
@pytest.mark.generic
|
||||
@idf_parametrize('config, target', CONFIGS, indirect=['config', 'target'])
|
||||
@pytest.mark.temp_skip_ci(targets=['esp32p4'], reason='p4 rev3 migration')
|
||||
def test_illegal_instruction(dut: PanicTestDut, config: str, test_func_name: str) -> None:
|
||||
dut.run_test_func(test_func_name)
|
||||
if dut.is_xtensa:
|
||||
@@ -431,18 +439,21 @@ def check_x_prohibited(dut: PanicTestDut, config: str, test_func_name: str, oper
|
||||
|
||||
@pytest.mark.generic
|
||||
@idf_parametrize('config, target', CONFIGS, indirect=['config', 'target'])
|
||||
@pytest.mark.temp_skip_ci(targets=['esp32p4'], reason='p4 rev3 migration')
|
||||
def test_storeprohibited(dut: PanicTestDut, config: str, test_func_name: str) -> None:
|
||||
check_x_prohibited(dut, config, test_func_name, 'Store')
|
||||
|
||||
|
||||
@pytest.mark.generic
|
||||
@idf_parametrize('config, target', CONFIGS, indirect=['config', 'target'])
|
||||
@pytest.mark.temp_skip_ci(targets=['esp32p4'], reason='p4 rev3 migration')
|
||||
def test_loadprohibited(dut: PanicTestDut, config: str, test_func_name: str) -> None:
|
||||
check_x_prohibited(dut, config, test_func_name, 'Load')
|
||||
|
||||
|
||||
@pytest.mark.generic
|
||||
@idf_parametrize('config, target', CONFIGS, indirect=['config', 'target'])
|
||||
@pytest.mark.temp_skip_ci(targets=['esp32p4'], reason='p4 rev3 migration')
|
||||
def test_abort(dut: PanicTestDut, config: str, test_func_name: str) -> None:
|
||||
dut.run_test_func(test_func_name)
|
||||
regex_pattern = rb'abort\(\) was called at PC [0-9xa-f]+ on core 0'
|
||||
@@ -465,6 +476,7 @@ def test_abort(dut: PanicTestDut, config: str, test_func_name: str) -> None:
|
||||
|
||||
@pytest.mark.generic
|
||||
@idf_parametrize('config, target', CONFIGS, indirect=['config', 'target'])
|
||||
@pytest.mark.temp_skip_ci(targets=['esp32p4'], reason='p4 rev3 migration')
|
||||
def test_ub(dut: PanicTestDut, config: str, test_func_name: str) -> None:
|
||||
dut.run_test_func(test_func_name)
|
||||
regex_pattern = rb'Undefined behavior of type out_of_bounds'
|
||||
@@ -493,6 +505,7 @@ def test_ub(dut: PanicTestDut, config: str, test_func_name: str) -> None:
|
||||
|
||||
@pytest.mark.generic
|
||||
@idf_parametrize('config, target', CONFIGS, indirect=['config', 'target'])
|
||||
@pytest.mark.temp_skip_ci(targets=['esp32p4'], reason='p4 rev3 migration')
|
||||
def test_abort_cache_disabled(dut: PanicTestDut, config: str, test_func_name: str) -> None:
|
||||
if dut.target == 'esp32s2':
|
||||
pytest.xfail(reason='Crashes in itoa which is not in ROM, IDF-3572')
|
||||
@@ -517,6 +530,7 @@ def test_abort_cache_disabled(dut: PanicTestDut, config: str, test_func_name: st
|
||||
|
||||
@pytest.mark.generic
|
||||
@idf_parametrize('config, target', CONFIGS, indirect=['config', 'target'])
|
||||
@pytest.mark.temp_skip_ci(targets=['esp32p4'], reason='p4 rev3 migration')
|
||||
def test_assert(dut: PanicTestDut, config: str, test_func_name: str) -> None:
|
||||
dut.run_test_func(test_func_name)
|
||||
regex_pattern = rb'assert failed:[\s\w()]*?\s[.\w/]*\.(?:c|cpp|h|hpp):\d.*$'
|
||||
@@ -539,6 +553,7 @@ def test_assert(dut: PanicTestDut, config: str, test_func_name: str) -> None:
|
||||
|
||||
@pytest.mark.generic
|
||||
@idf_parametrize('config, target', CONFIGS, indirect=['config', 'target'])
|
||||
@pytest.mark.temp_skip_ci(targets=['esp32p4'], reason='p4 rev3 migration')
|
||||
def test_assert_cache_disabled(dut: PanicTestDut, config: str, test_func_name: str) -> None:
|
||||
if dut.target == 'esp32s2':
|
||||
pytest.xfail(reason='Crashes in itoa which is not in ROM, IDF-3572')
|
||||
@@ -576,6 +591,7 @@ def cache_error_log_check(dut: PanicTestDut) -> None:
|
||||
|
||||
@pytest.mark.generic
|
||||
@idf_parametrize('config, target', CONFIG_PANIC, indirect=['config', 'target'])
|
||||
@pytest.mark.temp_skip_ci(targets=['esp32p4'], reason='p4 rev3 migration')
|
||||
def test_assert_cache_write_back_error_can_print_backtrace(dut: PanicTestDut, config: str, test_func_name: str) -> None:
|
||||
dut.run_test_func(test_func_name)
|
||||
cache_error_log_check(dut)
|
||||
@@ -584,6 +600,7 @@ def test_assert_cache_write_back_error_can_print_backtrace(dut: PanicTestDut, co
|
||||
@pytest.mark.generic
|
||||
@pytest.mark.parametrize('config', ['panic_delay'], indirect=True)
|
||||
@idf_parametrize('target', ['esp32'], indirect=['target'])
|
||||
@pytest.mark.temp_skip_ci(targets=['esp32p4'], reason='p4 rev3 migration')
|
||||
def test_panic_delay(dut: PanicTestDut) -> None:
|
||||
dut.run_test_func('test_storeprohibited')
|
||||
try:
|
||||
@@ -601,6 +618,7 @@ def test_panic_delay(dut: PanicTestDut) -> None:
|
||||
|
||||
@pytest.mark.generic
|
||||
@idf_parametrize('config, target', CONFIG_PANIC, indirect=['config', 'target'])
|
||||
@pytest.mark.temp_skip_ci(targets=['esp32p4'], reason='p4 rev3 migration')
|
||||
def test_panic_handler_stuck0(dut: PanicTestDut, config: str, test_func_name: str) -> None:
|
||||
dut.run_test_func(test_func_name)
|
||||
|
||||
@@ -613,6 +631,7 @@ def test_panic_handler_stuck0(dut: PanicTestDut, config: str, test_func_name: st
|
||||
|
||||
@pytest.mark.generic
|
||||
@idf_parametrize('config, target', CONFIG_PANIC_DUAL_CORE, indirect=['config', 'target'])
|
||||
@pytest.mark.temp_skip_ci(targets=['esp32p4'], reason='p4 rev3 migration')
|
||||
def test_panic_handler_stuck1(dut: PanicTestDut, config: str, test_func_name: str) -> None:
|
||||
dut.run_test_func(test_func_name)
|
||||
|
||||
@@ -625,6 +644,7 @@ def test_panic_handler_stuck1(dut: PanicTestDut, config: str, test_func_name: st
|
||||
|
||||
@pytest.mark.generic
|
||||
@idf_parametrize('config, target', CONFIG_PANIC, indirect=['config', 'target'])
|
||||
@pytest.mark.temp_skip_ci(targets=['esp32p4'], reason='p4 rev3 migration')
|
||||
def test_panic_handler_crash0(dut: PanicTestDut, config: str, test_func_name: str) -> None:
|
||||
dut.run_test_func(test_func_name)
|
||||
|
||||
@@ -643,6 +663,7 @@ def test_panic_handler_crash0(dut: PanicTestDut, config: str, test_func_name: st
|
||||
|
||||
@pytest.mark.generic
|
||||
@idf_parametrize('config, target', CONFIG_PANIC_DUAL_CORE, indirect=['config', 'target'])
|
||||
@pytest.mark.temp_skip_ci(targets=['esp32p4'], reason='p4 rev3 migration')
|
||||
def test_panic_handler_crash1(dut: PanicTestDut, config: str, test_func_name: str) -> None:
|
||||
dut.run_test_func(test_func_name)
|
||||
|
||||
@@ -769,6 +790,7 @@ CONFIGS_MEMPROT_INVALID_REGION_PROTECTION_USING_PMA = list(
|
||||
|
||||
@pytest.mark.generic
|
||||
@idf_parametrize('config, target', CONFIGS_MEMPROT_DCACHE, indirect=['config', 'target'])
|
||||
@pytest.mark.temp_skip_ci(targets=['esp32p4'], reason='p4 rev3 migration')
|
||||
def test_dcache_read_violation(dut: PanicTestDut, test_func_name: str) -> None:
|
||||
dut.run_test_func(test_func_name)
|
||||
dut.expect_exact(r'Test error: Test function has returned')
|
||||
@@ -779,6 +801,7 @@ def test_dcache_read_violation(dut: PanicTestDut, test_func_name: str) -> None:
|
||||
@pytest.mark.generic
|
||||
@pytest.mark.xfail('config.getvalue("target") == "esp32s2"', reason='Incorrect panic reason may be observed', run=False)
|
||||
@idf_parametrize('config, target', CONFIGS_MEMPROT_DCACHE, indirect=['config', 'target'])
|
||||
@pytest.mark.temp_skip_ci(targets=['esp32p4'], reason='p4 rev3 migration')
|
||||
def test_dcache_write_violation(dut: PanicTestDut, test_func_name: str) -> None:
|
||||
dut.run_test_func(test_func_name)
|
||||
dut.expect_gme('Memory protection fault')
|
||||
@@ -809,12 +832,14 @@ def iram_reg1_write_violation(dut: PanicTestDut, test_func_name: str) -> None:
|
||||
@pytest.mark.generic
|
||||
@pytest.mark.temp_skip_ci(targets=['esp32h21'], reason='lack of runners')
|
||||
@idf_parametrize('config, target', CONFIGS_MEMPROT_IDRAM, indirect=['config', 'target'])
|
||||
@pytest.mark.temp_skip_ci(targets=['esp32p4'], reason='p4 rev3 migration')
|
||||
def test_iram_reg1_write_violation(dut: PanicTestDut, test_func_name: str) -> None:
|
||||
iram_reg1_write_violation(dut, test_func_name)
|
||||
|
||||
|
||||
@pytest.mark.generic
|
||||
@idf_parametrize('config, target', CONFIGS_MEMPROT_IDRAM_L2_MEM_NON_CACHE, indirect=['config', 'target'])
|
||||
@pytest.mark.temp_skip_ci(targets=['esp32p4'], reason='p4 rev3 migration')
|
||||
def test_non_cache_iram_reg1_write_violation(dut: PanicTestDut, test_func_name: str) -> None:
|
||||
if dut.target == 'esp32p4' and not dut.app.sdkconfig.get('ESP32P4_SELECTS_REV_LESS_V3'):
|
||||
iram_reg1_write_violation(dut, test_func_name)
|
||||
@@ -846,12 +871,14 @@ def iram_reg_write_violation(dut: PanicTestDut, test_func_name: str) -> None:
|
||||
@pytest.mark.generic
|
||||
@pytest.mark.temp_skip_ci(targets=['esp32h21'], reason='lack of runners')
|
||||
@idf_parametrize('config, target', CONFIGS_MEMPROT_IDRAM, indirect=['config', 'target'])
|
||||
@pytest.mark.temp_skip_ci(targets=['esp32p4'], reason='p4 rev3 migration')
|
||||
def test_iram_reg2_write_violation(dut: PanicTestDut, test_func_name: str) -> None:
|
||||
iram_reg_write_violation(dut, test_func_name)
|
||||
|
||||
|
||||
@pytest.mark.generic
|
||||
@idf_parametrize('config, target', CONFIGS_MEMPROT_IDRAM_L2_MEM_NON_CACHE, indirect=['config', 'target'])
|
||||
@pytest.mark.temp_skip_ci(targets=['esp32p4'], reason='p4 rev3 migration')
|
||||
def test_non_cache_iram_reg2_write_violation(dut: PanicTestDut, test_func_name: str) -> None:
|
||||
if dut.target == 'esp32p4' and not dut.app.sdkconfig.get('ESP32P4_SELECTS_REV_LESS_V3'):
|
||||
iram_reg_write_violation(dut, test_func_name)
|
||||
@@ -883,12 +910,14 @@ def iram_reg3_write_violation(dut: PanicTestDut, test_func_name: str) -> None:
|
||||
@pytest.mark.generic
|
||||
@pytest.mark.temp_skip_ci(targets=['esp32h21'], reason='lack of runners')
|
||||
@idf_parametrize('config, target', CONFIGS_MEMPROT_IDRAM, indirect=['config', 'target'])
|
||||
@pytest.mark.temp_skip_ci(targets=['esp32p4'], reason='p4 rev3 migration')
|
||||
def test_iram_reg3_write_violation(dut: PanicTestDut, test_func_name: str) -> None:
|
||||
iram_reg_write_violation(dut, test_func_name)
|
||||
|
||||
|
||||
@pytest.mark.generic
|
||||
@idf_parametrize('config, target', CONFIGS_MEMPROT_IDRAM_L2_MEM_NON_CACHE, indirect=['config', 'target'])
|
||||
@pytest.mark.temp_skip_ci(targets=['esp32p4'], reason='p4 rev3 migration')
|
||||
def test_non_cache_iram_reg3_write_violation(dut: PanicTestDut, test_func_name: str) -> None:
|
||||
if dut.target == 'esp32p4' and not dut.app.sdkconfig.get('ESP32P4_SELECTS_REV_LESS_V3'):
|
||||
iram_reg_write_violation(dut, test_func_name)
|
||||
@@ -922,12 +951,14 @@ def iram_reg4_write_violation(dut: PanicTestDut, test_func_name: str) -> None:
|
||||
@pytest.mark.xfail('config.getvalue("target") == "esp32s2"', reason='Incorrect panic reason may be observed', run=False)
|
||||
@pytest.mark.temp_skip_ci(targets=['esp32h21'], reason='lack of runners')
|
||||
@idf_parametrize('config, target', CONFIGS_MEMPROT_IDRAM, indirect=['config', 'target'])
|
||||
@pytest.mark.temp_skip_ci(targets=['esp32p4'], reason='p4 rev3 migration')
|
||||
def test_iram_reg4_write_violation(dut: PanicTestDut, test_func_name: str) -> None:
|
||||
iram_reg_write_violation(dut, test_func_name)
|
||||
|
||||
|
||||
@pytest.mark.generic
|
||||
@idf_parametrize('config, target', CONFIGS_MEMPROT_IDRAM_L2_MEM_NON_CACHE, indirect=['config', 'target'])
|
||||
@pytest.mark.temp_skip_ci(targets=['esp32p4'], reason='p4 rev3 migration')
|
||||
def test_non_cache_iram_reg4_write_violation(dut: PanicTestDut, test_func_name: str) -> None:
|
||||
if dut.target == 'esp32p4' and not dut.app.sdkconfig.get('ESP32P4_SELECTS_REV_LESS_V3'):
|
||||
iram_reg_write_violation(dut, test_func_name)
|
||||
@@ -956,12 +987,14 @@ def dram_reg1_execute_violation(dut: PanicTestDut, test_func_name: str) -> None:
|
||||
)
|
||||
@pytest.mark.temp_skip_ci(targets=['esp32h21'], reason='lack of runners')
|
||||
@idf_parametrize('config, target', CONFIGS_MEMPROT_IDRAM, indirect=['config', 'target'])
|
||||
@pytest.mark.temp_skip_ci(targets=['esp32p4'], reason='p4 rev3 migration')
|
||||
def test_dram_reg1_execute_violation(dut: PanicTestDut, test_func_name: str) -> None:
|
||||
dram_reg1_execute_violation(dut, test_func_name)
|
||||
|
||||
|
||||
@pytest.mark.generic
|
||||
@idf_parametrize('config, target', CONFIGS_MEMPROT_IDRAM_L2_MEM_NON_CACHE, indirect=['config', 'target'])
|
||||
@pytest.mark.temp_skip_ci(targets=['esp32p4'], reason='p4 rev3 migration')
|
||||
def test_non_cache_dram_reg1_execute_violation(dut: PanicTestDut, test_func_name: str) -> None:
|
||||
if dut.target == 'esp32p4' and not dut.app.sdkconfig.get('ESP32P4_SELECTS_REV_LESS_V3'):
|
||||
dram_reg1_execute_violation(dut, test_func_name)
|
||||
@@ -989,12 +1022,14 @@ def dram_reg2_execute_violation(dut: PanicTestDut, test_func_name: str) -> None:
|
||||
)
|
||||
@pytest.mark.temp_skip_ci(targets=['esp32h21'], reason='lack of runners')
|
||||
@idf_parametrize('config, target', CONFIGS_MEMPROT_IDRAM, indirect=['config', 'target'])
|
||||
@pytest.mark.temp_skip_ci(targets=['esp32p4'], reason='p4 rev3 migration')
|
||||
def test_dram_reg2_execute_violation(dut: PanicTestDut, test_func_name: str) -> None:
|
||||
dram_reg2_execute_violation(dut, test_func_name)
|
||||
|
||||
|
||||
@pytest.mark.generic
|
||||
@idf_parametrize('config, target', CONFIGS_MEMPROT_IDRAM_L2_MEM_NON_CACHE, indirect=['config', 'target'])
|
||||
@pytest.mark.temp_skip_ci(targets=['esp32p4'], reason='p4 rev3 migration')
|
||||
def test_non_cache_dram_reg2_execute_violation(dut: PanicTestDut, test_func_name: str) -> None:
|
||||
if dut.target == 'esp32p4' and not dut.app.sdkconfig.get('ESP32P4_SELECTS_REV_LESS_V3'):
|
||||
dram_reg2_execute_violation(dut, test_func_name)
|
||||
@@ -1003,6 +1038,7 @@ def test_non_cache_dram_reg2_execute_violation(dut: PanicTestDut, test_func_name
|
||||
@pytest.mark.generic
|
||||
@pytest.mark.temp_skip_ci(targets=['esp32h21'], reason='lack of runners')
|
||||
@idf_parametrize('config, target', CONFIGS_MEMPROT_RTC_FAST_MEM, indirect=['config', 'target'])
|
||||
@pytest.mark.temp_skip_ci(targets=['esp32p4'], reason='p4 rev3 migration')
|
||||
def test_rtc_fast_reg1_execute_violation(dut: PanicTestDut, test_func_name: str) -> None:
|
||||
dut.run_test_func(test_func_name)
|
||||
dut.expect_exact(r'Test error: Test function has returned')
|
||||
@@ -1015,6 +1051,7 @@ def test_rtc_fast_reg1_execute_violation(dut: PanicTestDut, test_func_name: str)
|
||||
reason='Not a violation condition, no PMS peripheral cases',
|
||||
)
|
||||
@idf_parametrize('config, target', CONFIGS_MEMPROT_RTC_FAST_MEM, indirect=['config', 'target'])
|
||||
@pytest.mark.temp_skip_ci(targets=['esp32p4'], reason='p4 rev3 migration')
|
||||
def test_rtc_fast_reg2_execute_violation(dut: PanicTestDut, test_func_name: str) -> None:
|
||||
dut.run_test_func(test_func_name)
|
||||
dut.expect_gme('Memory protection fault')
|
||||
@@ -1040,6 +1077,7 @@ def test_rtc_fast_reg2_execute_violation(dut: PanicTestDut, test_func_name: str)
|
||||
)
|
||||
@pytest.mark.temp_skip_ci(targets=['esp32h21'], reason='lack of runners')
|
||||
@idf_parametrize('config, target', CONFIGS_MEMPROT_RTC_FAST_MEM, indirect=['config', 'target'])
|
||||
@pytest.mark.temp_skip_ci(targets=['esp32p4'], reason='p4 rev3 migration')
|
||||
def test_rtc_fast_reg3_execute_violation(dut: PanicTestDut, test_func_name: str) -> None:
|
||||
dut.run_test_func(test_func_name)
|
||||
|
||||
@@ -1065,6 +1103,7 @@ def test_rtc_fast_reg3_execute_violation(dut: PanicTestDut, test_func_name: str)
|
||||
|
||||
@pytest.mark.generic
|
||||
@idf_parametrize('config, target', CONFIGS_MEMPROT_RTC_SLOW_MEM, indirect=['config', 'target'])
|
||||
@pytest.mark.temp_skip_ci(targets=['esp32p4'], reason='p4 rev3 migration')
|
||||
def test_rtc_slow_reg1_execute_violation(dut: PanicTestDut, test_func_name: str) -> None:
|
||||
dut.run_test_func(test_func_name)
|
||||
dut.expect_gme('Memory protection fault')
|
||||
@@ -1076,6 +1115,7 @@ def test_rtc_slow_reg1_execute_violation(dut: PanicTestDut, test_func_name: str)
|
||||
|
||||
@pytest.mark.generic
|
||||
@idf_parametrize('config, target', CONFIGS_MEMPROT_RTC_SLOW_MEM, indirect=['config', 'target'])
|
||||
@pytest.mark.temp_skip_ci(targets=['esp32p4'], reason='p4 rev3 migration')
|
||||
def test_rtc_slow_reg2_execute_violation(dut: PanicTestDut, test_func_name: str) -> None:
|
||||
dut.run_test_func(test_func_name)
|
||||
dut.expect_gme('Memory protection fault')
|
||||
@@ -1095,12 +1135,14 @@ def irom_reg_write_violation(dut: PanicTestDut, test_func_name: str) -> None:
|
||||
@pytest.mark.generic
|
||||
@pytest.mark.temp_skip_ci(targets=['esp32h21'], reason='lack of runners')
|
||||
@idf_parametrize('config, target', CONFIGS_MEMPROT_FLASH_IDROM, indirect=['config', 'target'])
|
||||
@pytest.mark.temp_skip_ci(targets=['esp32p4'], reason='p4 rev3 migration')
|
||||
def test_irom_reg_write_violation(dut: PanicTestDut, test_func_name: str) -> None:
|
||||
irom_reg_write_violation(dut, test_func_name)
|
||||
|
||||
|
||||
@pytest.mark.generic
|
||||
@idf_parametrize('config, target', CONFIGS_MEMPROT_FLASH_IDROM_L2_NON_CACHE, indirect=['config', 'target'])
|
||||
@pytest.mark.temp_skip_ci(targets=['esp32p4'], reason='p4 rev3 migration')
|
||||
def test_non_cache_irom_reg_write_violation(dut: PanicTestDut, test_func_name: str) -> None:
|
||||
if dut.target == 'esp32p4' and not dut.app.sdkconfig.get('ESP32P4_SELECTS_REV_LESS_V3'):
|
||||
irom_reg_write_violation(dut, test_func_name)
|
||||
@@ -1116,12 +1158,14 @@ def drom_reg_write_violation(dut: PanicTestDut, test_func_name: str) -> None:
|
||||
@pytest.mark.generic
|
||||
@pytest.mark.temp_skip_ci(targets=['esp32h21'], reason='lack of runners')
|
||||
@idf_parametrize('config, target', CONFIGS_MEMPROT_FLASH_IDROM, indirect=['config', 'target'])
|
||||
@pytest.mark.temp_skip_ci(targets=['esp32p4'], reason='p4 rev3 migration')
|
||||
def test_drom_reg_write_violation(dut: PanicTestDut, test_func_name: str) -> None:
|
||||
drom_reg_write_violation(dut, test_func_name)
|
||||
|
||||
|
||||
@pytest.mark.generic
|
||||
@idf_parametrize('config, target', CONFIGS_MEMPROT_FLASH_IDROM_L2_NON_CACHE, indirect=['config', 'target'])
|
||||
@pytest.mark.temp_skip_ci(targets=['esp32p4'], reason='p4 rev3 migration')
|
||||
def test_non_cache_drom_reg_write_violation(dut: PanicTestDut, test_func_name: str) -> None:
|
||||
if dut.target == 'esp32p4' and not dut.app.sdkconfig.get('ESP32P4_SELECTS_REV_LESS_V3'):
|
||||
drom_reg_write_violation(dut, test_func_name)
|
||||
@@ -1137,12 +1181,14 @@ def drom_reg_execute_violation(dut: PanicTestDut, test_func_name: str) -> None:
|
||||
@pytest.mark.generic
|
||||
@pytest.mark.temp_skip_ci(targets=['esp32h21'], reason='lack of runners')
|
||||
@idf_parametrize('config, target', CONFIGS_MEMPROT_FLASH_IDROM, indirect=['config', 'target'])
|
||||
@pytest.mark.temp_skip_ci(targets=['esp32p4'], reason='p4 rev3 migration')
|
||||
def test_drom_reg_execute_violation(dut: PanicTestDut, test_func_name: str) -> None:
|
||||
drom_reg_execute_violation(dut, test_func_name)
|
||||
|
||||
|
||||
@pytest.mark.generic
|
||||
@idf_parametrize('config, target', CONFIGS_MEMPROT_FLASH_IDROM_L2_NON_CACHE, indirect=['config', 'target'])
|
||||
@pytest.mark.temp_skip_ci(targets=['esp32p4'], reason='p4 rev3 migration')
|
||||
def test_non_cache_drom_reg_execute_violation(dut: PanicTestDut, test_func_name: str) -> None:
|
||||
if dut.target == 'esp32p4' and not dut.app.sdkconfig.get('ESP32P4_SELECTS_REV_LESS_V3'):
|
||||
drom_reg_execute_violation(dut, test_func_name)
|
||||
@@ -1160,6 +1206,7 @@ def spiram_xip_irom_alignment_reg_execute_violation(dut: PanicTestDut, test_func
|
||||
|
||||
@pytest.mark.generic
|
||||
@idf_parametrize('config, target', CONFIGS_MEMPROT_SPIRAM_XIP_IROM_ALIGNMENT_HEAP, indirect=['config', 'target'])
|
||||
@pytest.mark.temp_skip_ci(targets=['esp32p4'], reason='p4 rev3 migration')
|
||||
def test_spiram_xip_irom_alignment_reg_execute_violation(dut: PanicTestDut, test_func_name: str) -> None:
|
||||
spiram_xip_irom_alignment_reg_execute_violation(dut, test_func_name)
|
||||
|
||||
@@ -1168,6 +1215,7 @@ def test_spiram_xip_irom_alignment_reg_execute_violation(dut: PanicTestDut, test
|
||||
@idf_parametrize(
|
||||
'config, target', CONFIGS_MEMPROT_SPIRAM_XIP_IROM_ALIGNMENT_HEAP_L2_NON_CACHE, indirect=['config', 'target']
|
||||
)
|
||||
@pytest.mark.temp_skip_ci(targets=['esp32p4'], reason='p4 rev3 migration')
|
||||
def test_non_cache_spiram_xip_irom_alignment_reg_execute_violation(dut: PanicTestDut, test_func_name: str) -> None:
|
||||
if dut.target == 'esp32p4' and not dut.app.sdkconfig.get('ESP32P4_SELECTS_REV_LESS_V3'):
|
||||
spiram_xip_irom_alignment_reg_execute_violation(dut, test_func_name)
|
||||
@@ -1188,6 +1236,7 @@ def spiram_xip_drom_alignment_reg_execute_violation(dut: PanicTestDut, test_func
|
||||
|
||||
@pytest.mark.generic
|
||||
@idf_parametrize('config, target', CONFIGS_MEMPROT_SPIRAM_XIP_DROM_ALIGNMENT_HEAP, indirect=['config', 'target'])
|
||||
@pytest.mark.temp_skip_ci(targets=['esp32p4'], reason='p4 rev3 migration')
|
||||
def test_spiram_xip_drom_alignment_reg_execute_violation(dut: PanicTestDut, test_func_name: str) -> None:
|
||||
spiram_xip_drom_alignment_reg_execute_violation(dut, test_func_name)
|
||||
|
||||
@@ -1196,6 +1245,7 @@ def test_spiram_xip_drom_alignment_reg_execute_violation(dut: PanicTestDut, test
|
||||
@idf_parametrize(
|
||||
'config, target', CONFIGS_MEMPROT_SPIRAM_XIP_DROM_ALIGNMENT_HEAP_L2_NON_CACHE, indirect=['config', 'target']
|
||||
)
|
||||
@pytest.mark.temp_skip_ci(targets=['esp32p4'], reason='p4 rev3 migration')
|
||||
def test_non_cache_spiram_xip_drom_alignment_reg_execute_violation(dut: PanicTestDut, test_func_name: str) -> None:
|
||||
if dut.target == 'esp32p4' and not dut.app.sdkconfig.get('ESP32P4_SELECTS_REV_LESS_V3'):
|
||||
spiram_xip_drom_alignment_reg_execute_violation(dut, test_func_name)
|
||||
@@ -1204,6 +1254,7 @@ def test_non_cache_spiram_xip_drom_alignment_reg_execute_violation(dut: PanicTes
|
||||
@pytest.mark.generic
|
||||
@pytest.mark.temp_skip_ci(targets=['esp32h21'], reason='lack of runners')
|
||||
@idf_parametrize('config, target', CONFIGS_MEMPROT_INVALID_REGION_PROTECTION_USING_PMA, indirect=['config', 'target'])
|
||||
@pytest.mark.temp_skip_ci(targets=['esp32p4'], reason='p4 rev3 migration')
|
||||
def test_invalid_memory_region_write_violation(dut: PanicTestDut, test_func_name: str) -> None:
|
||||
dut.run_test_func(test_func_name)
|
||||
dut.expect_gme('Store access fault')
|
||||
@@ -1214,6 +1265,7 @@ def test_invalid_memory_region_write_violation(dut: PanicTestDut, test_func_name
|
||||
@pytest.mark.generic
|
||||
@pytest.mark.temp_skip_ci(targets=['esp32h21'], reason='lack of runners')
|
||||
@idf_parametrize('config, target', CONFIGS_MEMPROT_INVALID_REGION_PROTECTION_USING_PMA, indirect=['config', 'target'])
|
||||
@pytest.mark.temp_skip_ci(targets=['esp32p4'], reason='p4 rev3 migration')
|
||||
def test_invalid_memory_region_execute_violation(dut: PanicTestDut, test_func_name: str) -> None:
|
||||
dut.run_test_func(test_func_name)
|
||||
dut.expect_gme('Instruction access fault')
|
||||
@@ -1224,6 +1276,7 @@ def test_invalid_memory_region_execute_violation(dut: PanicTestDut, test_func_na
|
||||
@pytest.mark.generic
|
||||
@pytest.mark.parametrize('config', ['gdbstub_coredump'], indirect=True)
|
||||
@idf_parametrize('target', ['esp32'], indirect=['target'])
|
||||
@pytest.mark.temp_skip_ci(targets=['esp32p4'], reason='p4 rev3 migration')
|
||||
def test_gdbstub_coredump(dut: PanicTestDut) -> None:
|
||||
test_func_name = 'test_storeprohibited'
|
||||
dut.run_test_func(test_func_name)
|
||||
@@ -1249,6 +1302,7 @@ def test_hw_stack_guard_cpu(dut: PanicTestDut, cpu: int) -> None:
|
||||
|
||||
@pytest.mark.generic
|
||||
@idf_parametrize('config, target', CONFIGS_HW_STACK_GUARD, indirect=['config', 'target'])
|
||||
@pytest.mark.temp_skip_ci(targets=['esp32p4'], reason='p4 rev3 migration')
|
||||
def test_hw_stack_guard_cpu0(dut: PanicTestDut, config: str, test_func_name: str) -> None:
|
||||
dut.run_test_func(test_func_name)
|
||||
test_hw_stack_guard_cpu(dut, 0)
|
||||
@@ -1257,6 +1311,7 @@ def test_hw_stack_guard_cpu0(dut: PanicTestDut, config: str, test_func_name: str
|
||||
|
||||
@pytest.mark.generic
|
||||
@idf_parametrize('config, target', CONFIGS_HW_STACK_GUARD_DUAL_CORE, indirect=['config', 'target'])
|
||||
@pytest.mark.temp_skip_ci(targets=['esp32p4'], reason='p4 rev3 migration')
|
||||
def test_hw_stack_guard_cpu1(dut: PanicTestDut, config: str, test_func_name: str) -> None:
|
||||
dut.run_test_func(test_func_name)
|
||||
test_hw_stack_guard_cpu(dut, 1)
|
||||
@@ -1266,6 +1321,7 @@ def test_hw_stack_guard_cpu1(dut: PanicTestDut, config: str, test_func_name: str
|
||||
@pytest.mark.parametrize('config', ['panic'], indirect=True)
|
||||
@pytest.mark.generic
|
||||
@idf_parametrize('target', ['esp32'], indirect=['target'])
|
||||
@pytest.mark.temp_skip_ci(targets=['esp32p4'], reason='p4 rev3 migration')
|
||||
def test_illegal_access(dut: PanicTestDut, config: str, test_func_name: str) -> None:
|
||||
dut.run_test_func(test_func_name)
|
||||
if dut.is_xtensa:
|
||||
@@ -1279,6 +1335,7 @@ def test_illegal_access(dut: PanicTestDut, config: str, test_func_name: str) ->
|
||||
|
||||
@pytest.mark.generic
|
||||
@idf_parametrize('config, target', CONFIG_CAPTURE_DRAM, indirect=['config', 'target'])
|
||||
@pytest.mark.temp_skip_ci(targets=['esp32p4'], reason='p4 rev3 migration')
|
||||
def test_capture_dram(dut: PanicTestDut, config: str, test_func_name: str) -> None:
|
||||
dut.run_test_func(test_func_name)
|
||||
regex_pattern = rb'assert failed:[\s\w()]*?\s[.\w/]*\.(?:c|cpp|h|hpp):\d.*$'
|
||||
@@ -1332,12 +1389,14 @@ def _test_coredump_summary(dut: PanicTestDut, flash_encrypted: bool, coredump_en
|
||||
|
||||
@pytest.mark.generic
|
||||
@idf_parametrize('config, target', CONFIG_COREDUMP_SUMMARY, indirect=['config', 'target'])
|
||||
@pytest.mark.temp_skip_ci(targets=['esp32p4'], reason='p4 rev3 migration')
|
||||
def test_coredump_summary(dut: PanicTestDut) -> None:
|
||||
_test_coredump_summary(dut, False, False)
|
||||
|
||||
|
||||
@pytest.mark.flash_encryption
|
||||
@idf_parametrize('config, target', CONFIG_COREDUMP_SUMMARY_FLASH_ENCRYPTED, indirect=['config', 'target'])
|
||||
@pytest.mark.temp_skip_ci(targets=['esp32p4'], reason='p4 rev3 migration')
|
||||
def test_coredump_summary_flash_encrypted(dut: PanicTestDut, config: str) -> None:
|
||||
_test_coredump_summary(dut, True, config == 'coredump_flash_encrypted')
|
||||
|
||||
@@ -1345,6 +1404,7 @@ def test_coredump_summary_flash_encrypted(dut: PanicTestDut, config: str) -> Non
|
||||
@pytest.mark.generic
|
||||
@idf_parametrize('config', ['coredump_flash_default'], indirect=['config'])
|
||||
@idf_parametrize('target', TARGETS_ALL, indirect=['target'])
|
||||
@pytest.mark.temp_skip_ci(targets=['esp32p4'], reason='p4 rev3 migration')
|
||||
def test_tcb_corrupted(dut: PanicTestDut, target: str, config: str, test_func_name: str) -> None:
|
||||
dut.run_test_func(test_func_name)
|
||||
if dut.is_xtensa:
|
||||
@@ -1377,6 +1437,7 @@ def test_tcb_corrupted(dut: PanicTestDut, target: str, config: str, test_func_na
|
||||
|
||||
@pytest.mark.generic
|
||||
@idf_parametrize('config, target', CONFIGS_BACKTRACE, indirect=['config', 'target'])
|
||||
@pytest.mark.temp_skip_ci(targets=['esp32p4'], reason='p4 rev3 migration')
|
||||
def test_panic_print_backtrace(dut: PanicTestDut, config: str, test_func_name: str) -> None:
|
||||
dut.run_test_func(test_func_name)
|
||||
regex_pattern = rb'abort\(\) was called at PC [0-9xa-f]+ on core 0'
|
||||
@@ -1391,6 +1452,7 @@ def test_panic_print_backtrace(dut: PanicTestDut, config: str, test_func_name: s
|
||||
|
||||
@pytest.mark.generic
|
||||
@idf_parametrize('config, target', CONFIG_PANIC_HALT, indirect=['config', 'target'])
|
||||
@pytest.mark.temp_skip_ci(targets=['esp32p4'], reason='p4 rev3 migration')
|
||||
def test_panic_halt(dut: PanicTestDut) -> None:
|
||||
dut.run_test_func('test_panic_halt')
|
||||
dut.expect_exact('CPU halted.', timeout=30)
|
||||
|
||||
@@ -36,6 +36,7 @@ def test_pure_ram_loadable_app(dut: IdfDut) -> None:
|
||||
['esp32', 'esp32s2', 'esp32s3', 'esp32c2', 'esp32c3', 'esp32c6', 'esp32h2', 'esp32c61'],
|
||||
indirect=['target'],
|
||||
)
|
||||
@pytest.mark.temp_skip_ci(targets=['esp32p4'], reason='p4 rev3 migration')
|
||||
def test_ram_loadable_app(dut: IdfDut) -> None:
|
||||
dut.expect('spi_flash: detected chip', timeout=10)
|
||||
dut.expect('Time since boot: 3 seconds...', timeout=30)
|
||||
@@ -51,6 +52,7 @@ def test_ram_loadable_app(dut: IdfDut) -> None:
|
||||
indirect=True,
|
||||
)
|
||||
@idf_parametrize('target', ['esp32p4', 'esp32c5'], indirect=['target'])
|
||||
@pytest.mark.temp_skip_ci(targets=['esp32p4'], reason='p4 rev3 migration')
|
||||
def test_ram_loadable_app_with_ram_app_runner(dut: IdfDut) -> None:
|
||||
dut.expect('spi_flash: detected chip', timeout=10)
|
||||
dut.expect('Time since boot: 3 seconds...', timeout=30)
|
||||
@@ -65,6 +67,7 @@ def test_ram_loadable_app_with_ram_app_runner(dut: IdfDut) -> None:
|
||||
indirect=True,
|
||||
)
|
||||
@idf_parametrize('target', ['esp32p4', 'esp32c5'], indirect=['target'])
|
||||
@pytest.mark.temp_skip_ci(targets=['esp32p4'], reason='p4 rev3 migration')
|
||||
def test_pure_ram_loadable_app_with_ram_app_runner(dut: IdfDut) -> None:
|
||||
dut.expect('main_task: Calling app_main()', timeout=10)
|
||||
dut.expect('Time since boot: 3 seconds...', timeout=10)
|
||||
|
||||
Reference in New Issue
Block a user