diff options
Diffstat (limited to 'testsuites/psxtests/psxspin01/test.c')
-rw-r--r-- | testsuites/psxtests/psxspin01/test.c | 63 |
1 files changed, 31 insertions, 32 deletions
diff --git a/testsuites/psxtests/psxspin01/test.c b/testsuites/psxtests/psxspin01/test.c index 9b437cc68f..58fa904bd1 100644 --- a/testsuites/psxtests/psxspin01/test.c +++ b/testsuites/psxtests/psxspin01/test.c @@ -1,7 +1,7 @@ /* * This test exercises the POSIX Spinlock manager. * - * COPYRIGHT (c) 1989-2006. + * COPYRIGHT (c) 1989-2009. * On-Line Applications Research Corporation (OAR). * * The license and distribution terms for this file may be @@ -11,7 +11,6 @@ * $Id$ */ -#include <assert.h> #include <stdio.h> #include <errno.h> #include <stdlib.h> @@ -34,7 +33,7 @@ rtems_task SpinlockThread(rtems_task_argument arg) } puts( "pthread_spin_lock( &Spinlock ) from Thread -- OK" ); status = pthread_spin_lock( &Spinlock ); - assert( status == 0 ); + rtems_test_assert( status == 0 ); puts( "sleep to allow main thread to run" ); sleep( 1 ); @@ -46,7 +45,7 @@ rtems_task SpinlockThread(rtems_task_argument arg) puts( "pthread_spin_unlock( &Spinlock ) from Thread -- OK" ); status = pthread_spin_unlock( &Spinlock ); - assert( status == 0 ); + rtems_test_assert( status == 0 ); rtems_task_delete( RTEMS_SELF ); } @@ -73,96 +72,96 @@ int main( puts( "pthread_spin_init( NULL, PTHREAD_PROCESS_PRIVATE ) -- EINVAL" ); status = pthread_spin_init( NULL, PTHREAD_PROCESS_PRIVATE ); - assert( status == EINVAL ); + rtems_test_assert( status == EINVAL ); puts( "pthread_spin_init( NULL, PTHREAD_PROCESS_SHARED ) -- EINVAL" ); status = pthread_spin_init( NULL, PTHREAD_PROCESS_PRIVATE ); - assert( status == EINVAL ); + rtems_test_assert( status == EINVAL ); puts( "pthread_spin_init( &spinlock, 0x1234 ) -- EINVAL" ); status = pthread_spin_init( &spinlock, 0x1234 ); - assert( status == EINVAL ); + rtems_test_assert( status == EINVAL ); puts( "pthread_spin_init( &spinlock, PTHREAD_PROCESS_SHARED ) -- EINVAL" ); status = pthread_spin_init( &spinlock, PTHREAD_PROCESS_SHARED ); - assert( status == EINVAL ); + rtems_test_assert( status == EINVAL ); /* This successfully creates one */ puts( "pthread_spin_init( &Spinlock, PTHREAD_PROCESS_PRIVATE ) -- OK" ); status = pthread_spin_init( &Spinlock, PTHREAD_PROCESS_PRIVATE ); - assert( status == 0 ); + rtems_test_assert( status == 0 ); puts( "pthread_spin_init( &spinlock, PTHREAD_PROCESS_PRIVATE ) -- EAGAIN" ); status = pthread_spin_init( &spinlock, PTHREAD_PROCESS_PRIVATE ); - assert( status == EAGAIN ); + rtems_test_assert( status == EAGAIN ); puts( "pthread_spin_init( &spinlock, PTHREAD_PROCESS_PRIVATE ) -- EAGAIN" ); status = pthread_spin_init( &spinlock, PTHREAD_PROCESS_PRIVATE ); - assert( status == EAGAIN ); + rtems_test_assert( status == EAGAIN ); puts( "pthread_spin_lock( NULL ) -- EINVAL" ); status = pthread_spin_lock( NULL ); - assert( status == EINVAL ); + rtems_test_assert( status == EINVAL ); puts( "pthread_spin_trylock( NULL ) -- EINVAL" ); status = pthread_spin_trylock( NULL ); - assert( status == EINVAL ); + rtems_test_assert( status == EINVAL ); puts( "pthread_spin_unlock( NULL ) -- EINVAL" ); status = pthread_spin_unlock( NULL ); - assert( status == EINVAL ); + rtems_test_assert( status == EINVAL ); puts( "pthread_spin_destroy( NULL ) -- EINVAL" ); status = pthread_spin_destroy( NULL ); - assert( status == EINVAL ); + rtems_test_assert( status == EINVAL ); spinlock = 0; puts( "pthread_spin_lock( &spinlock ) -- EINVAL" ); status = pthread_spin_lock( &spinlock ); - assert( status == EINVAL ); + rtems_test_assert( status == EINVAL ); puts( "pthread_spin_trylock( &spinlock ) -- EINVAL" ); status = pthread_spin_trylock( &spinlock ); - assert( status == EINVAL ); + rtems_test_assert( status == EINVAL ); puts( "pthread_spin_unlock( &spinlock ) -- EINVAL" ); status = pthread_spin_unlock( &spinlock ); - assert( status == EINVAL ); + rtems_test_assert( status == EINVAL ); puts( "pthread_spin_destroy( &spinlock ) -- EINVAL" ); status = pthread_spin_destroy( &spinlock ); - assert( status == EINVAL ); + rtems_test_assert( status == EINVAL ); puts( "pthread_spin_unlock( &Spinlock ) -- already unlocked OK" ); status = pthread_spin_unlock( &Spinlock ); - assert( status == 0 ); + rtems_test_assert( status == 0 ); /* Now some basic locking and unlocking with a deadlock verification */ puts( "pthread_spin_lock( &Spinlock ) -- OK" ); status = pthread_spin_lock( &Spinlock ); - assert( status == 0 ); + rtems_test_assert( status == 0 ); puts( "pthread_spin_lock( &Spinlock ) -- EDEADLK" ); status = pthread_spin_lock( &Spinlock ); - assert( status == EDEADLK ); + rtems_test_assert( status == EDEADLK ); puts( "pthread_spin_trylock( &Spinlock ) -- EDEADLK" ); status = pthread_spin_trylock( &Spinlock ); - assert( status == EDEADLK ); + rtems_test_assert( status == EDEADLK ); puts( "pthread_spin_unlock( &Spinlock ) -- OK" ); status = pthread_spin_unlock( &Spinlock ); - assert( status == 0 ); + rtems_test_assert( status == 0 ); /* Try lock/unlock pair */ puts( "pthread_spin_trylock( &Spinlock ) -- OK" ); status = pthread_spin_trylock( &Spinlock ); - assert( status == 0 ); + rtems_test_assert( status == 0 ); puts( "pthread_spin_unlock( &Spinlock ) -- OK" ); status = pthread_spin_unlock( &Spinlock ); - assert( status == 0 ); + rtems_test_assert( status == 0 ); /* Let another thread lock a spinlock and we contend with it */ @@ -177,10 +176,10 @@ int main( RTEMS_DEFAULT_ATTRIBUTES, &taskid ); - assert( rstatus == RTEMS_SUCCESSFUL ); + rtems_test_assert( rstatus == RTEMS_SUCCESSFUL ); rstatus = rtems_task_start( taskid, SpinlockThread, 0 ); - assert( rstatus == RTEMS_SUCCESSFUL ); + rtems_test_assert( rstatus == RTEMS_SUCCESSFUL ); /* We should be preempted immediately. The thread is expected to: * + verify we haven't set the main thread spinning flag * + lock the spinlock @@ -190,7 +189,7 @@ int main( mainThreadSpinning = 1; puts( "pthread_spin_lock( &Spinlock ) -- OK" ); status = pthread_spin_lock( &Spinlock ); - assert( status == 0 ); + rtems_test_assert( status == 0 ); /* The thread wakes up, unlocks spin lock, and deletes itself. * So when we get back here, about a second has passed and we now @@ -200,16 +199,16 @@ int main( /* spin lock should be locked when we return so destroying it gives busy */ puts( "pthread_spin_destroy( &Spinlock ) -- EBUSY" ); status = pthread_spin_destroy( &Spinlock ); - assert( status == EBUSY ); + rtems_test_assert( status == EBUSY ); /* Unlock it for a normal destroy */ puts( "pthread_spin_unlock( &Spinlock ) -- OK" ); status = pthread_spin_unlock( &Spinlock ); - assert( status == 0 ); + rtems_test_assert( status == 0 ); puts( "pthread_spin_destroy( &Spinlock ) -- OK" ); status = pthread_spin_destroy( &Spinlock ); - assert( status == 0 ); + rtems_test_assert( status == 0 ); /*************** END OF TEST *****************/ puts( "*** END OF POSIX SPINLOCK TEST 01 ***" ); |