diff options
Diffstat (limited to 'testsuites')
-rw-r--r-- | testsuites/psxtests/psxbarrier01/main.c | 2 | ||||
-rw-r--r-- | testsuites/psxtests/psxbarrier01/psxbarrier01.scn | 7 | ||||
-rw-r--r-- | testsuites/psxtests/psxbarrier01/test.c | 82 | ||||
-rw-r--r-- | testsuites/psxtests/psxconfig01/init.c | 13 | ||||
-rw-r--r-- | testsuites/psxtmtests/psxtmbarrier01/init.c | 1 | ||||
-rw-r--r-- | testsuites/psxtmtests/psxtmbarrier02/init.c | 1 | ||||
-rw-r--r-- | testsuites/psxtmtests/psxtmbarrier03/init.c | 1 | ||||
-rw-r--r-- | testsuites/psxtmtests/psxtmbarrier04/init.c | 1 | ||||
-rw-r--r-- | testsuites/sptests/spsysinit01/init.c | 16 |
9 files changed, 63 insertions, 61 deletions
diff --git a/testsuites/psxtests/psxbarrier01/main.c b/testsuites/psxtests/psxbarrier01/main.c index 6475016730..f031c05b3c 100644 --- a/testsuites/psxtests/psxbarrier01/main.c +++ b/testsuites/psxtests/psxbarrier01/main.c @@ -40,8 +40,6 @@ rtems_task Init( #define CONFIGURE_MAXIMUM_POSIX_THREADS 10 -#define CONFIGURE_MAXIMUM_POSIX_BARRIERS 1 - #define CONFIGURE_INITIAL_EXTENSIONS RTEMS_TEST_INITIAL_EXTENSION #define CONFIGURE_RTEMS_INIT_TASKS_TABLE diff --git a/testsuites/psxtests/psxbarrier01/psxbarrier01.scn b/testsuites/psxtests/psxbarrier01/psxbarrier01.scn index d568d8d03e..c7ef3fd245 100644 --- a/testsuites/psxtests/psxbarrier01/psxbarrier01.scn +++ b/testsuites/psxtests/psxbarrier01/psxbarrier01.scn @@ -23,14 +23,11 @@ pthread_barrier_init( &barrier, &attr, 1 ) -- EINVAL pthread_barrierattr_setpshared( &attr, shared ) -- OK pthread_barrier_init( &barrier, &attr, 1 ) -- OK pthread_barrier_destroy( &barrier ) -- OK -pthread_barrier_init( &barrier, NULL, 1 ) -- OK -pthread_barrier_init( &barrier, NULL, 1 ) -- EAGAIN -pthread_barrier_destroy( &barrier ) -- OK pthread_barrierattr_destroy( &attr ) -- OK pthread_barrier_destroy( NULL ) -- EINVAL -pthread_barrier_destroy( &bad_barrier ) -- EINVAL +pthread_barrier_destroy( bad_barrier ) -- EINVAL pthread_barrier_wait( NULL ) -- EINVAL -pthread_barrier_wait( &bad_barrier ) -- EINVAL +pthread_barrier_wait( bad_barrier ) -- EINVAL pthread_barrierattr_init( &attr ) -- OK pthread_barrier_init( &barrier, &attr, 2 ) -- OK pthread_barrier_destroy( &barrier ) -- OK diff --git a/testsuites/psxtests/psxbarrier01/test.c b/testsuites/psxtests/psxbarrier01/test.c index 16e8665b94..4253b21057 100644 --- a/testsuites/psxtests/psxbarrier01/test.c +++ b/testsuites/psxtests/psxbarrier01/test.c @@ -4,6 +4,8 @@ * COPYRIGHT (c) 1989-2009. * On-Line Applications Research Corporation (OAR). * + * Copyright (c) 2017 embedded brains GmbH + * * The license and distribution terms for this file may be * found in the file LICENSE in this distribution or at * http://www.rtems.org/license/LICENSE. @@ -16,6 +18,7 @@ #include <stdio.h> #include <errno.h> #include <stdlib.h> +#include <string.h> /* #define __USE_XOPEN2K XXX already defined on GNU/Linux */ #include <pthread.h> @@ -24,6 +27,55 @@ const char rtems_test_name[] = "PSXBARRIER 1"; +static void test_barrier_null( void ) +{ + int eno; + + eno = pthread_barrier_init( NULL, NULL, 1 ); + rtems_test_assert( eno == EINVAL ); + + eno = pthread_barrier_wait( NULL ); + rtems_test_assert( eno == EINVAL ); + + eno = pthread_barrier_destroy( NULL ); + rtems_test_assert( eno == EINVAL ); +} + +static void test_barrier_not_initialized( void ) +{ + pthread_barrier_t bar; + int eno; + + memset( &bar, 0xff, sizeof( bar ) ); + + eno = pthread_barrier_wait(& bar) ; + rtems_test_assert( eno == EINVAL ); + + eno = pthread_barrier_destroy( &bar ); + rtems_test_assert( eno == EINVAL ); +} + +static void test_barrier_invalid_copy( void ) +{ + pthread_barrier_t bar; + pthread_barrier_t bar2; + int eno; + + eno = pthread_barrier_init( &bar, NULL, 1 ); + rtems_test_assert( eno == 0 ); + + memcpy( &bar2, &bar, sizeof( bar2 ) ); + + eno = pthread_barrier_wait( &bar2 ); + rtems_test_assert( eno == EINVAL ); + + eno = pthread_barrier_destroy( &bar2 ); + rtems_test_assert( eno == EINVAL ); + + eno = pthread_barrier_destroy( &bar ); + rtems_test_assert( eno == 0 ); +} + #define NUMBER_THREADS 2 pthread_t ThreadIds[NUMBER_THREADS]; pthread_barrier_t Barrier; @@ -57,7 +109,7 @@ int main( ) #endif { - pthread_barrier_t bad_barrier = 100; + pthread_barrier_t *bad_barrier = NULL; pthread_barrier_t barrier; pthread_barrierattr_t attr; int status; @@ -178,20 +230,6 @@ int main( status = pthread_barrier_destroy( &barrier ); rtems_test_assert( status == 0 ); - /* allocating too many */ - puts( "pthread_barrier_init( &barrier, NULL, 1 ) -- OK" ); - status = pthread_barrier_init( &barrier, NULL, 1 ); - rtems_test_assert( status == 0 ); - - puts( "pthread_barrier_init( &barrier, NULL, 1 ) -- EAGAIN" ); - status = pthread_barrier_init( &barrier, NULL, 1 ); - rtems_test_assert( status == EAGAIN ); - - /* clean up */ - puts( "pthread_barrier_destroy( &barrier ) -- OK" ); - status = pthread_barrier_destroy( &barrier ); - rtems_test_assert( status == 0 ); - puts( "pthread_barrierattr_destroy( &attr ) -- OK" ); status = pthread_barrierattr_destroy( &attr ); rtems_test_assert( status == 0 ); @@ -202,8 +240,8 @@ int main( status = pthread_barrier_destroy( NULL ); rtems_test_assert( status == EINVAL ); - puts( "pthread_barrier_destroy( &bad_barrier ) -- EINVAL" ); - status = pthread_barrier_destroy( &bad_barrier ); + puts( "pthread_barrier_destroy( bad_barrier ) -- EINVAL" ); + status = pthread_barrier_destroy( bad_barrier ); rtems_test_assert( status == EINVAL ); /*************** pthread_barrier_wait ERROR CHECKs *********/ @@ -212,8 +250,8 @@ int main( status = pthread_barrier_wait( NULL ); rtems_test_assert( status == EINVAL ); - puts( "pthread_barrier_wait( &bad_barrier ) -- EINVAL" ); - status = pthread_barrier_wait( &bad_barrier ); + puts( "pthread_barrier_wait( bad_barrier ) -- EINVAL" ); + status = pthread_barrier_wait( bad_barrier ); rtems_test_assert( status == EINVAL ); /*************** ACTUALLY CREATE ONE CHECK *****************/ @@ -224,7 +262,6 @@ int main( puts( "pthread_barrier_init( &barrier, &attr, 2 ) -- OK" ); status = pthread_barrier_init( &barrier, &attr, 2 ); rtems_test_assert( status == 0 ); - rtems_test_assert( barrier != 0 ); puts( "pthread_barrier_destroy( &barrier ) -- OK" ); status = pthread_barrier_destroy( &barrier ); @@ -234,7 +271,6 @@ int main( puts( "pthread_barrier_init( &Barrier, &attr, NUMBER_THREADS ) -- OK" ); status = pthread_barrier_init( &Barrier, &attr, NUMBER_THREADS ); rtems_test_assert( status == 0 ); - rtems_test_assert( barrier != 0 ); for (i=0 ; i<NUMBER_THREADS ; i++ ) { @@ -253,6 +289,10 @@ int main( sleep(1); } + test_barrier_null(); + test_barrier_not_initialized(); + test_barrier_invalid_copy(); + /*************** END OF TEST *****************/ TEST_END(); exit(0); diff --git a/testsuites/psxtests/psxconfig01/init.c b/testsuites/psxtests/psxconfig01/init.c index dd741c11cb..c9e6bfd9fb 100644 --- a/testsuites/psxtests/psxconfig01/init.c +++ b/testsuites/psxtests/psxconfig01/init.c @@ -60,7 +60,6 @@ const char rtems_test_name[] = "PSXCONFIG 1"; #define CONFIGURE_MAXIMUM_TIMERS 59 #define CONFIGURE_MAXIMUM_USER_EXTENSIONS 17 -#define CONFIGURE_MAXIMUM_POSIX_BARRIERS 31 #define CONFIGURE_MAXIMUM_POSIX_CONDITION_VARIABLES 29 #define POSIX_MQ_COUNT 5 #define CONFIGURE_MAXIMUM_POSIX_MUTEXES 19 @@ -431,18 +430,6 @@ static rtems_task Init(rtems_task_argument argument) ); #endif -#ifdef CONFIGURE_MAXIMUM_POSIX_BARRIERS - for (i = 0; i < CONFIGURE_MAXIMUM_POSIX_BARRIERS; ++i) { - pthread_barrier_t barrier; - eno = pthread_barrier_init(&barrier, NULL, 1); - rtems_test_assert(eno == 0); - } - rtems_resource_snapshot_take(&snapshot); - rtems_test_assert( - snapshot.posix_api.active_barriers == CONFIGURE_MAXIMUM_POSIX_BARRIERS - ); -#endif - #ifdef CONFIGURE_MAXIMUM_POSIX_CONDITION_VARIABLES for (i = 0; i < CONFIGURE_MAXIMUM_POSIX_CONDITION_VARIABLES; ++i) { pthread_cond_t cond; diff --git a/testsuites/psxtmtests/psxtmbarrier01/init.c b/testsuites/psxtmtests/psxtmbarrier01/init.c index 690653fe64..7caa6727d0 100644 --- a/testsuites/psxtmtests/psxtmbarrier01/init.c +++ b/testsuites/psxtmtests/psxtmbarrier01/init.c @@ -91,7 +91,6 @@ void *POSIX_Init( #define CONFIGURE_APPLICATION_NEEDS_TIMER_DRIVER #define CONFIGURE_MAXIMUM_POSIX_THREADS 1 -#define CONFIGURE_MAXIMUM_POSIX_BARRIERS 1 #define CONFIGURE_POSIX_INIT_THREAD_TABLE #define CONFIGURE_INIT diff --git a/testsuites/psxtmtests/psxtmbarrier02/init.c b/testsuites/psxtmtests/psxtmbarrier02/init.c index 0506db9874..6705125ac6 100644 --- a/testsuites/psxtmtests/psxtmbarrier02/init.c +++ b/testsuites/psxtmtests/psxtmbarrier02/init.c @@ -133,7 +133,6 @@ void *POSIX_Init( #define CONFIGURE_APPLICATION_NEEDS_TIMER_DRIVER #define CONFIGURE_MAXIMUM_POSIX_THREADS OPERATION_COUNT + 2 -#define CONFIGURE_MAXIMUM_POSIX_BARRIERS 1 #define CONFIGURE_POSIX_INIT_THREAD_TABLE #define CONFIGURE_INIT diff --git a/testsuites/psxtmtests/psxtmbarrier03/init.c b/testsuites/psxtmtests/psxtmbarrier03/init.c index d81be082be..27feac1fe8 100644 --- a/testsuites/psxtmtests/psxtmbarrier03/init.c +++ b/testsuites/psxtmtests/psxtmbarrier03/init.c @@ -98,7 +98,6 @@ void *POSIX_Init( #define CONFIGURE_APPLICATION_NEEDS_TIMER_DRIVER #define CONFIGURE_MAXIMUM_POSIX_THREADS 2 -#define CONFIGURE_MAXIMUM_POSIX_BARRIERS 1 #define CONFIGURE_POSIX_INIT_THREAD_TABLE #define CONFIGURE_INIT diff --git a/testsuites/psxtmtests/psxtmbarrier04/init.c b/testsuites/psxtmtests/psxtmbarrier04/init.c index 2fc3b76fac..baf1bf1032 100644 --- a/testsuites/psxtmtests/psxtmbarrier04/init.c +++ b/testsuites/psxtmtests/psxtmbarrier04/init.c @@ -90,7 +90,6 @@ void *POSIX_Init( #define CONFIGURE_APPLICATION_NEEDS_TIMER_DRIVER #define CONFIGURE_MAXIMUM_POSIX_THREADS 2 -#define CONFIGURE_MAXIMUM_POSIX_BARRIERS 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 612ba145a2..ff450b9ace 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_BARRIER_PRE, - POSIX_BARRIER_POST, POSIX_RWLOCK_PRE, POSIX_RWLOCK_POST, POSIX_SHM_PRE, @@ -505,18 +503,6 @@ LAST(RTEMS_SYSINIT_POSIX_TIMER) next_step(POSIX_TIMER_POST); } -FIRST(RTEMS_SYSINIT_POSIX_BARRIER) -{ - assert(_POSIX_Barrier_Information.maximum == 0); - next_step(POSIX_BARRIER_PRE); -} - -LAST(RTEMS_SYSINIT_POSIX_BARRIER) -{ - assert(_POSIX_Barrier_Information.maximum != 0); - next_step(POSIX_BARRIER_POST); -} - FIRST(RTEMS_SYSINIT_POSIX_RWLOCK) { assert(_POSIX_RWLock_Information.maximum == 0); @@ -757,8 +743,6 @@ static void *POSIX_Init(void *arg) #ifdef RTEMS_POSIX_API -#define CONFIGURE_MAXIMUM_POSIX_BARRIERS 1 - #define CONFIGURE_MAXIMUM_POSIX_MESSAGE_QUEUES 1 #define CONFIGURE_MAXIMUM_POSIX_MUTEXES 1 |