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>
82 lines
3.0 KiB
Plaintext
82 lines
3.0 KiB
Plaintext
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
|