From a611d80b758644216758c0830c7612b522378d37 Mon Sep 17 00:00:00 2001 From: Joel Sherrill Date: Mon, 28 Sep 2009 18:10:52 +0000 Subject: 2009-09-28 Joel Sherrill * sp33/init.c, sp33/sp33.scn: Add some barrier error cases uncovered by uC5282 coverage runs. --- testsuites/sptests/ChangeLog | 5 +++++ testsuites/sptests/sp33/init.c | 44 ++++++++++++++++++++++++++++++++-------- testsuites/sptests/sp33/sp33.scn | 17 +++++++++------- 3 files changed, 50 insertions(+), 16 deletions(-) (limited to 'testsuites') diff --git a/testsuites/sptests/ChangeLog b/testsuites/sptests/ChangeLog index 59e1c3e0bc..4e85f8227e 100644 --- a/testsuites/sptests/ChangeLog +++ b/testsuites/sptests/ChangeLog @@ -1,3 +1,8 @@ +2009-09-28 Joel Sherrill + + * sp33/init.c, sp33/sp33.scn: Add some barrier error cases uncovered by + uC5282 coverage runs. + 2009-09-27 Joel Sherrill * sp59/init.c, spintrcritical15/init.c, spintrcritical16/init.c: 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 -- cgit v1.2.3