summaryrefslogtreecommitdiffstats
path: root/testsuites/psxtests
diff options
context:
space:
mode:
authorJoel Sherrill <joel.sherrill@OARcorp.com>1996-09-18 22:23:15 +0000
committerJoel Sherrill <joel.sherrill@OARcorp.com>1996-09-18 22:23:15 +0000
commit1f4f392a5f89245c31a4bb8da9ae0004fbde1081 (patch)
treeccff5bda8f361998932db876171d1128cc22bd90 /testsuites/psxtests
parentnew files submitted by Craig Lebakken (lebakken@minn.net) and Derrick Ostertag (diff)
downloadrtems-1f4f392a5f89245c31a4bb8da9ae0004fbde1081.tar.bz2
new files
Diffstat (limited to 'testsuites/psxtests')
-rw-r--r--testsuites/psxtests/psx04/task1.c44
-rw-r--r--testsuites/psxtests/psx04/task2.c42
-rw-r--r--testsuites/psxtests/psx04/task3.c119
3 files changed, 205 insertions, 0 deletions
diff --git a/testsuites/psxtests/psx04/task1.c b/testsuites/psxtests/psx04/task1.c
new file mode 100644
index 0000000000..f62a85fbea
--- /dev/null
+++ b/testsuites/psxtests/psx04/task1.c
@@ -0,0 +1,44 @@
+/* Task_1
+ *
+ * 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 <signal.h>
+
+void *Task_1(
+ void *argument
+)
+{
+ int seconds;
+
+ printf( "Task_1: sleeping for 5 seconds\n" );
+
+ seconds = sleep( 5 );
+ printf( "Task_1: %d seconds left\n", seconds );
+ assert( seconds );
+
+ /* switch to Init */
+
+ printf( "Task_1: exit\n" );
+ pthread_exit( NULL );
+
+ /* switch to Init */
+
+ return NULL; /* just so the compiler thinks we returned something */
+}
diff --git a/testsuites/psxtests/psx04/task2.c b/testsuites/psxtests/psx04/task2.c
new file mode 100644
index 0000000000..e3d5bc1533
--- /dev/null
+++ b/testsuites/psxtests/psx04/task2.c
@@ -0,0 +1,42 @@
+/* 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 <signal.h>
+
+void *Task_2(
+ void *argument
+)
+{
+ int status;
+
+ printf( "Task_2: sending SIGUSR1\n" );
+ status = pthread_kill( Init_id, SIGUSR1 );
+ assert( !status );
+
+ /* switch to Init */
+
+ 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/psx04/task3.c b/testsuites/psxtests/psx04/task3.c
new file mode 100644
index 0000000000..6eb14b9db7
--- /dev/null
+++ b/testsuites/psxtests/psx04/task3.c
@@ -0,0 +1,119 @@
+/* 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 <signal.h>
+
+void *Task_3(
+ void *argument
+)
+{
+ int status;
+ int sig;
+ union sigval value;
+ sigset_t mask;
+ siginfo_t info;
+
+ value.sival_int = SIGUSR1;
+
+ printf( "Task_3: sigqueue SIGUSR1 with value= %d\n", value.sival_int );
+ status = sigqueue( getpid(), SIGUSR1, value );
+ assert( !status );
+
+ /* catch signal with sigwaitinfo */
+
+ empty_line();
+
+ status = sigemptyset( &mask );
+ assert( !status );
+
+ status = sigaddset( &mask, SIGUSR1 );
+ assert( !status );
+
+ printf( "Task_3: sigwaitinfo SIGUSR1 with value= %d\n", value.sival_int );
+ status = sigwaitinfo( &mask, &info );
+
+ /* switch to Init */
+
+ assert( !(status==-1) );
+ printf(
+ "Task_3: si_signo= %d si_code= %d value= %d\n",
+ info.si_signo,
+ info.si_code,
+ info.si_value.sival_int
+ );
+
+ /* catch signal with sigwait */
+
+ empty_line();
+
+ status = sigemptyset( &mask );
+ assert( !status );
+
+ status = sigaddset( &mask, SIGUSR1 );
+ assert( !status );
+
+ printf( "Task_3: sigwait SIGUSR1\n" );
+ status = sigwait( &mask, &sig );
+
+ /* switch to Init */
+
+ assert( !status );
+ printf( "Task_3: signo= %d\n", sig );
+
+ /* catch signal with pause */
+
+ empty_line();
+
+ status = sigemptyset( &mask );
+ assert( !status );
+
+ status = sigaddset( &mask, SIGUSR1 );
+ assert( !status );
+
+ printf( "Task_3: pause\n" );
+ status = pause( );
+
+ /* switch to Init */
+
+ assert( !(status==-1) );
+ printf( "Task_3: pause= %d\n", status );
+
+
+ /* send signal to Init task before it has pended for a signal */
+
+ empty_line();
+
+ printf( "Task_3: sending SIGUSR2\n" );
+ status = pthread_kill( Init_id, SIGUSR2 );
+ assert( !status );
+
+ printf( "Task_3: sleep so the Init task can reguest a signal\n" );
+ status = sleep( 1 );
+ assert( !status );
+
+ /* end of task 3 */
+ printf( "Task_3: exit\n" );
+ pthread_exit( NULL );
+
+ /* switch to Init */
+
+ return NULL; /* just so the compiler thinks we returned something */
+}