summaryrefslogtreecommitdiffstats
path: root/testsuites
diff options
context:
space:
mode:
authorJoel Sherrill <joel.sherrill@OARcorp.com>1996-08-08 21:58:26 +0000
committerJoel Sherrill <joel.sherrill@OARcorp.com>1996-08-08 21:58:26 +0000
commit79f189e26c0e8daa2220a63915b1da0a8e9a34fe (patch)
treecfd661d463c0966ed11ca8340c9b042531c7758e /testsuites
parentadded cases to increase coverage of pthread_create. cases added tested (diff)
downloadrtems-79f189e26c0e8daa2220a63915b1da0a8e9a34fe.tar.bz2
split test into multiple tasks.
Diffstat (limited to 'testsuites')
-rw-r--r--testsuites/psxtests/psx05/system.h13
-rw-r--r--testsuites/psxtests/psx05/task2.c47
-rw-r--r--testsuites/psxtests/psx05/task3.c51
3 files changed, 110 insertions, 1 deletions
diff --git a/testsuites/psxtests/psx05/system.h b/testsuites/psxtests/psx05/system.h
index 3751a76ce7..c34b157da1 100644
--- a/testsuites/psxtests/psx05/system.h
+++ b/testsuites/psxtests/psx05/system.h
@@ -22,7 +22,15 @@ void *POSIX_Init(
void *argument
);
-void *Task_1_through_3(
+void *Task_1(
+ void *argument
+);
+
+void *Task_2(
+ void *argument
+);
+
+void *Task_3(
void *argument
);
@@ -49,6 +57,9 @@ void *Task_1_through_3(
TEST_EXTERN pthread_t Init_id;
TEST_EXTERN pthread_t Task_id;
+TEST_EXTERN pthread_t Task2_id;
+TEST_EXTERN pthread_t Task3_id;
TEST_EXTERN pthread_mutex_t Mutex_id;
+TEST_EXTERN pthread_mutex_t Mutex2_id;
/* end of include file */
diff --git a/testsuites/psxtests/psx05/task2.c b/testsuites/psxtests/psx05/task2.c
new file mode 100644
index 0000000000..b931debb0d
--- /dev/null
+++ b/testsuites/psxtests/psx05/task2.c
@@ -0,0 +1,47 @@
+/* Task_2
+ *
+ * This routine serves as a test task.
+ *
+ * Input parameters:
+ * argument - task argument
+ *
+ * Output parameters: NONE
+ *
+ * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994.
+ * On-Line Applications Research Corporation (OAR).
+ * All rights assigned to U.S. Government, 1994.
+ *
+ * This material may be reproduced by or for the U.S. Government pursuant
+ * to the copyright license under the clause at DFARS 252.227-7013. This
+ * notice must appear in all copies of this file and its derivatives.
+ *
+ * $Id$
+ */
+
+#include "system.h"
+#include <errno.h>
+
+void *Task_2(
+ void *argument
+)
+{
+ int status;
+
+ printf( "Task 2: pthread_mutex_lock unavailable (inherit case)\n" );
+ status = pthread_mutex_lock( &Mutex2_id );
+ printf( "Task 2: mutex acquired\n" );
+ assert( !status );
+
+ /* switch to init */
+
+ printf( "Task 2: unlock Mutex 2\n" );
+ status = pthread_mutex_unlock( &Mutex2_id );
+ assert( !status );
+
+ printf( "Task 2: exit\n" );
+ pthread_exit( NULL );
+
+ /* switch to Init */
+
+ return NULL; /* just so the compiler thinks we returned something */
+}
diff --git a/testsuites/psxtests/psx05/task3.c b/testsuites/psxtests/psx05/task3.c
new file mode 100644
index 0000000000..34fd3ef6d6
--- /dev/null
+++ b/testsuites/psxtests/psx05/task3.c
@@ -0,0 +1,51 @@
+/* Task_3
+ *
+ * This routine serves as a test task.
+ *
+ * Input parameters:
+ * argument - task argument
+ *
+ * Output parameters: NONE
+ *
+ * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994.
+ * On-Line Applications Research Corporation (OAR).
+ * All rights assigned to U.S. Government, 1994.
+ *
+ * This material may be reproduced by or for the U.S. Government pursuant
+ * to the copyright license under the clause at DFARS 252.227-7013. This
+ * notice must appear in all copies of this file and its derivatives.
+ *
+ * $Id$
+ */
+
+#include "system.h"
+#include <errno.h>
+
+void *Task_3(
+ void *argument
+)
+{
+ int status;
+ struct sched_param param;
+ int policy;
+
+ printf( "Task 3: pthread_mutex_lock unavailable (inherit case)\n" );
+ status = pthread_mutex_lock( &Mutex2_id );
+ printf( "Task 3: mutex acquired\n" );
+ assert( !status );
+
+ printf( "Task 3: unlock Mutex 2\n" );
+ status = pthread_mutex_unlock( &Mutex2_id );
+ assert( !status );
+
+ status = pthread_getschedparam( pthread_self(), &policy, &param );
+ assert( !status );
+ printf( "Task 3: pthread_getschedparam priority = %d\n", param.sched_priority );
+
+ printf( "Task 3: exit\n" );
+ pthread_exit( NULL );
+
+ /* switch to Init */
+
+ return NULL; /* just so the compiler thinks we returned something */
+}