diff options
author | Joel Sherrill <joel.sherrill@OARcorp.com> | 2009-08-06 20:35:41 +0000 |
---|---|---|
committer | Joel Sherrill <joel.sherrill@OARcorp.com> | 2009-08-06 20:35:41 +0000 |
commit | fba809c87b2371ccfc8b49b222a294f1167a81c3 (patch) | |
tree | 5ab6f6c92fabd844b6f508f15fa97daaf3194f15 /testsuites | |
parent | 2009-08-06 Joel Sherrill <joel.sherrill@OARcorp.com> (diff) | |
download | rtems-fba809c87b2371ccfc8b49b222a294f1167a81c3.tar.bz2 |
2009-08-06 Joel Sherrill <joel.sherrill@OARcorp.com>
* sp64/init.c, sp64/sp64.scn: Chris ensured that nothing is moved until
all memory is successfully allocated. This means the test can
validate the heap is unchanged on extend failure.
Diffstat (limited to 'testsuites')
-rw-r--r-- | testsuites/sptests/ChangeLog | 6 | ||||
-rw-r--r-- | testsuites/sptests/sp64/init.c | 40 | ||||
-rw-r--r-- | testsuites/sptests/sp64/sp64.scn | 1 |
3 files changed, 25 insertions, 22 deletions
diff --git a/testsuites/sptests/ChangeLog b/testsuites/sptests/ChangeLog index 5aa29a068a..8c7e11e7e9 100644 --- a/testsuites/sptests/ChangeLog +++ b/testsuites/sptests/ChangeLog @@ -1,5 +1,11 @@ 2009-08-06 Joel Sherrill <joel.sherrill@OARcorp.com> + * sp64/init.c, sp64/sp64.scn: Chris ensured that nothing is moved until + all memory is successfully allocated. This means the test can + validate the heap is unchanged on extend failure. + +2009-08-06 Joel Sherrill <joel.sherrill@OARcorp.com> + * spintrcritical01/init.c, spintrcritical06/init.c, spintrcritical08/init.c, spintrcritical13/init.c: Lower microseconds per tick so tests run quicker and more reliably hit the intended diff --git a/testsuites/sptests/sp64/init.c b/testsuites/sptests/sp64/init.c index b435e827fd..65544f34dd 100644 --- a/testsuites/sptests/sp64/init.c +++ b/testsuites/sptests/sp64/init.c @@ -28,7 +28,7 @@ rtems_task Init( void *alloced; puts( "\n\n*** TEST 64 ***" ); - + puts( "Allocate one region -- so second auto extends" ); sc = rtems_region_create( rtems_build_name( 'R', 'N', '1', ' ' ), @@ -75,10 +75,10 @@ rtems_task Init( puts( "Init - rtems_region_create - auto-extend - RTEMS_UNSATISFIED" ); while (1) { - + sb = rtems_workspace_allocate( to_alloc, &alloced ); assert( sb ); - + sc = rtems_region_create( rtems_build_name( 'R', 'N', '2', ' ' ), Area2, @@ -99,14 +99,8 @@ rtems_task Init( rtems_test_exit(0); } -/* - * Extending the object structure can fail after it has extended one - * part of the object management information but not another. Chris - * needs to think about this. XXX TBD - */ -#if 0 /* - * Verify heap is still in same shape if we couldn't allocate a task + * Verify heap is still in same shape if we couldn't allocate a region */ sb = rtems_workspace_get_information( &info ); #if 0 @@ -116,7 +110,6 @@ rtems_task Init( assert( sb ); assert( info.Free.largest == start.Free.largest ); assert( info.Free.number == start.Free.number ); -#endif to_alloc -= 8; if ( to_alloc == 0 ) @@ -126,10 +119,6 @@ rtems_task Init( if ( sc ) rtems_test_exit(0); - /* another Chris thinking case .. will this shrink back to exactly - * the same? TBD XXX - */ -#if 0 /* * Verify heap is still in same shape after we free the region */ @@ -137,16 +126,23 @@ rtems_task Init( sc = rtems_region_delete( region2 ); assert( sc == 0 ); - puts( "Init - verify workspace has same memory" ); - sb = rtems_workspace_get_information( &info ); + /* + * Although it is intuitive that after deleting the region the + * object space would shrink and go back to its original shape, + * we could end up with fragmentation which prevents a simple + * check from verifying this. + */ #if 0 - printf( "Init - workspace free/blocks = %d/%d\n", + puts( "Init - verify workspace has same memory" ); + sb = rtems_workspace_get_information( &info ); + #if 0 + printf( "Init - workspace free/blocks = %d/%d\n", info.Free.largest, info.Free.number ); + #endif + assert( sb ); + assert( info.Free.largest == start.Free.largest ); + assert( info.Free.number == start.Free.number ); #endif - assert( sb ); - assert( info.Free.largest == start.Free.largest ); - assert( info.Free.number == start.Free.number ); -#endif puts( "*** END OF TEST 63 ***" ); rtems_test_exit(0); diff --git a/testsuites/sptests/sp64/sp64.scn b/testsuites/sptests/sp64/sp64.scn index bb52ee4dda..f572f623d8 100644 --- a/testsuites/sptests/sp64/sp64.scn +++ b/testsuites/sptests/sp64/sp64.scn @@ -2,4 +2,5 @@ Allocate one region -- so second auto extends Init - rtems_workspace_get_information - OK Init - rtems_region_create - auto-extend - RTEMS_UNSATISFIED +Init - rtems_region_delete - OK *** END OF TEST 63 *** |