Merge branch 'ci/core_tests_use_caps' into 'master'

ci(system): update system pytest apps to use SOC_CAPs

See merge request espressif/esp-idf!40865
This commit is contained in:
Marius Vikhammer
2025-08-01 10:25:16 +08:00
14 changed files with 50 additions and 37 deletions

View File

@@ -3,12 +3,13 @@
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',
['esp32', 'esp32c3', 'esp32c5', 'esp32c6', 'esp32h2', 'esp32s2', 'esp32s3', 'esp32p4'],
soc_filtered_targets('SOC_RTC_MEM_SUPPORTED == 1'),
indirect=['target'],
)
def test_rtc_reserved_memory(dut: Dut) -> None:

View File

@@ -3,6 +3,7 @@
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
@@ -13,6 +14,6 @@ from pytest_embedded_idf.utils import idf_parametrize
],
indirect=True,
)
@idf_parametrize('target', ['esp32p4'], indirect=['target'])
@idf_parametrize('target', soc_filtered_targets('SOC_DMA2D_SUPPORTED == 1'), indirect=['target'])
def test_dma2d(dut: Dut) -> None:
dut.run_all_single_board_cases()

View File

@@ -3,6 +3,7 @@
import pytest
from pytest_embedded import Dut
from pytest_embedded_idf.utils import idf_parametrize
from pytest_embedded_idf.utils import soc_filtered_targets
def deepsleep_test(dut: Dut, case_name: str) -> None:
@@ -20,7 +21,7 @@ def deepsleep_test(dut: Dut, case_name: str) -> None:
@pytest.mark.generic
@idf_parametrize('target', ['esp32', 'esp32s2', 'esp32s3', 'esp32c3', 'esp32c2'], indirect=['target'])
@idf_parametrize('target', soc_filtered_targets('SOC_RTC_SLOW_CLK_SUPPORT_RC_FAST_D256 == 1'), indirect=['target'])
def test_rtc_8md256_deepsleep(dut: Dut) -> None:
deepsleep_test(dut, '"Can use 8MD256 as RTC clock source in deepsleep"')
@@ -43,7 +44,7 @@ def lightsleep_test(dut: Dut, case_name: str) -> None:
@pytest.mark.generic
@idf_parametrize('target', ['esp32', 'esp32s2', 'esp32s3', 'esp32c3'], indirect=['target'])
@idf_parametrize('target', soc_filtered_targets('SOC_RTC_SLOW_CLK_SUPPORT_RC_FAST_D256 == 1'), indirect=['target'])
def test_rtc_8md256_lightsleep(dut: Dut) -> None:
lightsleep_test(dut, '"Can use 8MD256 as RTC clock source in lightsleep"')

View File

@@ -3,9 +3,10 @@
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', ['esp32s2', 'esp32s3', 'esp32p4'], indirect=['target'])
@idf_parametrize('target', soc_filtered_targets('SOC_USB_OTG_SUPPORTED == 1'), indirect=['target'])
def test_usb_phy(dut: Dut) -> None:
dut.run_all_single_board_cases(group='phy')

View File

@@ -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.temp_skip_ci(targets=['esp32p4'], reason='lack of runners for now')
@pytest.mark.lp_i2s
@idf_parametrize('target', ['esp32p4'], indirect=['target'])
@idf_parametrize('target', soc_filtered_targets('SOC_LP_VAD_SUPPORTED == 1'), indirect=['target'])
def test_efuse_component_ut(dut: Dut) -> None:
dut.run_all_single_board_cases()

View File

@@ -11,6 +11,9 @@ components/esp_system/test_apps/console:
- if: CONFIG_NAME == "console_no_vfs" and SOC_USB_SERIAL_JTAG_SUPPORTED != 1
disable_test:
- if: CONFIG_NAME == "simple" and IDF_TARGET != "esp32"
- if: IDF_TARGET in ["esp32p4", "esp32c5"]
temporary: true
reason: runner issue, IDFCI-3064
components/esp_system/test_apps/esp_system_unity_tests:
disable:

View File

