summaryrefslogtreecommitdiffstats
path: root/testsuites/psxtests/psx01
diff options
context:
space:
mode:
Diffstat (limited to 'testsuites/psxtests/psx01')
-rw-r--r--testsuites/psxtests/psx01/init.c17
1 files changed, 17 insertions, 0 deletions
diff --git a/testsuites/psxtests/psx01/init.c b/testsuites/psxtests/psx01/init.c
index 59605b49af..1d1a9e8e63 100644
--- a/testsuites/psxtests/psx01/init.c
+++ b/testsuites/psxtests/psx01/init.c
@@ -20,6 +20,18 @@
#include <rtems/score/todimpl.h>
+pthread_once_t nesting_once = PTHREAD_ONCE_INIT;
+
+void Test_init_routine_nesting( void );
+
+void Test_init_routine_nesting( void )
+{
+ int status;
+ puts( "Test_init_routine_nesting: invoked" );
+ status = pthread_once( &nesting_once, Test_init_routine_nesting );
+ rtems_test_assert( status == EINVAL );
+}
+
void *POSIX_Init(
void *argument
)
@@ -95,6 +107,11 @@ void *POSIX_Init(
);
rtems_test_assert( !status );
+ /* once nesting */
+ puts( "Init: pthread_once - SUCCESSFUL (init_routine_nesting executes)" );
+ status = pthread_once( &nesting_once, Test_init_routine_nesting );
+ rtems_test_assert( !status );
+
/* create a thread */
puts( "Init: pthread_create - SUCCESSFUL" );