summaryrefslogtreecommitdiffstats
path: root/testsuites/libtests/malloctest
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2010-06-07 09:33:32 +0000
committerSebastian Huber <sebastian.huber@embedded-brains.de>2010-06-07 09:33:32 +0000
commitb0e81c9689019725d7fc519f5e35629444caa8cf (patch)
tree67828ef0b0a5fb4cd1ea52d3b3413a9c2f357d83 /testsuites/libtests/malloctest
parent2010-06-07 Sebastian Huber <Sebastian.Huber@embedded-brains.de> (diff)
downloadrtems-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.c42
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)