@@ -4,6 +4,7 @@ import pexpect
import pytest
from pytest_embedded import Dut
from pytest_embedded_idf.utils import idf_parametrize
from pytest_embedded_idf.utils import soc_filtered_targets
def not_expect(dut: Dut, output_regex: str) -> None:
@@ -24,10 +25,11 @@ def test_esp_system_console_no_output_uart(dut: Dut) -> None:
@pytest.mark.usb_serial_jtag
@pytest.mark.temp_skip_ci(targets=['esp32p4', 'esp32c5'], reason='IDFCI-3064, temporary lack runner')
@idf_parametrize('config', ['serial_jtag_only'], indirect=['config'])
@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', ['esp32c2', 'esp32c3', 'esp32c6', 'esp32h2', 'esp32s3'], indirect=['target'])
@idf_parametrize('target', soc_filtered_targets('SOC_USB_SERIAL_JTAG_SUPPORTED == 1'), indirect=['target'])
def test_esp_system_console_only_serial_jtag(dut: Dut) -> None:
dut.expect('2nd stage bootloader')
dut.expect('Hello World')
@@ -38,22 +40,22 @@ def test_esp_system_console_only_serial_jtag(dut: Dut) -> None:
@pytest.mark.usb_serial_jtag
@pytest.mark.temp_skip_ci(targets=['esp32p4', 'esp32c5'], reason='IDFCI-3064, temporary lack runner')
@idf_parametrize('config', ['serial_jtag_only_no_vfs'], indirect=['config'])
@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', ['esp32c2', 'esp32c3', 'esp32c6', 'esp32h2', 'esp32s3'], indirect=['target'])
@idf_parametrize('target', soc_filtered_targets('SOC_USB_SERIAL_JTAG_SUPPORTED == 1'), indirect=['target'])
def test_esp_system_console_only_serial_jtag_no_vfs(dut: Dut) -> None:
dut.expect('2nd stage bootloader')
dut.expect('Hello World')
@pytest.mark.usb_serial_jtag
@pytest.mark.temp_skip_ci(targets=['esp32p4', 'esp32c5'], reason='IDFCI-3064, temporary lack runner')
@idf_parametrize('config', ['console_no_vfs'], indirect=['config'])
@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', ['esp32c2', 'esp32c3', 'esp32c5', 'esp32c6', 'esp32c61', 'esp32h2', 'esp32s3'], indirect=['target']
)
@idf_parametrize('target', soc_filtered_targets('SOC_USB_SERIAL_JTAG_SUPPORTED == 1'), indirect=['target'])
def test_esp_system_console_secondary_serial_jtag(dut: Dut) -> None:
dut.expect('2nd stage bootloader')
dut.expect('Hello World')

View File

@@ -3,6 +3,7 @@
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
@@ -11,11 +12,11 @@ from pytest_embedded_idf.utils import idf_parametrize
[
('default', 'supported_targets'),
('pd_vddsdio', 'supported_targets'),
('psram', 'esp32'),
('psram', 'esp32p4'),
('psram', 'esp32s2'),
('psram', 'esp32s3'),
('psram_with_pd_top', 'esp32p4'),
*(('psram', target) for target in soc_filtered_targets('SOC_SPIRAM_SUPPORTED == 1')),
*(
('psram_with_pd_top', target)
for target in soc_filtered_targets('SOC_SPIRAM_SUPPORTED == 1 and SOC_PM_SUPPORT_TOP_PD == 1')
),
('single_core_esp32', 'esp32'),
],
indirect=['config', 'target'],

View File

@@ -3,6 +3,7 @@
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
@@ -43,11 +44,7 @@ def test_heap_in_flash(dut: Dut) -> None:
@pytest.mark.generic
@pytest.mark.parametrize(
'target',
[
'esp32',
'esp32s2',
'esp32s3',
],
soc_filtered_targets('SOC_SPIRAM_SUPPORTED == 1'),
)
@pytest.mark.parametrize('config', ['psram', 'psram_all_ext'])
def test_heap(dut: Dut) -> None:

View File

