diff options
author | Joel Sherrill <joel.sherrill@OARcorp.com> | 2009-09-28 18:10:52 +0000 |
---|---|---|
committer | Joel Sherrill <joel.sherrill@OARcorp.com> | 2009-09-28 18:10:52 +0000 |
commit | a611d80b758644216758c0830c7612b522378d37 (patch) | |
tree | 7572070c2c3e7dcb366be13d131382dd440293b8 /testsuites/sptests/sp33 | |
parent | 2e43e6ce3dfbc4655e13ab6f2cab1dd0cb2a2675 (diff) |
2009-09-28 Joel Sherrill <joel.sherrill@OARcorp.com>
* sp33/init.c, sp33/sp33.scn: Add some barrier error cases uncovered by
uC5282 coverage runs.
Diffstat (limited to 'testsuites/sptests/sp33')
-rw-r--r-- | testsuites/sptests/sp33/init.c | 44 | ||||
-rw-r--r-- | testsuites/sptests/sp33/sp33.scn | 17 |
2 files changed, 45 insertions, 16 deletions
diff --git a/testsuites/sptests/sp33/init.c b/testsuites/sptests/sp33/init.c index 2f3b5143fb..39a3a3a5b4 100644 --- a/testsuites/sptests/sp33/init.c +++ b/testsuites/sptests/sp33/init.c @@ -1,6 +1,4 @@ /* - * spmonotonic -- sanity check the rate monotonic manager - * * COPYRIGHT (c) 1989-2009. * On-Line Applications Research Corporation (OAR). * @@ -75,7 +73,7 @@ rtems_task Init( puts("\n\n*** TEST 33 ***"); /* Check bad argument cases */ - puts( "Delete barrier with bad id" ); + puts( "rtems_barrier_delete - bad id - INVALID_ID" ); status = rtems_barrier_delete( 100 ); fatal_directive_status( status, @@ -83,7 +81,7 @@ rtems_task Init( "rtems_barrier_delete did not return RTEMS_INVALID_ID" ); - puts( "Release barrier with bad id" ); + puts( "rtems_barrier_release - bad id - INVALID_ID" ); status = rtems_barrier_release( 100, &released ); fatal_directive_status( status, @@ -91,7 +89,7 @@ rtems_task Init( "rtems_barrier_release did not return RTEMS_INVALID_ID" ); - puts( "Wait on barrier with bad id" ); + puts( "rtems_barrier_wait - bad id - INVALID_ID" ); status = rtems_barrier_wait( 100, 10 ); fatal_directive_status( status, @@ -110,13 +108,32 @@ rtems_task Init( "rtems_barrier_create did not return RTEMS_INVALID_NUMBER" ); + /* create barrier with bad name */ + puts( "rtems_barrier_create - bad name - INVALID_NAME" ); + status = rtems_barrier_create( + 0, RTEMS_BARRIER_AUTOMATIC_RELEASE, 1, &Barrier); + fatal_directive_status( + status, + RTEMS_INVALID_NAME, + "rtems_barrier_create did not return RTEMS_INVALID_NAME" + ); + + /* create barrier with bad id return address */ + puts( "rtems_barrier_create - NULL barrier ID - INVALID_ADDRESS" ); + status = rtems_barrier_create(name, RTEMS_BARRIER_AUTOMATIC_RELEASE, 1, NULL); + fatal_directive_status( + status, + RTEMS_INVALID_ADDRESS, + "rtems_barrier_create did not return RTEMS_INVALID_ADDRESS" + ); + /* Create barrier */ - puts( "Create barrier" ); + puts( "rtems_barrier_create - OK" ); status = rtems_barrier_create( name, RTEMS_DEFAULT_ATTRIBUTES, 0, &Barrier ); directive_failed(status, "rtems_barrier_create"); /* Check for creating too many */ - puts( "Create too many barriers" ); + puts( "rtems_barrier_create - too many" ); status = rtems_barrier_create( name, RTEMS_DEFAULT_ATTRIBUTES, 0, &Barrier ); fatal_directive_status( status, @@ -140,6 +157,15 @@ rtems_task Init( "rtems_barrier_wait did not timeout" ); + /* Release with bad return pointer */ + puts( "rtems_barrier_release - NULL return count - INVALID_ADDRESS" ); + status = rtems_barrier_release( Barrier, NULL ); + fatal_directive_status( + status, + RTEMS_INVALID_ADDRESS, + "rtems_barrier_release bad return pointer" + ); + /* Release no tasks */ status = rtems_barrier_release( Barrier, &released ); directive_failed(status, "rtems_barrier_release"); @@ -208,7 +234,7 @@ rtems_task Init( status = rtems_task_wake_after( rtems_clock_get_ticks_per_second() ); directive_failed(status, "rtems_task_wake_after"); - puts( "Delete barrier" ); + puts( "rtems_barrier_delete - OK" ); status = rtems_barrier_delete( Barrier ); directive_failed(status, "rtems_barrier_delete"); @@ -217,7 +243,7 @@ rtems_task Init( directive_failed(status, "rtems_task_wake_after"); /* Create barrier with automatic release */ - puts( "Create barrier" ); + puts( "rtems_barrier_create - OK" ); status = rtems_barrier_create( name, RTEMS_BARRIER_AUTOMATIC_RELEASE, CONFIGURE_MAXIMUM_TASKS-1, &Barrier ); diff --git a/testsuites/sptests/sp33/sp33.scn b/testsuites/sptests/sp33/sp33.scn index 9ec1487c8f..577f226e56 100644 --- a/testsuites/sptests/sp33/sp33.scn +++ b/testsuites/sptests/sp33/sp33.scn @@ -1,12 +1,15 @@ *** TEST 33 *** -Delete barrier with bad id -Release barrier with bad id -Wait on barrier with bad id +rtems_barrier_delete - bad id - INVALID_ID +rtems_barrier_release - bad id - INVALID_ID +rtems_barrier_wait - bad id - INVALID_ID Create barrier with automatic release and 0 max waiters -Create barrier -Create too many barriers +rtems_barrier_create - bad name - INVALID_NAME +rtems_barrier_create - NULL barrier ID - INVALID_ADDRESS +rtems_barrier_create - OK +rtems_barrier_create - too many Check barrier ident Wait on barrier w/timeout and TIMEOUT +rtems_barrier_release - NULL return count - INVALID_ADDRESS *** Testing manual release of barrier *** Delay to let Waiters block @@ -27,13 +30,13 @@ Waiter 0 waiting on barrier Waiter 1 waiting on barrier Waiter 2 waiting on barrier Waiter 3 waiting on barrier -Delete barrier +rtems_barrier_delete - OK Delay to let Waiters print a message Waiter 0 back from barrier Waiter 1 back from barrier Waiter 2 back from barrier Waiter 3 back from barrier -Create barrier +rtems_barrier_create - OK *** Testing automatic release of barrier *** Delay to let task wait on barrier |