*** HEAP WALK TEST *** start with a system state != SYSTEM_STATE_UP testing the _Heap_Walk_check_control() function test what happens if page size = 0 set page size to a not CPU-aligned value set minimal block size to a not page aligned value set allocation area of the first block to be non page-aligned clear the previous used flag of the first block set the previous block size of the first block to an invalid value set invalid next block for last block testing the _Heap_Walk_check_free_list() function no free blocks create a loop in the free list put a block outside the heap to the free list put a block on the free list, which is not page-aligned put a used block on the free list Walk freshly initialized heap Test the main loop set the blocksize so, that the next block is outside the heap walk a heap with blocks with different states of the previous-used flag create a block with a not page aligned size create a block with a size smaller than the min_block_size make a block with a size, so that the block reaches into the next block create a block with invalid successor make a block with a size, so that it includes the next block test the _Heap_Walk_check_free_block() function set a previous size for the next block which is not equal to the size of the actual block clear the previous_used flag of the first free block after an used block take a free block out of the free list test the output-function for the _Heap_Walk() therefore use the (already tested) case with a page size of 0 PASS[0]: page size 0, min block size 16 area begin 0x0202C4BC, area end 0x0202D4BC first block 0x0202C4C0, last block 0x0202D4B0 first free 0x0202C4C0, last free 0x0202C4C0 FAIL[0]: page size is zero *** END OF HEAP WALK TEST ***