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/libtests/malloctest | |
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/libtests/malloctest')
-rw-r--r-- | testsuites/libtests/malloctest/init.c | 42 |
1 files changed, 30 insertions, 12 deletions
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) |