summaryrefslogtreecommitdiffstats
path: root/testsuites/psxtests/psx04/init.c
diff options
context:
space:
mode:
Diffstat (limited to 'testsuites/psxtests/psx04/init.c')
-rw-r--r--testsuites/psxtests/psx04/init.c188
1 files changed, 0 insertions, 188 deletions
diff --git a/testsuites/psxtests/psx04/init.c b/testsuites/psxtests/psx04/init.c
deleted file mode 100644
index 1db88461df..0000000000
--- a/testsuites/psxtests/psx04/init.c
+++ /dev/null
@@ -1,188 +0,0 @@
-/*
- * 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$
- */
-
-#define CONFIGURE_INIT
-#include "system.h"
-#include <signal.h>
-
-volatile int Signal_occurred;
-volatile int Signal_count;
-
-void Signal_handler(
- int signo
-)
-{
- Signal_count++;
- printf(
- "Signal: %d caught by 0x%x (%d)\n",
- signo,
- pthread_self(),
- Signal_count
- );
- Signal_occurred = 1;
-}
-
-void *POSIX_Init(
- void *argument
-)
-{
- int status;
- struct sigaction act;
- sigset_t mask;
- sigset_t pending_set;
-
- puts( "\n\n*** POSIX TEST 4 ***" );
-
- /* set the time of day, and print our buffer in multiple ways */
-
- set_time( TM_FRIDAY, TM_MAY, 24, 96, 11, 5, 0 );
-
- /* get id of this thread */
-
- Init_id = pthread_self();
- printf( "Init's ID is 0x%08x\n", Init_id );
-
- /* install a signal handler for SIGUSR1 */
-
- status = sigemptyset( &act.sa_mask );
- assert( !status );
-
- act.sa_handler = Signal_handler;
- act.sa_flags = 0;
-
- sigaction( SIGUSR1, &act, NULL );
-
- /* simple signal to process */
-
- Signal_count = 0;
- Signal_occurred = 0;
-
- printf( "Init: send SIGUSR1 to process\n" );
- status = kill( getpid(), SIGUSR1 );
- assert( !status );
-
- Signal_occurred = 0;
-
- /* now block the signal, send it, see if it is pending, and unblock it */
-
- empty_line();
-
- status = sigemptyset( &mask );
- assert( !status );
-
- status = sigaddset( &mask, SIGUSR1 );
- assert( !status );
-
- printf( "Init: Block SIGUSR1\n" );
- status = sigprocmask( SIG_BLOCK, &mask, NULL );
- assert( !status );
-
- status = sigpending( &pending_set );
- assert( !status );
- printf( "Init: Signals pending 0x%08x\n", pending_set );
-
- printf( "Init: send SIGUSR1 to process\n" );
- status = kill( getpid(), SIGUSR1 );
- assert( !status );
-
- status = sigpending( &pending_set );
- assert( !status );
- printf( "Init: Signals pending 0x%08x\n", pending_set );
-
- printf( "Init: Unblock SIGUSR1\n" );
- status = sigprocmask( SIG_UNBLOCK, &mask, NULL );
- assert( !status );
-
- /* now let another task get interrupted by a signal */
-
- empty_line();
-
- printf( "Init: create a thread interested in SIGUSR1\n" );
- status = pthread_create( &Task_id, NULL, Task_1_through_3, NULL );
- assert( !status );
-
- printf( "Init: Block SIGUSR1\n" );
- status = sigprocmask( SIG_BLOCK, &mask, NULL );
- assert( !status );
-
- status = sigpending( &pending_set );
- assert( !status );
- printf( "Init: Signals pending 0x%08x\n", pending_set );
-
- printf( "Init: sleep so the other task can block\n" );
- status = sleep( 1 );
- assert( !status );
-
- /* switch to task 1 */
-
- printf( "Init: send SIGUSR1 to process\n" );
- status = kill( getpid(), SIGUSR1 );
- assert( !status );
-
- status = sigpending( &pending_set );
- assert( !status );
- printf( "Init: Signals pending 0x%08x\n", pending_set );
-
- printf( "Init: sleep so the other task can catch signal\n" );
- status = sleep( 1 );
- assert( !status );
-
- /* switch to task 1 */
-
- /* test alarm */
-
- empty_line();
-
- /* install a signal handler for SIGALRM and unblock it */
-
- status = sigemptyset( &act.sa_mask );
- assert( !status );
-
- act.sa_handler = Signal_handler;
- act.sa_flags = 0;
-
- sigaction( SIGALRM, &act, NULL );
-
- status = sigemptyset( &mask );
- assert( !status );
-
- status = sigaddset( &mask, SIGALRM );
- assert( !status );
-
- printf( "Init: Unblock SIGALRM\n" );
- status = sigprocmask( SIG_UNBLOCK, &mask, NULL );
- assert( !status );
-
- /* schedule the alarm */
-
- printf( "Init: Firing alarm in 5 seconds\n" );
- status = alarm( 5 );
- printf( "Init: %d seconds left on previous alarm\n", status );
- assert( !status );
-
- printf( "Init: Firing alarm in 2 seconds\n" );
- status = alarm( 2 );
- printf( "Init: %d seconds left on previous alarm\n", status );
- assert( status );
-
- printf( "Init: Wait 4 seconds for alarm\n" );
- status = sleep( 4 );
- printf( "Init: %d seconds left in sleep\n", status );
- assert( status );
-
- /* exit this thread */
-
- puts( "*** END OF POSIX TEST 4 ***" );
- exit( 0 );
-
- return NULL; /* just so the compiler thinks we returned something */
-}