This will replace the current goal of 'make qemu' with 'make run' and moves Qemu handling into its own file and into the boards instead of being architecture specific. We should be able to add new boards that support some other type of emulation (by adding scripts/Makefile.<emu type>) and allow the board to define their own options for the use type of emulation. 'make qemu' will still work, however it will be deprecated, starting with this commit it is recommended to use 'make run'. Jira: ZEP-359 Change-Id: I1cacd56b4ec09421a58cf5d010e22e9035214df6 Signed-off-by: Anas Nashif <anas.nashif@intel.com>
95 lines
3.7 KiB
Plaintext
95 lines
3.7 KiB
Plaintext
Title: Memory Slab APIs
|
|
|
|
Description:
|
|
|
|
This test verifies that the kernel memory slab APIs operate as expected.
|
|
|
|
--------------------------------------------------------------------------------
|
|
|
|
Building and Running Project:
|
|
|
|
This microkernel 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 Kernel memory slabs
|
|
Starts RegressionTask
|
|
===================================================================
|
|
(1) - Allocate and free 2 blocks in <RegressionTask>
|
|
===================================================================
|
|
Function testSlabGetAllBlocks
|
|
MAP_LgBlks used 0 blocks
|
|
k_mem_slab_alloc OK, p[0] = 0x00104e00
|
|
MAP_LgBlks used 1 blocks
|
|
k_mem_slab_alloc OK, p[1] = 0x00104a00
|
|
MAP_LgBlks used 2 blocks
|
|
k_mem_slab_alloc RC_FAIL expected as all (2) blocks are used.
|
|
===================================================================
|
|
printPointers: p[0] = 0x00104e00, p[1] = 0x00104a00,
|
|
===================================================================
|
|
Function testSlabFreeAllBlocks
|
|
MAP_LgBlks used 2 blocks
|
|
block ptr to free p[0] = 0x00104e00
|
|
MAP_LgBlks freed 1 block
|
|
MAP_LgBlks used 1 blocks
|
|
block ptr to free p[1] = 0x00104a00
|
|
MAP_LgBlks freed 2 block
|
|
MAP_LgBlks used 0 blocks
|
|
===================================================================
|
|
Starts HelperTask
|
|
===================================================================
|
|
(2) - Allocate 2 blocks in <HelperTask>
|
|
===================================================================
|
|
Function testSlabGetAllBlocks
|
|
MAP_LgBlks used 0 blocks
|
|
k_mem_slab_alloc OK, p[0] = 0x00104a00
|
|
MAP_LgBlks used 1 blocks
|
|
k_mem_slab_alloc OK, p[1] = 0x00104e00
|
|
MAP_LgBlks used 2 blocks
|
|
k_mem_slab_alloc RC_FAIL expected as all (2) blocks are used.
|
|
===================================================================
|
|
===================================================================
|
|
(3) - Further allocation results in timeout in <RegressionTask>
|
|
===================================================================
|
|
RegressionTask: k_mem_slab_alloc times out which is expected
|
|
RegressionTask: start to wait for block
|
|
===================================================================
|
|
(4) - Free a block in <HelperTask> to unblock the other task from alloc timeout
|
|
===================================================================
|
|
HelperTask: About to free a memory block
|
|
RegressionTask: k_mem_slab_alloc OK, block allocated at 0x00104a00
|
|
RegressionTask: start to wait for block
|
|
===================================================================
|
|
(5) <HelperTask> freeing the next block
|
|
===================================================================
|
|
HelperTask: About to free another memory block
|
|
RegressionTask: k_mem_slab_alloc OK, block allocated at 0x00104e00
|
|
HelperTask: freed all blocks allocated by this task
|
|
===================================================================
|
|
PASS - HelperTask.
|
|
RegressionTask: Used 2 block
|
|
RegressionTask: 1 block freed, used 1 block
|
|
===================================================================
|
|
PASS - RegressionTask.
|
|
===================================================================
|
|
PROJECT EXECUTION SUCCESSFUL
|
|
|