zephyr/tests/kernel/mem_slab
David B. Kinder ac74d8b652 license: Replace Apache boilerplate with SPDX tag
Replace the existing Apache 2.0 boilerplate header with an SPDX tag
throughout the zephyr code tree. This patch was generated via a
script run over the master branch.

Also updated doc/porting/application.rst that had a dependency on
line numbers in a literal include.

Manually updated subsys/logging/sys_log.c that had a malformed
header in the original file.  Also cleanup several cases that already
had a SPDX tag and we either got a duplicate or missed updating.

Jira: ZEP-1457

Change-Id: I6131a1d4ee0e58f5b938300c2d2fc77d2e69572c
Signed-off-by: David B. Kinder <david.b.kinder@intel.com>
Signed-off-by: Kumar Gala <kumar.gala@linaro.org>
2017-01-19 03:50:58 +00:00
..
src license: Replace Apache boilerplate with SPDX tag 2017-01-19 03:50:58 +00:00
Makefile tests: introduce Makefile.test 2017-01-03 17:48:44 +00:00
prj.conf samples/tests: reduce ram & code size for failing tests on nRF5x boards 2017-01-10 02:23:23 +00:00
README.txt build: abstract emulation and replace qemu goal with run 2017-01-10 20:20:47 +00:00
testcase.ini

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