mirror of
https://github.com/zephyrproject-rtos/zephyr
synced 2025-08-15 03:35:22 +00:00
The "alternate thread" test would spawn a thread and then exit the test, but on SMP that other thread runs asynchronously and it was possible for the main thread to exit the test entirely before the test thread had a chance to run (and overflow its stack), leading to spurious test case failures. Obviously we can't exactly synchronize to an async crash, so put a short delay in after spawning the thread. Signed-off-by: Andy Ross <andrew.j.ross@intel.com> |
||
---|---|---|
.. | ||
src | ||
CMakeLists.txt | ||
prj.conf | ||
README.txt | ||
testcase.yaml |
Title: Stack Protection Support Description: This test verifies that stack canaries operate as expected. -------------------------------------------------------------------------------- Building and Running Project: This project outputs to the console. It can be built and executed on QEMU as follows: make run -------------------------------------------------------------------------------- Troubleshooting: Problems caused by out-dated project information can be addressed by issuing one of the following commands then rebuilding the project: make clean # discard results of previous builds # but keep existing configuration info or make pristine # discard results of previous builds # and restore pre-defined configuration info -------------------------------------------------------------------------------- Sample Output: tc_start() - Test Stack Protection Canary Starts main Starts alternate_thread alternate_thread: Input string is too long and stack overflowed! ***** Stack Check Fail! ***** Current thread ID = 0x00103180 Faulting segment:address = 0xdead:0xdeaddead eax: 0xdeaddead, ebx: 0xdeaddead, ecx: 0xdeaddead, edx: 0xdeaddead esi: 0xdeaddead, edi: 0xdeaddead, ebp: 0deaddead, esp: 0xdeaddead eflags: 0xdeaddead Fatal fault in thread 0x00103180! Aborting. main: Stack ok main: Stack ok main: Stack ok main: Stack ok main: Stack ok main: Stack ok =================================================================== PASS - main. =================================================================== PROJECT EXECUTION SUCCESSFUL