Title: Memory Map APIs
Description:
This test verifies that the microkernel memory map 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 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