test(ci): re-enable ESP32-H4 in core system test apps

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Marius Vikhammer
2026-05-13 09:00:12 +08:00
co-authored by Cursor
parent 96333567e8
commit 8f6ea2a1ba
16 changed files with 12 additions and 90 deletions
@@ -6,10 +6,6 @@ components/esp_hw_support/test_apps/cpu:
- riscv
- xtensa
- soc
disable_test:
- if: IDF_TARGET in ["esp32h4"]
temporary: true
reason: cannot pass # TODO: IDF-15602
components/esp_hw_support/test_apps/esp_hw_support_unity_tests:
depends_components:
@@ -28,7 +28,6 @@ def _run_non_recoverable_case(dut: IdfDut, test_name: str, expected_reason: str)
],
indirect=['config', 'target'],
)
@pytest.mark.temp_skip_ci(targets=['esp32h4'], reason='cannot pass') # TODO: IDF-15602
def test_cpu(dut: IdfDut) -> None:
dut.run_all_single_board_cases(group='!cpu_reset&!cpu_non_recoverable', timeout=120)
@@ -41,7 +40,6 @@ def test_cpu(dut: IdfDut) -> None:
],
indirect=['config', 'target'],
)
@pytest.mark.temp_skip_ci(targets=['esp32h4'], reason='cannot pass') # TODO: IDF-15602
def test_cpu_reset(dut: IdfDut) -> None:
dut.run_all_single_board_cases(group='cpu_reset', timeout=120)
@@ -54,7 +52,6 @@ def test_cpu_reset(dut: IdfDut) -> None:
],
indirect=['config', 'target'],
)
@pytest.mark.temp_skip_ci(targets=['esp32h4'], reason='cannot pass') # TODO: IDF-15602
def test_cpu_non_recoverable(dut: IdfDut) -> None:
expected_reason = 'Unhandled debug exception' if dut.target in {'esp32', 'esp32s2', 'esp32s3'} else 'Breakpoint'
present_cases = {case.name for case in dut.test_menu}
@@ -10,10 +10,6 @@ components/esp_system/test_apps/esp_system_unity_tests:
- if: (CONFIG_NAME == "psram" and SOC_SPIRAM_SUPPORTED != 1)
- if: (CONFIG_NAME == "psram_with_pd_top" and (SOC_SPIRAM_SUPPORTED != 1 or SOC_PM_SUPPORT_TOP_PD != 1))
- if: (CONFIG_NAME == "pd_vddsdio" and (SOC_LIGHT_SLEEP_SUPPORTED != 1))
disable_test:
- if: IDF_TARGET in ["esp32h4"]
temporary: true
reason: cannot pass # TODO: IDF-15604
components/esp_system/test_apps/linux_apis:
enable:
@@ -83,7 +83,7 @@ TEST_CASE("Task WDT task timeout after peripheral powerdown lightsleep", "[task_
#if SOC_MWDT_SUPPORT_XTAL
#if CONFIG_IDF_TARGET_ESP32H2 || CONFIG_IDF_TARGET_ESP32H21
#if CONFIG_IDF_TARGET_ESP32H2 || CONFIG_IDF_TARGET_ESP32H21 || CONFIG_IDF_TARGET_ESP32H4
#define TEST_CPU_FREQUENCY_MHZ 48
#else
#define TEST_CPU_FREQUENCY_MHZ 40
@@ -28,7 +28,6 @@ from pytest_embedded_idf.utils import soc_filtered_targets
],
indirect=['config', 'target'],
)
@pytest.mark.temp_skip_ci(targets=['esp32h4'], reason='cannot pass') # TODO: IDF-15604
def test_esp_system(dut: Dut) -> None:
# esp32p4 32MB PSRAM initialize in startup takes more than 30 sec
dut.run_all_single_board_cases(timeout=60)
@@ -88,7 +87,6 @@ def esp_reset_and_wait_ready_esp32c5_rev1(dut: Dut) -> None:
[target for target in soc_filtered_targets('SOC_LIGHT_SLEEP_SUPPORTED == 1')],
indirect=['target'],
)
@pytest.mark.temp_skip_ci(targets=['esp32h4'], reason='cannot pass') # TODO: IDF-15604
def test_sleep_uart_handling(dut: Dut) -> None:
"""Test UART handling modes during light sleep."""
# Test FLUSH mode output
@@ -132,7 +130,6 @@ def test_sleep_uart_handling(dut: Dut) -> None:
[target for target in soc_filtered_targets('SOC_CPU_LOCKUP_DEBUG_SUPPORTED == 1')],
indirect=['target'],
)
@pytest.mark.temp_skip_ci(targets=['esp32h4'], reason='cannot pass') # TODO: IDF-15604
def test_cpu_lockup_trap_chain(dut: Dut) -> None:
"""Trigger a PRO CPU lockup and verify the lockup output."""
esp_reset_and_wait_ready(dut)
@@ -163,7 +160,6 @@ def test_cpu_lockup_trap_chain(dut: Dut) -> None:
@pytest.mark.generic
@idf_parametrize('config', ['default'], indirect=['config'])
@idf_parametrize('target', ['supported_targets'], indirect=['target'])
@pytest.mark.temp_skip_ci(targets=['esp32h4'], reason='cannot pass') # TODO: IDF-15604
def test_stack_smash_protection(dut: Dut) -> None:
dut.expect_exact('Press ENTER to see the list of tests')
dut.write('"stack smashing protection"')
@@ -1,10 +1,6 @@
# Documentation: .gitlab/ci/README.md#manifest-file-to-control-the-buildtest-apps
components/esp_timer/test_apps:
disable_test:
- if: IDF_TARGET == "esp32h4"
temporary: true
reason: cannot pass # TODO: IDF-15605
depends_components:
- esp_timer
- esp_hal_timg
@@ -39,6 +39,10 @@
#undef IDF_PERFORMANCE_MAX_ESP_TIMER_GET_TIME_PER_CALL
#define IDF_PERFORMANCE_MAX_ESP_TIMER_GET_TIME_PER_CALL 1900
#elif CONFIG_IDF_TARGET_ESP32H4
#undef IDF_PERFORMANCE_MAX_ESP_TIMER_GET_TIME_PER_CALL
#define IDF_PERFORMANCE_MAX_ESP_TIMER_GET_TIME_PER_CALL 1900
#elif CONFIG_IDF_TARGET_ESP32S31
#undef IDF_PERFORMANCE_MAX_ESP_TIMER_GET_TIME_PER_CALL
#define IDF_PERFORMANCE_MAX_ESP_TIMER_GET_TIME_PER_CALL 1200
@@ -6,7 +6,6 @@ from pytest_embedded_idf.utils import idf_parametrize
@pytest.mark.generic
@pytest.mark.temp_skip_ci(targets=['esp32h4'], reason='cannot pass') # TODO: IDF-15605
@idf_parametrize(
'config,target',
[
@@ -22,10 +22,6 @@ components/freertos/test_apps/freertos:
temporary: true
reason: target(s) not supported yet
- if: CONFIG_NAME == "psram" and SOC_SPIRAM_SUPPORTED != 1
disable_test:
- if: IDF_TARGET in ["esp32h4"]
temporary: true
reason: cannot pass # TODO: IDF-15606
depends_components:
- freertos
- esp_system # trigger on changes to idle / tick hooks, wdt, entry point to freertos code
@@ -26,14 +26,14 @@
#endif
// Chip-Specific Data
#if CONFIG_IDF_TARGET_ESP32P4 || CONFIG_IDF_TARGET_ESP32S31
/* Spinlock performance on esp32p4/esp32s31 is slower. */
#if CONFIG_IDF_TARGET_ESP32P4 || CONFIG_IDF_TARGET_ESP32S31 || CONFIG_IDF_TARGET_ESP32H4
/* Spinlock performance on esp32p4/esp32s31/esp32h4 is slower. */
#undef IDF_PERFORMANCE_MAX_FREERTOS_SPINLOCK_CYCLES_PER_OP
#define IDF_PERFORMANCE_MAX_FREERTOS_SPINLOCK_CYCLES_PER_OP 400
#undef IDF_PERFORMANCE_MAX_FREERTOS_SPINLOCK_CYCLES_PER_OP_UNICORE
#define IDF_PERFORMANCE_MAX_FREERTOS_SPINLOCK_CYCLES_PER_OP_UNICORE 150
/* Solicited yields (portYIELD() or taskYIELD()) take longer on esp32p4/esp32s31. TODO: IDF-2809 */
/* Solicited yields (portYIELD() or taskYIELD()) take longer on esp32p4/esp32s31/esp32h4. TODO: IDF-2809 */
#undef IDF_PERFORMANCE_MAX_SCHEDULING_TIME
#define IDF_PERFORMANCE_MAX_SCHEDULING_TIME 3200
#endif
@@ -44,7 +44,6 @@ from pytest_embedded_idf.utils import idf_parametrize
],
indirect=['config', 'target'],
)
@pytest.mark.temp_skip_ci(targets=['esp32h4'], reason='cannot pass') # TODO: IDF-15606
def test_freertos(dut: Dut) -> None:
dut.run_all_single_board_cases()
+1 -1
View File
@@ -205,7 +205,7 @@ extern "C" {
/* Espressif's custom CSR for the current privilege mode */
#if CONFIG_IDF_TARGET_ESP32C6 || CONFIG_IDF_TARGET_ESP32H2
#define CSR_PRV_MODE 0xC10
#elif CONFIG_IDF_TARGET_ESP32C5 || CONFIG_IDF_TARGET_ESP32C61 || CONFIG_IDF_TARGET_ESP32P4 || CONFIG_IDF_TARGET_ESP32S31
#else
#define CSR_PRV_MODE 0x810
#endif