summaryrefslogtreecommitdiffstats
path: root/testsuites
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2017-09-21 15:42:45 +0200
committerSebastian Huber <sebastian.huber@embedded-brains.de>2017-10-05 14:29:02 +0200
commit89fc9345dea5c675f8d93546fa3c723918d3279a (patch)
tree89c32d64f375e1a9bf9d3725b1256aeb7ca46221 /testsuites
parentposix: Implement self-contained POSIX barriers (diff)
downloadrtems-89fc9345dea5c675f8d93546fa3c723918d3279a.tar.bz2
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.
Diffstat (limited to 'testsuites')
-rw-r--r--testsuites/psxtests/psxconfig01/init.c13
-rw-r--r--testsuites/psxtests/psxrwlock01/main.c1
-rw-r--r--testsuites/psxtests/psxrwlock01/psxrwlock01.scn5
-rw-r--r--testsuites/psxtests/psxrwlock01/test.c255
-rw-r--r--testsuites/psxtmtests/psxtmrwlock01/init.c1
-rw-r--r--testsuites/psxtmtests/psxtmrwlock02/init.c1
-rw-r--r--testsuites/psxtmtests/psxtmrwlock03/init.c1
-rw-r--r--testsuites/psxtmtests/psxtmrwlock04/init.c1
-rw-r--r--testsuites/psxtmtests/psxtmrwlock05/init.c1
-rw-r--r--testsuites/psxtmtests/psxtmrwlock06/init.c1
-rw-r--r--testsuites/psxtmtests/psxtmrwlock07/init.c1
-rw-r--r--testsuites/sptests/spsysinit01/init.c16
-rw-r--r--testsuites/sptests/spthreadq01/init.c19
13 files changed, 203 insertions, 113 deletions
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))