zephyr/tests/kernel/mem_protect/stackprot
Daniel Leung fd8ffdb833 boards: qemu_x86_tiny: enable support for coverage
This adds the bits so that we can use qemu_x86_tiny for
coverage, as this is currently the only board that can do
demand paging.

This uses the board revision as a way to specify the RAM
size as coverage requires more memory available to store
the coverage data. By piggybacking onto board revision,
this avoids adding another board config just for coverage.

Signed-off-by: Daniel Leung <daniel.leung@intel.com>
2022-08-18 17:23:18 +02:00
..
boards boards: qemu_x86_tiny: enable support for coverage 2022-08-18 17:23:18 +02:00
src test: fix more legacy #include paths 2022-08-02 16:41:41 +01:00
CMakeLists.txt
prj.conf tests: kernel: mem_protect: move the stack protection test to new ztest 2022-07-14 10:29:33 +02:00
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