zephyr/samples/microkernel/test/test_map_priv
Daniel Leung 971eb0ef44 samples/microkernel: add test for private memory maps
This adds unit test for microkernel private memory maps.
The code piggybacks to the public memory map test (by
including the same source file), so any updates to
the test will be applied to both.

Note that the prj.mdef are different for both tests, since
the private memory maps test move the memory maps inside
source code. So, both mdef files will need to be updated at
the same time.

Change-Id: Ia7f65f55b61d9fb0d42ba58d63662e914d69194e
Signed-off-by: Daniel Leung <daniel.leung@intel.com>
2016-02-05 20:15:18 -05:00
..
src samples/microkernel: add test for private memory maps 2016-02-05 20:15:18 -05:00
Makefile samples/microkernel: add test for private memory maps 2016-02-05 20:15:18 -05:00
prj_arm.conf samples/microkernel: add test for private memory maps 2016-02-05 20:15:18 -05:00
prj_x86.conf samples/microkernel: add test for private memory maps 2016-02-05 20:15:18 -05:00
prj.mdef samples/microkernel: add test for private memory maps 2016-02-05 20:15:18 -05:00
README.txt samples/microkernel: add test for private memory maps 2016-02-05 20:15:18 -05:00
testcase.ini samples/microkernel: add test for private memory maps 2016-02-05 20:15:18 -05:00

Title: test_map_priv

Description:

This test verifies that the microkernel memory map APIs operate as expected.
This also verifies the mechanism to define private memory map and its usage.

--------------------------------------------------------------------------------

Building and Running Project:

This microkernel project outputs to the console.  It can be built and executed
on QEMU as follows:

    make qemu

--------------------------------------------------------------------------------

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 Microkernel Memory Maps
Starts RegressionTask
Function testMapGetAllBlocks
MAP_LgBlks used 0 blocks
  task_mem_map_alloc OK, p[0] = 001040a8
MAP_LgBlks used 1 blocks
  task_mem_map_alloc OK, p[1] = 00103ca8
MAP_LgBlks used 2 blocks
  task_mem_map_alloc RC_FAIL expected as all (2) blocks are used.
===================================================================
printPointers: p[0] = 001040a8, p[1] = 00103ca8,
===================================================================
Function testMapFreeAllBlocks
MAP_LgBlks used 2 blocks
  block ptr to free p[0] = 001040a8
MAP_LgBlks freed 1 block
MAP_LgBlks used 1 blocks
  block ptr to free p[1] = 00103ca8
MAP_LgBlks freed 2 block
MAP_LgBlks used 0 blocks
===================================================================
printPointers: p[0] = 00000000, p[1] = 00000000,
===================================================================
Starts HelperTask
Function testMapGetAllBlocks
MAP_LgBlks used 0 blocks
  task_mem_map_alloc OK, p[0] = 00103ca8
MAP_LgBlks used 1 blocks
  task_mem_map_alloc OK, p[1] = 001040a8
MAP_LgBlks used 2 blocks
  task_mem_map_alloc RC_FAIL expected as all (2) blocks are used.
===================================================================
RegressionTask: task_mem_map_alloc_wait_timeout timeout expected
RegressionTask: start to wait for block
HelperTask: About to free a memory block
RegressionTask: task_mem_map_alloc_wait_timeout OK, block allocated at 00103ca8
RegressionTask: start to wait for block
HelperTask: About to free another memory block
RegressionTask: task_mem_map_alloc_wait OK, block allocated at 00000000
HelperTask: freed all blocks allocated by this task
===================================================================
PASS - HelperTask.
RegressionTask: Used 1 block
RegressionTask: 1 block freed, used 0 block
===================================================================
PASS - RegressionTask.
===================================================================
PROJECT EXECUTION SUCCESSFUL