mirror of
https://github.com/espressif/esp-idf.git
synced 2025-10-03 10:30:58 +02:00
test(panic_handler): Added unit test to verify panic handler can halt
This test verifies that the panic handler can indeed halt when configured to print and halt instead of rebboting.
This commit is contained in:
@@ -83,6 +83,10 @@ void test_setup_coredump_summary(void);
|
||||
void test_coredump_summary(void);
|
||||
#endif
|
||||
|
||||
#if CONFIG_ESP_SYSTEM_PANIC_PRINT_HALT
|
||||
void test_panic_halt(void);
|
||||
#endif /* CONFIG_ESP_SYSTEM_PANIC_PRINT_HALT */
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
@@ -127,6 +127,9 @@ void app_main(void)
|
||||
HANDLE_TEST(test_name, test_tcb_corrupted);
|
||||
HANDLE_TEST(test_name, test_panic_handler_stuck0);
|
||||
HANDLE_TEST(test_name, test_panic_handler_crash0);
|
||||
#if CONFIG_ESP_SYSTEM_PANIC_PRINT_HALT
|
||||
HANDLE_TEST(test_name, test_panic_halt);
|
||||
#endif /* CONFIG_ESP_SYSTEM_PANIC_PRINT_HALT */
|
||||
#if CONFIG_ESP_COREDUMP_ENABLE_TO_FLASH && CONFIG_ESP_COREDUMP_DATA_FORMAT_ELF
|
||||
HANDLE_TEST(test_name, test_setup_coredump_summary);
|
||||
HANDLE_TEST(test_name, test_coredump_summary);
|
||||
|
@@ -443,3 +443,12 @@ void test_capture_dram(void)
|
||||
assert(0);
|
||||
}
|
||||
#endif
|
||||
|
||||
#if CONFIG_ESP_SYSTEM_PANIC_PRINT_HALT
|
||||
void test_panic_halt(void)
|
||||
{
|
||||
printf("Triggering panic. Device should print 'CPU halted.' and stop.\n");
|
||||
fflush(stdout);
|
||||
assert(0);
|
||||
}
|
||||
#endif /* CONFIG_ESP_SYSTEM_PANIC_PRINT_HALT */
|
||||
|
@@ -1237,3 +1237,12 @@ def test_tcb_corrupted(dut: PanicTestDut, target: str, config: str, test_func_na
|
||||
expected_backtrace=None,
|
||||
expected_coredump=coredump_pattern
|
||||
)
|
||||
|
||||
|
||||
@pytest.mark.generic
|
||||
@pytest.mark.supported_targets
|
||||
@pytest.mark.parametrize('config', ['panic_halt'], indirect=True)
|
||||
def test_panic_halt(dut: PanicTestDut) -> None:
|
||||
dut.run_test_func('test_panic_halt')
|
||||
dut.expect_exact('CPU halted.', timeout=30)
|
||||
dut.expect_none(dut.REBOOT, timeout=3)
|
||||
|
5
tools/test_apps/system/panic/sdkconfig.ci.panic_halt
Normal file
5
tools/test_apps/system/panic/sdkconfig.ci.panic_halt
Normal file
@@ -0,0 +1,5 @@
|
||||
# Panic halt CI config
|
||||
CONFIG_ESP_SYSTEM_PANIC_PRINT_HALT=y
|
||||
CONFIG_ESP_SYSTEM_PANIC_PRINT_REBOOT=n
|
||||
CONFIG_ESP_SYSTEM_PANIC_SILENT_REBOOT=n
|
||||
CONFIG_ESP_SYSTEM_PANIC_GDBSTUB=n
|
Reference in New Issue
Block a user