From 89fc9345dea5c675f8d93546fa3c723918d3279a Mon Sep 17 00:00:00 2001 From: Sebastian Huber Date: Thu, 21 Sep 2017 15:42:45 +0200 Subject: posix: Implement self-contained POSIX rwlocks POSIX rwlocks are now available in all configurations and no longer depend on --enable-posix. Update #2514. Update #3115. --- testsuites/psxtests/psxconfig01/init.c | 13 -- testsuites/psxtests/psxrwlock01/main.c | 1 - testsuites/psxtests/psxrwlock01/psxrwlock01.scn | 5 +- testsuites/psxtests/psxrwlock01/test.c | 255 +++++++++++++++++++----- testsuites/psxtmtests/psxtmrwlock01/init.c | 1 - testsuites/psxtmtests/psxtmrwlock02/init.c | 1 - testsuites/psxtmtests/psxtmrwlock03/init.c | 1 - testsuites/psxtmtests/psxtmrwlock04/init.c | 1 - testsuites/psxtmtests/psxtmrwlock05/init.c | 1 - testsuites/psxtmtests/psxtmrwlock06/init.c | 1 - testsuites/psxtmtests/psxtmrwlock07/init.c | 1 - testsuites/sptests/spsysinit01/init.c | 16 -- testsuites/sptests/spthreadq01/init.c | 19 -- 13 files changed, 203 insertions(+), 113 deletions(-) (limited to 'testsuites') diff --git a/testsuites/psxtests/psxconfig01/init.c b/testsuites/psxtests/psxconfig01/init.c index c9e6bfd9fb..154b4d1bd6 100644 --- a/testsuites/psxtests/psxconfig01/init.c +++ b/testsuites/psxtests/psxconfig01/init.c @@ -64,7 +64,6 @@ const char rtems_test_name[] = "PSXCONFIG 1"; #define POSIX_MQ_COUNT 5 #define CONFIGURE_MAXIMUM_POSIX_MUTEXES 19 #define CONFIGURE_MAXIMUM_POSIX_QUEUED_SIGNALS 7 -#define CONFIGURE_MAXIMUM_POSIX_RWLOCKS 31 #define CONFIGURE_MAXIMUM_POSIX_SEMAPHORES 41 #define CONFIGURE_INITIAL_EXTENSIONS RTEMS_TEST_INITIAL_EXTENSION @@ -474,18 +473,6 @@ static rtems_task Init(rtems_task_argument argument) ); #endif -#ifdef CONFIGURE_MAXIMUM_POSIX_RWLOCKS - for (i = 0; i < CONFIGURE_MAXIMUM_POSIX_RWLOCKS; ++i) { - pthread_rwlock_t rwlock; - eno = pthread_rwlock_init(&rwlock, NULL); - rtems_test_assert(eno == 0); - } - rtems_resource_snapshot_take(&snapshot); - rtems_test_assert( - snapshot.posix_api.active_rwlocks == CONFIGURE_MAXIMUM_POSIX_RWLOCKS - ); -#endif - #ifdef CONFIGURE_MAXIMUM_POSIX_SEMAPHORES for (i = 0; i < CONFIGURE_MAXIMUM_POSIX_SEMAPHORES; ++i) { int oflag = O_RDWR | O_CREAT | O_EXCL; diff --git a/testsuites/psxtests/psxrwlock01/main.c b/testsuites/psxtests/psxrwlock01/main.c index 3719b326f9..88190ebb2a 100644 --- a/testsuites/psxtests/psxrwlock01/main.c +++ b/testsuites/psxtests/psxrwlock01/main.c @@ -39,7 +39,6 @@ rtems_task Init( #define CONFIGURE_INITIAL_EXTENSIONS RTEMS_TEST_INITIAL_EXTENSION #define CONFIGURE_MAXIMUM_POSIX_THREADS 2 -#define CONFIGURE_MAXIMUM_POSIX_RWLOCKS 1 #define CONFIGURE_INITIAL_EXTENSIONS RTEMS_TEST_INITIAL_EXTENSION diff --git a/testsuites/psxtests/psxrwlock01/psxrwlock01.scn b/testsuites/psxtests/psxrwlock01/psxrwlock01.scn index fb315f35f2..fe47b19bea 100644 --- a/testsuites/psxtests/psxrwlock01/psxrwlock01.scn +++ b/testsuites/psxtests/psxrwlock01/psxrwlock01.scn @@ -1,4 +1,4 @@ -*** POSIX RWLOCK TEST 01 *** +*** BEGIN OF TEST PSXRWLOCK 1 *** pthread_rwlockattr_init( NULL ) -- EINVAL pthread_rwlockattr_setpshared( NULL, private ) -- EINVAL pthread_rwlockattr_setpshared( NULL, shared ) -- EINVAL @@ -37,7 +37,6 @@ pthread_rwlock_trywrlock(BadId) -- EINVAL pthread_rwlock_unlock(BadId) -- EINVAL pthread_rwlockattr_init( &attr ) -- OK pthread_rwlock_init( &rwlock, &attr ) -- OK -pthread_rwlock_init( &rwlock, &attr ) -- EAGAIN pthread_rwlock_destroy( &rwlock ) -- OK pthread_rwlock_init( &rwlock, NULL ) -- OK pthread_rwlock_destroy( &rwlock ) -- OK @@ -94,4 +93,4 @@ pthread_rwlock_destroy( &RWLock ) -- OK pthread_rwlock_init( &rwlock, NULL ) -- OK pthread_rwlock_unlock ( &rwlock ) -- OK pthread_rwlock_unlock ( &rwlock ) -- OK -*** END OF POSIX RWLOCK TEST 01 *** +*** END OF TEST PSXRWLOCK 1 *** diff --git a/testsuites/psxtests/psxrwlock01/test.c b/testsuites/psxtests/psxrwlock01/test.c index 268f581a3e..6c85c03893 100644 --- a/testsuites/psxtests/psxrwlock01/test.c +++ b/testsuites/psxtests/psxrwlock01/test.c @@ -90,7 +90,7 @@ void *WriteLockThread(void *arg) return NULL; } -static void test_pshared_init(void) +static void test_rwlock_pshared_init(void) { pthread_rwlock_t rwlock; pthread_rwlockattr_t attr; @@ -126,6 +126,193 @@ static void test_pshared_init(void) rtems_test_assert(eno == 0); } +static void test_rwlock_null( void ) +{ + struct timespec to; + int eno; + + eno = pthread_rwlock_destroy( NULL ); + rtems_test_assert( eno == EINVAL ); + + eno = pthread_rwlock_init( NULL, NULL ); + rtems_test_assert( eno == EINVAL ); + + eno = pthread_rwlock_rdlock( NULL ); + rtems_test_assert( eno == EINVAL ); + + to.tv_sec = 1; + to.tv_nsec = 1; + eno = pthread_rwlock_timedrdlock( NULL, &to ); + rtems_test_assert( eno == EINVAL ); + + to.tv_sec = 1; + to.tv_nsec = 1; + eno = pthread_rwlock_timedwrlock( NULL, &to ); + rtems_test_assert( eno == EINVAL ); + + eno = pthread_rwlock_tryrdlock( NULL ); + rtems_test_assert( eno == EINVAL ); + + eno = pthread_rwlock_trywrlock( NULL ); + rtems_test_assert( eno == EINVAL ); + + eno = pthread_rwlock_unlock( NULL ); + rtems_test_assert( eno == EINVAL ); + + eno = pthread_rwlock_wrlock( NULL ); + rtems_test_assert( eno == EINVAL ); +} + +static void test_rwlock_not_initialized( void ) +{ + pthread_rwlock_t rw; + struct timespec to; + int eno; + + memset( &rw, 0xff, sizeof( rw ) ); + + eno = pthread_rwlock_destroy( &rw ); + rtems_test_assert( eno == EINVAL ); + + eno = pthread_rwlock_rdlock( &rw ); + rtems_test_assert( eno == EINVAL ); + + to.tv_sec = 1; + to.tv_nsec = 1; + eno = pthread_rwlock_timedrdlock( &rw, &to ); + rtems_test_assert( eno == EINVAL ); + + to.tv_sec = 1; + to.tv_nsec = 1; + eno = pthread_rwlock_timedwrlock( &rw, &to ); + rtems_test_assert( eno == EINVAL ); + + eno = pthread_rwlock_tryrdlock( &rw ); + rtems_test_assert( eno == EINVAL ); + + eno = pthread_rwlock_trywrlock( &rw ); + rtems_test_assert( eno == EINVAL ); + + eno = pthread_rwlock_unlock( &rw ); + rtems_test_assert( eno == EINVAL ); + + eno = pthread_rwlock_wrlock( &rw ); + rtems_test_assert( eno == EINVAL ); +} + +static void test_rwlock_invalid_copy( void ) +{ + pthread_rwlock_t rw; + pthread_rwlock_t rw2; + struct timespec to; + int eno; + + eno = pthread_rwlock_init( &rw, NULL ); + rtems_test_assert( eno == 0 ); + + memcpy( &rw2, &rw, sizeof( rw2 ) ); + + eno = pthread_rwlock_destroy( &rw2 ); + rtems_test_assert( eno == EINVAL ); + + eno = pthread_rwlock_rdlock( &rw2 ); + rtems_test_assert( eno == EINVAL ); + + to.tv_sec = 1; + to.tv_nsec = 1; + eno = pthread_rwlock_timedrdlock( &rw2, &to ); + rtems_test_assert( eno == EINVAL ); + + to.tv_sec = 1; + to.tv_nsec = 1; + eno = pthread_rwlock_timedwrlock( &rw2, &to ); + rtems_test_assert( eno == EINVAL ); + + eno = pthread_rwlock_tryrdlock( &rw2 ); + rtems_test_assert( eno == EINVAL ); + + eno = pthread_rwlock_trywrlock( &rw2 ); + rtems_test_assert( eno == EINVAL ); + + eno = pthread_rwlock_unlock( &rw2 ); + rtems_test_assert( eno == EINVAL ); + + eno = pthread_rwlock_wrlock( &rw2 ); + rtems_test_assert( eno == EINVAL ); + + eno = pthread_rwlock_destroy( &rw ); + rtems_test_assert( eno == 0 ); +} + +static void test_rwlock_auto_initialization( void ) +{ + struct timespec to; + int eno; + + { + static pthread_rwlock_t rw = PTHREAD_RWLOCK_INITIALIZER; + + eno = pthread_rwlock_destroy( &rw ); + rtems_test_assert( eno == 0 ); + + eno = pthread_rwlock_destroy( &rw ); + rtems_test_assert( eno == EINVAL ); + } + + { + static pthread_rwlock_t rw = PTHREAD_RWLOCK_INITIALIZER; + + eno = pthread_rwlock_rdlock( &rw ); + rtems_test_assert( eno == 0 ); + } + + { + static pthread_rwlock_t rw = PTHREAD_RWLOCK_INITIALIZER; + + to.tv_sec = 1; + to.tv_nsec = 1; + eno = pthread_rwlock_timedrdlock( &rw, &to ); + rtems_test_assert( eno == 0 ); + } + + { + static pthread_rwlock_t rw = PTHREAD_RWLOCK_INITIALIZER; + + to.tv_sec = 1; + to.tv_nsec = 1; + eno = pthread_rwlock_timedwrlock( &rw, &to ); + rtems_test_assert( eno == 0 ); + } + + { + static pthread_rwlock_t rw = PTHREAD_RWLOCK_INITIALIZER; + + eno = pthread_rwlock_tryrdlock( &rw ); + rtems_test_assert( eno == 0 ); + } + + { + static pthread_rwlock_t rw = PTHREAD_RWLOCK_INITIALIZER; + + eno = pthread_rwlock_trywrlock( &rw ); + rtems_test_assert( eno == 0 ); + } + + { + static pthread_rwlock_t rw = PTHREAD_RWLOCK_INITIALIZER; + + eno = pthread_rwlock_unlock( &rw ); + rtems_test_assert( eno == 0 ); + } + + { + static pthread_rwlock_t rw = PTHREAD_RWLOCK_INITIALIZER; + + eno = pthread_rwlock_wrlock( &rw ); + rtems_test_assert( eno == 0 ); + } +} + /* * main entry point to the test */ @@ -140,7 +327,6 @@ int main( #endif { pthread_rwlock_t rwlock; - pthread_rwlock_t rwlock2; pthread_rwlockattr_t attr; int status; int p; @@ -149,7 +335,11 @@ int main( TEST_BEGIN(); - test_pshared_init(); + test_rwlock_pshared_init(); + test_rwlock_null(); + test_rwlock_not_initialized(); + test_rwlock_invalid_copy(); + test_rwlock_auto_initialization(); /*************** NULL POINTER CHECKS *****************/ puts( "pthread_rwlockattr_init( NULL ) -- EINVAL" ); @@ -192,42 +382,6 @@ int main( status = pthread_rwlockattr_setpshared( &attr, ~PTHREAD_PROCESS_PRIVATE ); rtems_test_assert( status == EINVAL ); - /*************** AUTO INITIALIZATION *****************/ - - rwlock = PTHREAD_RWLOCK_INITIALIZER; - rwlock2 = PTHREAD_RWLOCK_INITIALIZER; - - status = pthread_rwlock_rdlock( &rwlock ); - rtems_test_assert( status == 0 ); - - status = pthread_rwlock_rdlock( &rwlock2 ); - rtems_test_assert( status == EINVAL ); - - status = pthread_rwlock_destroy( &rwlock ); - rtems_test_assert( status == 0 ); - - status = pthread_rwlock_rdlock( &rwlock2 ); - rtems_test_assert( status == 0 ); - - status = pthread_rwlock_destroy( &rwlock ); - rtems_test_assert( status == 0 ); - - rwlock = PTHREAD_RWLOCK_INITIALIZER; - rwlock2 = PTHREAD_RWLOCK_INITIALIZER; - - status = pthread_rwlock_rdlock( &rwlock ); - rtems_test_assert( status == 0 ); - - status = pthread_rwlock_destroy( &rwlock2 ); - rtems_test_assert( status == EINVAL ); - - status = pthread_rwlock_destroy( &rwlock ); - rtems_test_assert( status == 0 ); - - status = pthread_rwlock_destroy( &rwlock2 ); - rtems_test_assert( status == 0 ); - rtems_test_assert( rwlock2 != PTHREAD_RWLOCK_INITIALIZER ); - /*************** ACTUALLY WORK THIS TIME *****************/ puts( "pthread_rwlockattr_init( &attr ) -- OK" ); status = pthread_rwlockattr_init( &attr ); @@ -309,7 +463,6 @@ int main( 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 ); @@ -317,35 +470,35 @@ int main( abstime.tv_sec += 5; puts( "pthread_rwlock_destroy(BadId) -- EINVAL" ); - status = pthread_rwlock_destroy(&rwlock); + status = pthread_rwlock_destroy(NULL); rtems_test_assert( status == EINVAL ); puts( "pthread_rwlock_rdlock(BadId) -- EINVAL" ); - status = pthread_rwlock_rdlock(&rwlock); + status = pthread_rwlock_rdlock(NULL); rtems_test_assert( status == EINVAL ); puts( "pthread_rwlock_timedrdlock(BadId, &abstime) -- EINVAL" ); - status = pthread_rwlock_timedrdlock( &rwlock, &abstime); + status = pthread_rwlock_timedrdlock( NULL, &abstime); rtems_test_assert( status == EINVAL ); puts( "pthread_rwlock_tryrdlock(BadId) -- EINVAL" ); - status = pthread_rwlock_tryrdlock(&rwlock); + status = pthread_rwlock_tryrdlock(NULL); rtems_test_assert( status == EINVAL ); puts( "pthread_rwlock_wrlock(BadId) -- EINVAL" ); - status = pthread_rwlock_wrlock(&rwlock); + status = pthread_rwlock_wrlock(NULL); rtems_test_assert( status == EINVAL ); puts( "pthread_rwlock_timedwrlock(BadId, &abstime) -- EINVAL" ); - status = pthread_rwlock_timedwrlock( &rwlock, &abstime ); + status = pthread_rwlock_timedwrlock( NULL, &abstime ); rtems_test_assert( status == EINVAL ); puts( "pthread_rwlock_trywrlock(BadId) -- EINVAL" ); - status = pthread_rwlock_trywrlock(&rwlock); + status = pthread_rwlock_trywrlock(NULL); rtems_test_assert( status == EINVAL ); puts( "pthread_rwlock_unlock(BadId) -- EINVAL" ); - status = pthread_rwlock_unlock(&rwlock); + status = pthread_rwlock_unlock(NULL); rtems_test_assert( status == EINVAL ); /*************** BAD ABSTIME CHECK *****************/ @@ -368,11 +521,6 @@ int main( puts( "pthread_rwlock_init( &rwlock, &attr ) -- OK" ); status = pthread_rwlock_init( &rwlock, &attr ); rtems_test_assert( status == 0 ); - rtems_test_assert( rwlock != 0 ); - - puts( "pthread_rwlock_init( &rwlock, &attr ) -- EAGAIN" ); - status = pthread_rwlock_init( &rwlock, &attr ); - rtems_test_assert( status == EAGAIN ); puts( "pthread_rwlock_destroy( &rwlock ) -- OK" ); status = pthread_rwlock_destroy( &rwlock ); @@ -549,7 +697,6 @@ int main( puts( "pthread_rwlock_init( &rwlock, NULL ) -- OK" ); status = pthread_rwlock_init( &rwlock, NULL ); rtems_test_assert( status == 0 ); - rtems_test_assert( rwlock != 0 ); puts( "pthread_rwlock_unlock ( &rwlock ) -- OK" ); status = pthread_rwlock_unlock( &rwlock ); diff --git a/testsuites/psxtmtests/psxtmrwlock01/init.c b/testsuites/psxtmtests/psxtmrwlock01/init.c index 0073e70382..93d9c8b5b5 100644 --- a/testsuites/psxtmtests/psxtmrwlock01/init.c +++ b/testsuites/psxtmtests/psxtmrwlock01/init.c @@ -271,7 +271,6 @@ void *POSIX_Init( #define CONFIGURE_APPLICATION_NEEDS_TIMER_DRIVER #define CONFIGURE_MAXIMUM_POSIX_THREADS 1 -#define CONFIGURE_MAXIMUM_POSIX_RWLOCKS 1 #define CONFIGURE_POSIX_INIT_THREAD_TABLE #define CONFIGURE_INIT diff --git a/testsuites/psxtmtests/psxtmrwlock02/init.c b/testsuites/psxtmtests/psxtmrwlock02/init.c index 4ce7fa5ec0..f2462b235b 100644 --- a/testsuites/psxtmtests/psxtmrwlock02/init.c +++ b/testsuites/psxtmtests/psxtmrwlock02/init.c @@ -126,7 +126,6 @@ void *POSIX_Init( #define CONFIGURE_APPLICATION_NEEDS_TIMER_DRIVER #define CONFIGURE_MAXIMUM_POSIX_THREADS OPERATION_COUNT + 2 -#define CONFIGURE_MAXIMUM_POSIX_RWLOCKS 1 #define CONFIGURE_POSIX_INIT_THREAD_TABLE #define CONFIGURE_INIT diff --git a/testsuites/psxtmtests/psxtmrwlock03/init.c b/testsuites/psxtmtests/psxtmrwlock03/init.c index 5fdf522c63..10c7aee4cc 100644 --- a/testsuites/psxtmtests/psxtmrwlock03/init.c +++ b/testsuites/psxtmtests/psxtmrwlock03/init.c @@ -139,7 +139,6 @@ void *POSIX_Init( #define CONFIGURE_APPLICATION_NEEDS_TIMER_DRIVER #define CONFIGURE_MAXIMUM_POSIX_THREADS OPERATION_COUNT + 2 -#define CONFIGURE_MAXIMUM_POSIX_RWLOCKS 1 #define CONFIGURE_POSIX_INIT_THREAD_TABLE #define CONFIGURE_INIT diff --git a/testsuites/psxtmtests/psxtmrwlock04/init.c b/testsuites/psxtmtests/psxtmrwlock04/init.c index 8b1b45dd98..dd2d7357f1 100644 --- a/testsuites/psxtmtests/psxtmrwlock04/init.c +++ b/testsuites/psxtmtests/psxtmrwlock04/init.c @@ -127,7 +127,6 @@ void *POSIX_Init( #define CONFIGURE_APPLICATION_NEEDS_TIMER_DRIVER #define CONFIGURE_MAXIMUM_POSIX_THREADS OPERATION_COUNT + 2 -#define CONFIGURE_MAXIMUM_POSIX_RWLOCKS 1 #define CONFIGURE_POSIX_INIT_THREAD_TABLE #define CONFIGURE_INIT diff --git a/testsuites/psxtmtests/psxtmrwlock05/init.c b/testsuites/psxtmtests/psxtmrwlock05/init.c index 1ec86c0efe..f6668c370d 100644 --- a/testsuites/psxtmtests/psxtmrwlock05/init.c +++ b/testsuites/psxtmtests/psxtmrwlock05/init.c @@ -139,7 +139,6 @@ void *POSIX_Init( #define CONFIGURE_APPLICATION_NEEDS_TIMER_DRIVER #define CONFIGURE_MAXIMUM_POSIX_THREADS OPERATION_COUNT + 2 -#define CONFIGURE_MAXIMUM_POSIX_RWLOCKS 1 #define CONFIGURE_POSIX_INIT_THREAD_TABLE #define CONFIGURE_INIT diff --git a/testsuites/psxtmtests/psxtmrwlock06/init.c b/testsuites/psxtmtests/psxtmrwlock06/init.c index b74ac251cb..93a49be1f5 100644 --- a/testsuites/psxtmtests/psxtmrwlock06/init.c +++ b/testsuites/psxtmtests/psxtmrwlock06/init.c @@ -101,7 +101,6 @@ void *POSIX_Init( #define CONFIGURE_APPLICATION_NEEDS_TIMER_DRIVER #define CONFIGURE_MAXIMUM_POSIX_THREADS 2 -#define CONFIGURE_MAXIMUM_POSIX_RWLOCKS 1 #define CONFIGURE_POSIX_INIT_THREAD_TABLE #define CONFIGURE_INIT diff --git a/testsuites/psxtmtests/psxtmrwlock07/init.c b/testsuites/psxtmtests/psxtmrwlock07/init.c index 9a779028f8..303c3015c5 100644 --- a/testsuites/psxtmtests/psxtmrwlock07/init.c +++ b/testsuites/psxtmtests/psxtmrwlock07/init.c @@ -158,7 +158,6 @@ void *POSIX_Init( #define CONFIGURE_APPLICATION_NEEDS_TIMER_DRIVER #define CONFIGURE_MAXIMUM_POSIX_THREADS OPERATION_COUNT + 2 -#define CONFIGURE_MAXIMUM_POSIX_RWLOCKS 1 #define CONFIGURE_POSIX_INIT_THREAD_TABLE #define CONFIGURE_INIT diff --git a/testsuites/sptests/spsysinit01/init.c b/testsuites/sptests/spsysinit01/init.c index ff450b9ace..ab9e4a8e64 100644 --- a/testsuites/sptests/spsysinit01/init.c +++ b/testsuites/sptests/spsysinit01/init.c @@ -114,8 +114,6 @@ typedef enum { POSIX_SEMAPHORE_POST, POSIX_TIMER_PRE, POSIX_TIMER_POST, - POSIX_RWLOCK_PRE, - POSIX_RWLOCK_POST, POSIX_SHM_PRE, POSIX_SHM_POST, #endif /* RTEMS_POSIX_API */ @@ -503,18 +501,6 @@ LAST(RTEMS_SYSINIT_POSIX_TIMER) next_step(POSIX_TIMER_POST); } -FIRST(RTEMS_SYSINIT_POSIX_RWLOCK) -{ - assert(_POSIX_RWLock_Information.maximum == 0); - next_step(POSIX_RWLOCK_PRE); -} - -LAST(RTEMS_SYSINIT_POSIX_RWLOCK) -{ - assert(_POSIX_RWLock_Information.maximum != 0); - next_step(POSIX_RWLOCK_POST); -} - FIRST(RTEMS_SYSINIT_POSIX_SHM) { assert(_POSIX_Shm_Information.maximum == 0); @@ -749,8 +735,6 @@ static void *POSIX_Init(void *arg) #define CONFIGURE_MAXIMUM_POSIX_CONDITION_VARIABLES 1 -#define CONFIGURE_MAXIMUM_POSIX_RWLOCKS 1 - #define CONFIGURE_MAXIMUM_POSIX_SEMAPHORES 1 #define CONFIGURE_MAXIMUM_POSIX_SHMS 1 diff --git a/testsuites/sptests/spthreadq01/init.c b/testsuites/sptests/spthreadq01/init.c index 2b994e5d68..5416118144 100644 --- a/testsuites/sptests/spthreadq01/init.c +++ b/testsuites/sptests/spthreadq01/init.c @@ -42,7 +42,6 @@ typedef struct { #if defined(RTEMS_POSIX_API) pthread_mutex_t pmtx; pthread_cond_t pcv; - pthread_rwlock_t prw; mqd_t pmq; #endif } test_context; @@ -139,15 +138,6 @@ static void posix_worker(test_context *ctx) eno = pthread_mutex_unlock(&ctx->pmtx); rtems_test_assert(eno == 0); - eno = pthread_rwlock_wrlock(&ctx->prw); - rtems_test_assert(eno == 0); - - wake_up_master(ctx); - rtems_test_assert(get_wait_id(ctx) == ctx->prw); - - eno = pthread_rwlock_unlock(&ctx->prw); - rtems_test_assert(eno == 0); - wake_up_master(ctx); rtems_test_assert(get_wait_id(ctx) == ctx->pmq); @@ -219,9 +209,6 @@ static void test_posix_init(test_context *ctx) eno = pthread_cond_init(&ctx->pcv, NULL); rtems_test_assert(eno == 0); - eno = pthread_rwlock_init(&ctx->prw, NULL); - rtems_test_assert(eno == 0); - memset(&attr, 0, sizeof(attr)); attr.mq_maxmsg = 1; attr.mq_msgsize = sizeof(char); @@ -313,11 +300,6 @@ static void test_posix_obj(test_context *ctx) wait_for_worker(ctx); - eno = pthread_rwlock_wrlock(&ctx->prw); - rtems_test_assert(eno == 0); - - wait_for_worker(ctx); - buf[0] = 'y'; prio = 1; n = mq_receive(ctx->pmq, &buf[0], sizeof(buf), &prio); @@ -362,7 +344,6 @@ static rtems_task Init( #if defined(RTEMS_POSIX_API) #define CONFIGURE_MAXIMUM_POSIX_MUTEXES 1 #define CONFIGURE_MAXIMUM_POSIX_CONDITION_VARIABLES 1 - #define CONFIGURE_MAXIMUM_POSIX_RWLOCKS 1 #define CONFIGURE_MAXIMUM_POSIX_MESSAGE_QUEUES 1 #define CONFIGURE_MESSAGE_BUFFER_MEMORY \ (2 * CONFIGURE_MESSAGE_BUFFERS_FOR_QUEUE(1, 1)) -- cgit v1.2.3