summaryrefslogtreecommitdiff
path: root/testsuites/libtests/heapwalk/init.c
diff options
context:
space:
mode:
authorJoel Sherrill <joel.sherrill@OARcorp.com>2009-09-09 16:30:14 +0000
committerJoel Sherrill <joel.sherrill@OARcorp.com>2009-09-09 16:30:14 +0000
commitb2f05456e3fce81ef08d5eb4b44b5832f3e08157 (patch)
tree150759cab07a8862eedaf093efb0325eb7401eb5 /testsuites/libtests/heapwalk/init.c
parent809fb589fc3f4de6409aeebc8b967e9e0e3b5b7d (diff)
2009-09-09 Sebastian Huber <Sebastian.Huber@embedded-brains.de>
* heapwalk/heapwalk.scn, heapwalk/init.c: Add missing _Heap_Walk test cases to get back to 100% object coverage.
Diffstat (limited to 'testsuites/libtests/heapwalk/init.c')
-rw-r--r--testsuites/libtests/heapwalk/init.c17
1 files changed, 10 insertions, 7 deletions
diff --git a/testsuites/libtests/heapwalk/init.c b/testsuites/libtests/heapwalk/init.c
index 565c7fbf47..57e0dc2096 100644
--- a/testsuites/libtests/heapwalk/init.c
+++ b/testsuites/libtests/heapwalk/init.c
@@ -117,14 +117,9 @@ static void test_check_control(void)
TestHeap.min_block_size = TEST_DEFAULT_PAGESIZE / 2;
test_call_heap_walk( false );
- /*
- * Set the page size to a value, other than the first block alloc area. Set
- * even the min_block_size to that value to avoid it being not alligned.
- */
- puts( "\tlet the alloc area of the first block be not page-aligned" );
+ puts( "\tset allocation area of the first block to be non page-aligned" );
test_heap_init_custom();
- TestHeap.page_size = (uintptr_t) TestHeap.first_block + CPU_ALIGNMENT;
- TestHeap.min_block_size = TestHeap.page_size;
+ TestHeap.first_block = (Heap_Block *) ((char *) TestHeap.first_block + CPU_ALIGNMENT);
test_call_heap_walk( false );
puts( "\tclear the previous used flag of the first block" );
@@ -250,6 +245,14 @@ static void test_main_loop(void)
block->size_and_flag = ( 3 * _Heap_Block_size( block ) / 2 ) | HEAP_PREV_BLOCK_USED;
test_call_heap_walk( false );
+ puts( "\tcreate a block with invalid successor" );
+ test_heap_init_default();
+ test_allocate_block();
+ p1 = test_allocate_block();
+ block = _Heap_Block_of_alloc_area( (uintptr_t) p1, TestHeap.page_size );
+ block->size_and_flag = (0 - TestHeap.page_size) | HEAP_PREV_BLOCK_USED;
+ test_call_heap_walk( false );
+
puts( "\tmake a block with a size, so that it includes the next block" );
test_heap_init_default();
p1 = test_allocate_block();