summaryrefslogtreecommitdiffstats
path: root/testsuites
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
parent2009-09-09 Christian Mauderer <christian.mauderer@embedded-brains.de> (diff)
downloadrtems-b2f05456e3fce81ef08d5eb4b44b5832f3e08157.tar.bz2
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')
-rw-r--r--testsuites/libtests/ChangeLog5
-rw-r--r--testsuites/libtests/heapwalk/heapwalk.scn9
-rw-r--r--testsuites/libtests/heapwalk/init.c17
3 files changed, 20 insertions, 11 deletions
diff --git a/testsuites/libtests/ChangeLog b/testsuites/libtests/ChangeLog
index 044acdf81b..d7e7a34419 100644
--- a/testsuites/libtests/ChangeLog
+++ b/testsuites/libtests/ChangeLog
@@ -1,3 +1,8 @@
+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.
+
2009-09-09 Christian Mauderer <christian.mauderer@embedded-brains.de>
* heapwalk/init.c, heapwalk/heapwalk.scn, malloctest/init.c,
diff --git a/testsuites/libtests/heapwalk/heapwalk.scn b/testsuites/libtests/heapwalk/heapwalk.scn
index 220606ab5c..c1ff8e9ac3 100644
--- a/testsuites/libtests/heapwalk/heapwalk.scn
+++ b/testsuites/libtests/heapwalk/heapwalk.scn
@@ -4,7 +4,7 @@ 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
+ 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
@@ -21,6 +21,7 @@ Test the main loop
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
@@ -29,8 +30,8 @@ test the _Heap_Walk_check_free_block() function
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????????
+ 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 ***
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();