blob: 220606ab5c833ba38aa7f6f97dc44a06dffea6f0 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
*** 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
let the alloc area of the first block be not 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
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 0x????????, area end 0x????????
first block 0x????????, last block 0x????????
first free 0x????????, last free 0x????????
FAIL[0]: page size is zero
*** END OF HEAP WALK TEST ***
|