@@ -4,6 +4,7 @@ import pytest
from pytest_embedded import Dut
from pytest_embedded_idf import CaseTester
from pytest_embedded_idf.utils import idf_parametrize
from pytest_embedded_idf.utils import soc_filtered_targets
@pytest.mark.generic
@@ -14,7 +15,7 @@ from pytest_embedded_idf.utils import idf_parametrize
],
indirect=True,
)
@idf_parametrize('target', ['esp32c5', 'esp32c6', 'esp32p4'], indirect=['target'])
@idf_parametrize('target', soc_filtered_targets('SOC_LP_CORE_SUPPORTED == 1'), indirect=['target'])
def test_lp_core(dut: Dut) -> None:
dut.run_all_single_board_cases()
@@ -27,7 +28,11 @@ def test_lp_core(dut: Dut) -> None:
],
indirect=True,
)
@idf_parametrize('target', ['esp32c5', 'esp32p4'], indirect=['target'])
@idf_parametrize(
'target',
soc_filtered_targets('SOC_LP_CORE_SUPPORTED == 1 and SOC_CLK_LP_FAST_SUPPORT_XTAL == 1'),
indirect=['target'],
)
def test_lp_core_xtal(dut: Dut) -> None:
dut.run_all_single_board_cases()
@@ -40,7 +45,7 @@ def test_lp_core_xtal(dut: Dut) -> None:
],
indirect=True,
)
@idf_parametrize('target', ['esp32p4'], indirect=['target'])
@idf_parametrize('target', soc_filtered_targets('SOC_LP_CORE_SUPPORTED == 1'), indirect=['target'])
def test_lp_vad(dut: Dut) -> None:
dut.run_all_single_board_cases(group='lp_vad')
@@ -63,11 +68,7 @@ def test_lp_core_multi_device(case_tester) -> None: # type: ignore
@pytest.mark.generic_multi_device
@pytest.mark.parametrize(
'target',
[
'esp32c5',
'esp32c6',
'esp32p4',
],
soc_filtered_targets('SOC_LP_CORE_SUPPORTED == 1'),
indirect=True,
)
@pytest.mark.parametrize(

View File

@@ -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', ['esp32c5', 'esp32c6', 'esp32p4'], indirect=['target'])
@idf_parametrize('target', soc_filtered_targets('SOC_LP_CORE_SUPPORTED == 1'), indirect=['target'])
def test_lp_core_hp_uart_print(dut: Dut) -> None:
dut.expect_exact('Press ENTER to see the list of tests')
dut.write('"lp-print can output to hp-uart"')
@@ -16,7 +17,7 @@ def test_lp_core_hp_uart_print(dut: Dut) -> None:
@pytest.mark.generic
@idf_parametrize('target', ['esp32c5', 'esp32c6', 'esp32p4'], indirect=['target'])
@idf_parametrize('target', soc_filtered_targets('SOC_LP_CORE_SUPPORTED == 1'), indirect=['target'])
def test_lp_core_panic(dut: Dut) -> None:
dut.expect_exact('Press ENTER to see the list of tests')
dut.write('"LP-Core panic"')
@@ -27,7 +28,7 @@ def test_lp_core_panic(dut: Dut) -> None:
@pytest.mark.generic
@idf_parametrize('target', ['esp32c5', 'esp32c6', 'esp32p4'], indirect=['target'])
@idf_parametrize('target', soc_filtered_targets('SOC_LP_CORE_SUPPORTED == 1'), indirect=['target'])
def test_lp_core_shared_mem(dut: Dut) -> None:
dut.expect_exact('Press ENTER to see the list of tests')
dut.write('"LP-Core Shared-mem"')

View File

@@ -3,9 +3,10 @@
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', ['esp32', 'esp32s2', 'esp32s3'], indirect=['target'])
@idf_parametrize('target', soc_filtered_targets('SOC_ULP_FSM_SUPPORTED == 1'), indirect=['target'])
def test_ulp_fsm(dut: Dut) -> None:
dut.run_all_single_board_cases()

View File

@@ -3,16 +3,17 @@
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', ['esp32s2', 'esp32s3'], indirect=['target'])
@idf_parametrize('target', soc_filtered_targets('SOC_RISCV_COPROC_SUPPORTED == 1'), indirect=['target'])
def test_ulp_riscv(dut: Dut) -> None: # type: ignore
dut.run_all_single_board_cases()
@pytest.mark.generic_multi_device
@pytest.mark.parametrize('count', [2], indirect=True)
@idf_parametrize('target', ['esp32s2', 'esp32s3'], indirect=['target'])
@idf_parametrize('target', soc_filtered_targets('SOC_RISCV_COPROC_SUPPORTED == 1'), indirect=['target'])
def test_ulp_riscv_multi_device(case_tester) -> None: # type: ignore
case_tester.run_all_multi_dev_cases(reset=True)

View File

@@ -7,11 +7,12 @@ import pytest
from idf_ci_utils import IDF_PATH
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
@pytest.mark.parametrize('config', ['multicore', 'multicore_psram'], indirect=True)
@idf_parametrize('target', ['esp32', 'esp32s3', 'esp32p4'], indirect=['target'])
@idf_parametrize('target', soc_filtered_targets('SOC_CPU_CORES_NUM > 1'), indirect=['target'])
def test_multicore_app_and_unicore_bootloader(dut: Dut, app_downloader, config) -> None: # type: ignore
dut.expect('Multicore bootloader')
dut.expect('Multicore app')
@@ -38,7 +39,7 @@ def test_multicore_app_and_unicore_bootloader(dut: Dut, app_downloader, config)
@pytest.mark.generic
@pytest.mark.parametrize('config', ['unicore', 'unicore_psram'], indirect=True)
@idf_parametrize('target', ['esp32', 'esp32s3', 'esp32p4'], indirect=['target'])
@idf_parametrize('target', soc_filtered_targets('SOC_CPU_CORES_NUM > 1'), indirect=['target'])
def test_unicore_app_and_multicore_bootloader(dut: Dut, app_downloader, config) -> None: # type: ignore
dut.expect('Unicore bootloader')
dut.expect('Unicore app')