diff options
author | Joel Sherrill <joel.sherrill@OARcorp.com> | 2009-12-08 17:52:53 +0000 |
---|---|---|
committer | Joel Sherrill <joel.sherrill@OARcorp.com> | 2009-12-08 17:52:53 +0000 |
commit | 2317457e101509ca16a669d99719ae44b0c60599 (patch) | |
tree | 76c26f4c12c18c55f067f00e644a28dded70c79b /testsuites/psxtests/psxrwlock01/test.c | |
parent | 2009-12-08 Joel Sherrill <joel.sherrill@oarcorp.com> (diff) | |
download | rtems-2317457e101509ca16a669d99719ae44b0c60599.tar.bz2 |
2009-12-08 Joel Sherrill <joel.sherrill@oarcorp.com>
* include/pmacros.h, psx01/task.c, psx02/init.c, psx02/task.c,
psx03/init.c, psx03/task.c, psx04/init.c, psx04/task1.c,
psx04/task2.c, psx04/task3.c, psx05/init.c, psx05/task.c,
psx05/task2.c, psx05/task3.c, psx06/init.c, psx06/task.c,
psx06/task2.c, psx07/init.c, psx08/init.c, psx08/task2.c,
psx08/task3.c, psx09/init.c, psx10/init.c, psx10/task.c,
psx10/task2.c, psx10/task3.c, psx11/init.c, psx11/task.c,
psx12/init.c, psxalarm01/init.c, psxbarrier01/test.c,
psxcancel01/init.c, psxchroot01/test.c, psxclock/init.c,
psxfile01/test.c, psxfile01/test_cat.c, psxfile01/test_extend.c,
psxfile01/test_write.c, psxitimer/init.c, psxkey01/task.c,
psxkey02/init.c, psxkey03/init.c, psxmount/test.c, psxmsgq01/init.c,
psxmsgq03/init.c, psxmsgq04/init.c, psxreaddir/test.c,
psxrwlock01/test.c, psxsem01/init.c, psxsignal01/init.c,
psxsignal01/task1.c, psxsignal02/init.c, psxsignal03/init.c,
psxsignal05/init.c, psxspin01/test.c, psxspin02/test.c,
psxstack01/init.c, psxstat/test.c, psxtime/test.c, psxualarm/init.c:
Use rtems_test_assert() consistently instead of system assert().
rtems_test_assert() is designed to integrate into the RTEMS test
suite infrastructure.
Diffstat (limited to 'testsuites/psxtests/psxrwlock01/test.c')
-rw-r--r-- | testsuites/psxtests/psxrwlock01/test.c | 155 |
1 files changed, 77 insertions, 78 deletions
diff --git a/testsuites/psxtests/psxrwlock01/test.c b/testsuites/psxtests/psxrwlock01/test.c index d7505bafa1..c704bc1284 100644 --- a/testsuites/psxtests/psxrwlock01/test.c +++ b/testsuites/psxtests/psxrwlock01/test.c @@ -1,7 +1,7 @@ /* * This test exercises the POSIX RWLock 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> @@ -37,11 +36,11 @@ void *ReadLockThread(void *arg) puts( "ReadThread - pthread_rwlock_rdlock(RWLock) blocking -- OK" ); status = pthread_rwlock_rdlock(&RWLock); - assert( !status ); + rtems_test_assert( !status ); puts( "ReadThread - pthread_rwlock_rdlock(RWLock) unblocked -- OK" ); status = pthread_rwlock_unlock(&RWLock); - assert( !status ); + rtems_test_assert( !status ); return NULL; } @@ -54,14 +53,14 @@ void *WriteLockThread(void *arg) puts( "WriteThread - pthread_rwlock_wrlock(RWLock) blocking -- OK" ); status = pthread_rwlock_wrlock(&RWLock); - assert( !status ); + rtems_test_assert( !status ); puts( "WriteThread - pthread_rwlock_wrlock(RWLock) unblocked -- OK" ); sleep( 1 ); puts( "WriteThread - pthread_rwlock_unlock(RWLock) -- OK" ); status = pthread_rwlock_unlock(&RWLock); - assert( !status ); + rtems_test_assert( !status ); return NULL; } @@ -90,75 +89,75 @@ int main( /*************** NULL POINTER CHECKS *****************/ puts( "pthread_rwlockattr_init( NULL ) -- EINVAL" ); status = pthread_rwlockattr_init( NULL ); - assert( status == EINVAL ); + rtems_test_assert( status == EINVAL ); puts( "pthread_rwlockattr_setpshared( NULL, private ) -- EINVAL" ); status = pthread_rwlockattr_setpshared( NULL, PTHREAD_PROCESS_PRIVATE ); - assert( status == EINVAL ); + rtems_test_assert( status == EINVAL ); puts( "pthread_rwlockattr_setpshared( NULL, shared ) -- EINVAL" ); status = pthread_rwlockattr_setpshared( NULL, PTHREAD_PROCESS_SHARED ); - assert( status == EINVAL ); + rtems_test_assert( status == EINVAL ); puts( "pthread_rwlockattr_getpshared( NULL, &p ) -- EINVAL" ); status = pthread_rwlockattr_getpshared( NULL, &p ); - assert( status == EINVAL ); + rtems_test_assert( status == EINVAL ); puts( "pthread_rwlockattr_destroy( NULL ) -- EINVAL" ); status = pthread_rwlockattr_destroy( NULL ); - assert( status == EINVAL ); + rtems_test_assert( status == EINVAL ); /*************** NOT INITIALIZED CHECKS *****************/ /* cheat visibility */ attr.is_initialized = 0; puts( "pthread_rwlockattr_setpshared( &attr, shared ) -- EINVAL" ); status = pthread_rwlockattr_setpshared( &attr, PTHREAD_PROCESS_SHARED ); - assert( status == EINVAL ); + rtems_test_assert( status == EINVAL ); puts( "pthread_rwlockattr_getpshared( &attr, NULL ) -- EINVAL" ); status = pthread_rwlockattr_getpshared( &attr, NULL ); - assert( status == EINVAL ); + rtems_test_assert( status == EINVAL ); puts( "pthread_rwlockattr_destroy( &attr ) -- EINVAL" ); status = pthread_rwlockattr_destroy( &attr ); - assert( status == EINVAL ); + rtems_test_assert( status == EINVAL ); /*************** BAD PSHARED CHECK *****************/ puts( "pthread_rwlockattr_setpshared( &attr, private ) -- EINVAL" ); status = pthread_rwlockattr_setpshared( &attr, ~PTHREAD_PROCESS_PRIVATE ); - assert( status == EINVAL ); + rtems_test_assert( status == EINVAL ); /*************** ACTUALLY WORK THIS TIME *****************/ puts( "pthread_rwlockattr_init( &attr ) -- OK" ); status = pthread_rwlockattr_init( &attr ); - assert( status == 0 ); + rtems_test_assert( status == 0 ); puts( "pthread_rwlockattr_setpshared( &attr, private ) -- OK" ); status = pthread_rwlockattr_setpshared( &attr, PTHREAD_PROCESS_PRIVATE ); - assert( status == 0 ); + rtems_test_assert( status == 0 ); puts( "pthread_rwlockattr_getpshared( &attr, &p ) -- OK" ); status = pthread_rwlockattr_getpshared( &attr, &p ); - assert( status == 0 ); - assert( p == PTHREAD_PROCESS_PRIVATE ); + rtems_test_assert( status == 0 ); + rtems_test_assert( p == PTHREAD_PROCESS_PRIVATE ); puts( "pthread_rwlockattr_setpshared( &attr, shared ) -- OK" ); status = pthread_rwlockattr_setpshared( &attr, PTHREAD_PROCESS_SHARED ); - assert( status == 0 ); + rtems_test_assert( status == 0 ); puts( "pthread_rwlockattr_getpshared( &attr, &p ) -- OK" ); status = pthread_rwlockattr_getpshared( &attr, &p ); - assert( status == 0 ); - assert( p == PTHREAD_PROCESS_SHARED ); + rtems_test_assert( status == 0 ); + rtems_test_assert( p == PTHREAD_PROCESS_SHARED ); /*************** DESTROY/REUSE CHECK *****************/ puts( "pthread_rwlockattr_destroy( &attr ) -- OK" ); status = pthread_rwlockattr_destroy( &attr ); - assert( status == 0 ); + rtems_test_assert( status == 0 ); puts( "pthread_rwlockattr_getpshared( &attr, &p ) destroyed -- EINVAL" ); status = pthread_rwlockattr_getpshared( &attr, &p ); - assert( status == EINVAL ); + rtems_test_assert( status == EINVAL ); /*************** NULL ARGUMENT CHECKS *****************/ abstime.tv_sec = 0; @@ -166,87 +165,87 @@ int main( puts( "pthread_rwlock_init(NULL, &attr) -- EINVAL" ); status = pthread_rwlock_init(NULL, &attr); - assert( status == EINVAL ); + rtems_test_assert( status == EINVAL ); puts( "pthread_rwlock_destroy(NULL) -- EINVAL" ); status = pthread_rwlock_destroy(NULL); - assert( status == EINVAL ); + rtems_test_assert( status == EINVAL ); puts( "pthread_rwlock_rdlock(NULL) -- EINVAL" ); status = pthread_rwlock_rdlock(NULL); - assert( status == EINVAL ); + rtems_test_assert( status == EINVAL ); puts( "pthread_rwlock_timedrdlock( NULL, &abstime) -- EINVAL" ); status = pthread_rwlock_timedrdlock( NULL, &abstime); - assert( status == EINVAL ); + rtems_test_assert( status == EINVAL ); puts( "pthread_rwlock_timedrdlock( &rwlock, NULL) -- EINVAL" ); status = pthread_rwlock_timedrdlock( &rwlock, NULL); - assert( status == EINVAL ); + rtems_test_assert( status == EINVAL ); puts( "pthread_rwlock_tryrdlock(NULL) -- EINVAL" ); status = pthread_rwlock_tryrdlock(NULL); - assert( status == EINVAL ); + rtems_test_assert( status == EINVAL ); puts( "pthread_rwlock_wrlock(NULL) -- EINVAL" ); status = pthread_rwlock_wrlock(NULL); - assert( status == EINVAL ); + rtems_test_assert( status == EINVAL ); puts( "pthread_rwlock_timedwrlock( NULL, &abstime) -- EINVAL" ); status = pthread_rwlock_timedwrlock( NULL, &abstime ); - assert( status == EINVAL ); + rtems_test_assert( status == EINVAL ); puts( "pthread_rwlock_timedwrlock( &rwlock, NULL) -- EINVAL" ); status = pthread_rwlock_timedwrlock( &rwlock, NULL); - assert( status == EINVAL ); + rtems_test_assert( status == EINVAL ); puts( "pthread_rwlock_trywrlock(NULL) -- EINVAL" ); status = pthread_rwlock_trywrlock(NULL); - assert( status == EINVAL ); + rtems_test_assert( status == EINVAL ); puts( "pthread_rwlock_unlock(NULL) -- EINVAL" ); status = pthread_rwlock_unlock(NULL); - assert( status == EINVAL ); + rtems_test_assert( status == EINVAL ); /*************** BAD ID CHECK *****************/ rwlock = 1; /* make a valid abstime */ puts( "clock_gettime(CLOCK_REALTIME, &abstime) -- OK" ); status = clock_gettime( CLOCK_REALTIME, &abstime ); - assert( !status ); + rtems_test_assert( !status ); abstime.tv_sec += 5; puts( "pthread_rwlock_destroy(BadId) -- EINVAL" ); status = pthread_rwlock_destroy(&rwlock); - assert( status == EINVAL ); + rtems_test_assert( status == EINVAL ); puts( "pthread_rwlock_rdlock(BadId) -- EINVAL" ); status = pthread_rwlock_rdlock(&rwlock); - assert( status == EINVAL ); + rtems_test_assert( status == EINVAL ); puts( "pthread_rwlock_timedrdlock(BadId, &abstime) -- EINVAL" ); status = pthread_rwlock_timedrdlock( &rwlock, &abstime); - assert( status == EINVAL ); + rtems_test_assert( status == EINVAL ); puts( "pthread_rwlock_tryrdlock(BadId) -- EINVAL" ); status = pthread_rwlock_tryrdlock(&rwlock); - assert( status == EINVAL ); + rtems_test_assert( status == EINVAL ); puts( "pthread_rwlock_wrlock(BadId) -- EINVAL" ); status = pthread_rwlock_wrlock(&rwlock); - assert( status == EINVAL ); + rtems_test_assert( status == EINVAL ); puts( "pthread_rwlock_timedwrlock(BadId, &abstime) -- EINVAL" ); status = pthread_rwlock_timedwrlock( &rwlock, &abstime ); - assert( status == EINVAL ); + rtems_test_assert( status == EINVAL ); puts( "pthread_rwlock_trywrlock(BadId) -- EINVAL" ); status = pthread_rwlock_trywrlock(&rwlock); - assert( status == EINVAL ); + rtems_test_assert( status == EINVAL ); puts( "pthread_rwlock_unlock(BadId) -- EINVAL" ); status = pthread_rwlock_unlock(&rwlock); - assert( status == EINVAL ); + rtems_test_assert( status == EINVAL ); /*************** BAD ABSTIME CHECK *****************/ @@ -263,66 +262,66 @@ int main( /*************** ACTUALLY CREATE ONE CHECK *****************/ puts( "pthread_rwlockattr_init( &attr ) -- OK" ); status = pthread_rwlockattr_init( &attr ); - assert( status == 0 ); + rtems_test_assert( status == 0 ); puts( "pthread_rwlock_init( &rwlock, &attr ) -- OK" ); status = pthread_rwlock_init( &rwlock, &attr ); - assert( status == 0 ); - assert( rwlock != 0 ); + rtems_test_assert( status == 0 ); + rtems_test_assert( rwlock != 0 ); puts( "pthread_rwlock_init( &rwlock, &attr ) -- EAGAIN" ); status = pthread_rwlock_init( &rwlock, &attr ); - assert( status == EAGAIN ); + rtems_test_assert( status == EAGAIN ); puts( "pthread_rwlock_destroy( &rwlock ) -- OK" ); status = pthread_rwlock_destroy( &rwlock ); - assert( status == 0 ); + rtems_test_assert( status == 0 ); /********* CREATE RWLOCK WITH DEFAULT ATTRIBUTES AND DESTROY IT *********/ puts( "pthread_rwlock_init( &rwlock, NULL ) -- OK" ); status = pthread_rwlock_init( &rwlock, NULL ); - assert( status == 0 ); + rtems_test_assert( status == 0 ); puts( "pthread_rwlock_destroy( &rwlock ) -- OK" ); status = pthread_rwlock_destroy( &rwlock ); - assert( status == 0 ); + rtems_test_assert( status == 0 ); /*************** CREATE THREADS AND LET THEM OBTAIN READLOCK ***************/ puts( "pthread_rwlock_init( &RWLock, &attr ) -- OK" ); status = pthread_rwlock_init( &RWLock, &attr ); - assert( status == 0 ); + rtems_test_assert( status == 0 ); puts( "pthread_rwlock_tryrdlock(RWLock) -- OK" ); status = pthread_rwlock_tryrdlock(&RWLock); - assert( !status ); + rtems_test_assert( !status ); for (i=0 ; i<NUMBER_THREADS ; i++ ) { printf( "Init: pthread_create - thread %d OK\n", i+1 ); status = pthread_create(&ThreadIds[i], NULL, ReadLockThread, &ThreadIds[i]); - assert( !status ); + rtems_test_assert( !status ); sleep(1); } puts( "pthread_rwlock_unlock(RWLock) -- OK" ); status = pthread_rwlock_unlock(&RWLock); - assert( !status ); + rtems_test_assert( !status ); sleep(1); /*************** CREATE THREADS AND LET THEM OBTAIN READLOCK ***************/ puts( "pthread_rwlock_trywrlock(RWLock) -- OK" ); status = pthread_rwlock_trywrlock(&RWLock); - assert( !status ); + rtems_test_assert( !status ); puts( "pthread_rwlock_tryrdlock(&RWLock) -- EBUSY" ); status = pthread_rwlock_tryrdlock(&RWLock); - assert( status == EBUSY ); + rtems_test_assert( status == EBUSY ); for (i=0 ; i<NUMBER_THREADS ; i++ ) { printf( "Init: pthread_create - thread %d OK\n", i+1 ); status = pthread_create(&ThreadIds[i], NULL, ReadLockThread, &ThreadIds[i]); - assert( !status ); + rtems_test_assert( !status ); sleep(1); } @@ -330,101 +329,101 @@ int main( /* Attempt delete while threads are blocked */ puts( "pthread_rwlock_destroy( &RWLock ) -- EBUSY" ); status = pthread_rwlock_destroy( &RWLock ); - assert( status == EBUSY ); + rtems_test_assert( status == EBUSY ); /* now unlock it so the threads can continue */ puts( "pthread_rwlock_unlock(RWLock) -- OK" ); status = pthread_rwlock_unlock(&RWLock); - assert( !status ); + rtems_test_assert( !status ); sleep(2); /*************** CREATE THREADS AND LET THEM OBTAIN WRITE LOCK *************/ puts( "pthread_rwlock_trywrlock(RWLock) -- OK" ); status = pthread_rwlock_trywrlock(&RWLock); - assert( !status ); + rtems_test_assert( !status ); puts( "pthread_rwlock_trywrlock(&RWLock) -- EBUSY" ); status = pthread_rwlock_trywrlock(&RWLock); - assert( status == EBUSY ); + rtems_test_assert( status == EBUSY ); for (i=0 ; i<NUMBER_THREADS ; i++ ) { printf( "Init: pthread_create - thread %d OK\n", i+1 ); status = pthread_create(&ThreadIds[i], NULL, WriteLockThread, &ThreadIds[i]); - assert( !status ); + rtems_test_assert( !status ); sleep(1); } puts( "pthread_rwlock_unlock(RWLock) -- OK" ); status = pthread_rwlock_unlock(&RWLock); - assert( !status ); + rtems_test_assert( !status ); sleep(2); /*************** TIMEOUT ON RWLOCK ***************/ puts( "clock_gettime(CLOCK_REALTIME, &abstime) -- OK" ); status = clock_gettime( CLOCK_REALTIME, &abstime ); - assert( !status ); + rtems_test_assert( !status ); abstime.tv_sec += 1; puts( "pthread_rwlock_timedwrlock( &RWLock, &abstime) -- OK" ); status = pthread_rwlock_timedwrlock( &RWLock, &abstime ); - assert( status == 0 ); + rtems_test_assert( status == 0 ); abstime.tv_sec += 1; puts( "pthread_rwlock_timedrdlock( &RWLock, &abstime) -- ETIMEDOUT" ); status = pthread_rwlock_timedrdlock( &RWLock, &abstime ); - assert( status == ETIMEDOUT ); + rtems_test_assert( status == ETIMEDOUT ); abstime.tv_sec -= 1; puts( "pthread_rwlock_timedrdlock( &RWLock, &abstime) -- ETIMEDOUT" ); status = pthread_rwlock_timedrdlock( &RWLock, &abstime ); - assert( status == ETIMEDOUT ); + rtems_test_assert( status == ETIMEDOUT ); abstime.tv_sec -= 1; puts( "pthread_rwlock_timedwrlock( &RWLock, &abstime) -- ETIMEDOUT" ); status = pthread_rwlock_timedwrlock( &RWLock, &abstime ); - assert( status == ETIMEDOUT ); + rtems_test_assert( status == ETIMEDOUT ); /*************** OBTAIN RWLOCK WITH ABSTIME IN PAST ***************/ status = pthread_rwlock_unlock(&RWLock); - assert( !status ); + rtems_test_assert( !status ); abstime.tv_sec -= 1; puts( "pthread_rwlock_timedrdlock( &RWLock, &abstime) -- in past -- OK" ); status = pthread_rwlock_timedrdlock( &RWLock, &abstime ); - assert( status == 0 ); + rtems_test_assert( status == 0 ); /*************** OBTAIN RWLOCK FOR WRITE WITH ABSTIME IN PAST ***************/ status = pthread_rwlock_unlock(&RWLock); - assert( !status ); + rtems_test_assert( !status ); abstime.tv_sec -= 1; puts( "pthread_rwlock_timedwrlock( &RWLock, &abstime) -- in past -- OK" ); status = pthread_rwlock_timedwrlock( &RWLock, &abstime ); - assert( status == 0 ); + rtems_test_assert( status == 0 ); /*************** DESTROY RWLOCK ***************/ puts( "pthread_rwlock_destroy( &RWLock ) -- OK" ); status = pthread_rwlock_destroy( &RWLock ); - assert( status == 0 ); + rtems_test_assert( status == 0 ); /*************** OBTAIN A LOCK AND THEN RELEASE IT TWICE ***************/ puts( "pthread_rwlock_init( &rwlock, NULL ) -- OK" ); status = pthread_rwlock_init( &rwlock, NULL ); - assert( status == 0 ); - assert( rwlock != 0 ); + rtems_test_assert( status == 0 ); + rtems_test_assert( rwlock != 0 ); puts( "pthread_rwlock_unlock ( &rwlock ) -- OK" ); status = pthread_rwlock_unlock( &rwlock ); - assert( status == 0 ); + rtems_test_assert( status == 0 ); puts( "pthread_rwlock_unlock ( &rwlock ) -- OK" ); status = pthread_rwlock_unlock( &rwlock ); - assert( status == 0 ); + rtems_test_assert( status == 0 ); /*************** END OF TEST *****************/ puts( "*** END OF POSIX RWLOCK TEST 01 ***" ); |