zephyr/tests/kernel/mem_slab
Anas Nashif 2bc9d69981 build: abstract emulation and replace qemu goal with run
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>
2017-01-10 20:20:47 +00:00
..
src
Makefile tests: introduce Makefile.test 2017-01-03 17:48:44 +00:00
README.txt build: abstract emulation and replace qemu goal with run 2017-01-10 20:20:47 +00:00
prj.conf samples/tests: reduce ram & code size for failing tests on nRF5x boards 2017-01-10 02:23:23 +00:00
testcase.ini

README.txt

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