diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2010-06-07 09:33:32 +0000 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2010-06-07 09:33:32 +0000 |
commit | b0e81c9689019725d7fc519f5e35629444caa8cf (patch) | |
tree | 67828ef0b0a5fb4cd1ea52d3b3413a9c2f357d83 /testsuites | |
parent | 2010-06-07 Sebastian Huber <Sebastian.Huber@embedded-brains.de> (diff) | |
download | rtems-b0e81c9689019725d7fc519f5e35629444caa8cf.tar.bz2 |
2010-06-07 Sebastian Huber <sebastian.huber@embedded-brains.de>
* heapwalk/init.c, malloctest/init.c: Update for heap extend changes.
Diffstat (limited to 'testsuites')
-rw-r--r-- | testsuites/libtests/ChangeLog | 4 | ||||
-rw-r--r-- | testsuites/libtests/heapwalk/init.c | 5 | ||||
-rw-r--r-- | testsuites/libtests/malloctest/init.c | 42 |
3 files changed, 34 insertions, 17 deletions
diff --git a/testsuites/libtests/ChangeLog b/testsuites/libtests/ChangeLog index b37e04e7ec..f838f1e501 100644 --- a/testsuites/libtests/ChangeLog +++ b/testsuites/libtests/ChangeLog @@ -1,3 +1,7 @@ +2010-06-07 Sebastian Huber <sebastian.huber@embedded-brains.de> + + * heapwalk/init.c, malloctest/init.c: Update for heap extend changes. + 2010-05-17 Sebastian Huber <sebastian.huber@embedded-brains.de> PR 1433/cpukit diff --git a/testsuites/libtests/heapwalk/init.c b/testsuites/libtests/heapwalk/init.c index 56cf0627b1..4d13976790 100644 --- a/testsuites/libtests/heapwalk/init.c +++ b/testsuites/libtests/heapwalk/init.c @@ -127,11 +127,6 @@ static void test_check_control(void) TestHeap.first_block->size_and_flag &= ~HEAP_PREV_BLOCK_USED; test_call_heap_walk( false ); - puts( "\tset the previous block size of the first block to an invalid value" ); - test_heap_init_custom(); - TestHeap.first_block->prev_size = 0; - test_call_heap_walk( false ); - puts( "\tset invalid next block for last block" ); test_heap_init_custom(); TestHeap.last_block->size_and_flag = 0; diff --git a/testsuites/libtests/malloctest/init.c b/testsuites/libtests/malloctest/init.c index 4210372ff5..625e9569bb 100644 --- a/testsuites/libtests/malloctest/init.c +++ b/testsuites/libtests/malloctest/init.c @@ -925,23 +925,41 @@ static void test_heap_resize_block(void) test_simple_resize_block( p1, new_alloc_size, HEAP_RESIZE_SUCCESSFUL ); } +static void test_heap_assert(bool ret, bool expected) +{ + rtems_test_assert( ret == expected ); + rtems_test_assert( _Heap_Walk( &TestHeap, 0, false ) ); +} + static void test_heap_extend(void) { - bool ret; + bool ret = false; - /* - * Easier to hit extend with a dedicated heap. - * - */ - _Heap_Initialize( &TestHeap, TestHeapMemory, 512, 0 ); + _Heap_Initialize( &TestHeap, TestHeapMemory + 768, 256, 0 ); + + puts( "heap extend - link below" ); + ret = _Protected_heap_Extend( &TestHeap, TestHeapMemory + 0, 256 ); + test_heap_assert( ret, true ); + + puts( "heap extend - merge below" ); + ret = _Protected_heap_Extend( &TestHeap, TestHeapMemory + 512, 256 ); + test_heap_assert( ret, true ); + + puts( "heap extend - merge above" ); + ret = _Protected_heap_Extend( &TestHeap, TestHeapMemory + 1024, 256 ); + test_heap_assert( ret, true ); + + puts( "heap extend - link above" ); + ret = _Protected_heap_Extend( &TestHeap, TestHeapMemory + 1536, 256 ); + test_heap_assert( ret, true ); - puts( "heap extend - bad address" ); - ret = _Protected_heap_Extend( &TestHeap, TestHeapMemory - 512, 512 ); - rtems_test_assert( ret == false ); + puts( "heap extend - area too small" ); + ret = _Protected_heap_Extend( &TestHeap, TestHeapMemory + 2048, 0 ); + test_heap_assert( ret, false ); - puts( "heap extend - OK" ); - ret = _Protected_heap_Extend( &TestHeap, &TestHeapMemory[ 512 ], 512 ); - rtems_test_assert( ret == true ); + puts( "heap extend - invalid area" ); + ret = _Protected_heap_Extend( &TestHeap, (void *) -1, 2 ); + test_heap_assert( ret, false ); } static void test_heap_info(void) |