diff options
Diffstat (limited to 'testsuites/psxtests/psx10')
-rw-r--r-- | testsuites/psxtests/psx10/init.c | 312 | ||||
-rw-r--r-- | testsuites/psxtests/psx10/psx10.scn | 60 | ||||
-rw-r--r-- | testsuites/psxtests/psx10/system.h | 69 | ||||
-rw-r--r-- | testsuites/psxtests/psx10/task.c | 65 | ||||
-rw-r--r-- | testsuites/psxtests/psx10/task2.c | 47 | ||||
-rw-r--r-- | testsuites/psxtests/psx10/task3.c | 46 |
6 files changed, 0 insertions, 599 deletions
diff --git a/testsuites/psxtests/psx10/init.c b/testsuites/psxtests/psx10/init.c deleted file mode 100644 index b4461d5abe..0000000000 --- a/testsuites/psxtests/psx10/init.c +++ /dev/null @@ -1,312 +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 <sched.h> - - -void *POSIX_Init( - void *argument -) -{ - int status; - pthread_condattr_t attr; - pthread_condattr_t attr_error; - int pshared; - pthread_cond_t cond; - struct timespec timeout; - - puts( "\n\n*** POSIX TEST 10 ***" ); - - puts( "Init: pthread_condattr_init" ); - status = pthread_condattr_init( &attr ); - assert( !status ); - - puts( "Init: pthread_condattr_init - EINVAL (attribute invalid)" ); - status = pthread_condattr_init( NULL ); - if ( status != EINVAL ) - printf( "status = %d\n", status ); - assert( status == EINVAL ); - - puts( "Init: pthread_condattr_destroy" ); - status = pthread_condattr_destroy( &attr ); - assert( !status ); - - puts( "Init: pthread_condattr_destroy - EINVAL (attribute invalid)" ); - status = pthread_condattr_destroy( NULL ); - if ( status != EINVAL ) - printf( "status = %d\n", status ); - assert( status == EINVAL ); - - puts( "Init: pthread_condattr_init" ); - status = pthread_condattr_init( &attr ); - assert( !status ); - - puts( "Init: pthread_condattr_setpshared - PTHREAD_PROCESS_SHARED" ); - status = pthread_condattr_setpshared( &attr, PTHREAD_PROCESS_SHARED ); - assert( !status ); - - puts( "Init: pthread_condattr_setpshared - PTHREAD_PROCESS_PRIVATE" ); - status = pthread_condattr_setpshared( &attr, PTHREAD_PROCESS_PRIVATE ); - assert( !status ); - - status = pthread_condattr_setpshared( NULL, PTHREAD_PROCESS_PRIVATE ); - if ( status != EINVAL ) - printf( "status = %d\n", status ); - assert( status == EINVAL ); - puts( "Init: pthread_condattr_setpshared - EINVAL (attribute invalid)" ); - - status = pthread_condattr_setpshared( &attr, 0xFFFFFF ); - if ( status != EINVAL ) - printf( "status = %d\n", status ); - assert( status == EINVAL ); - puts( "Init: pthread_condattr_setpshared - EINVAL (pshared invalid)" ); - - status = pthread_condattr_getpshared( &attr, &pshared ); - assert( !status ); - printf( "Init: pthread_condattr_getpshared - %d\n", pshared ); - - status = pthread_condattr_getpshared( NULL, &pshared ); - if ( status != EINVAL ) - printf( "status = %d\n", status ); - assert( status == EINVAL ); - puts( "Init: pthread_condattr_getpshared - EINVAL (attribute invalid)" ); - - puts( "Init: pthread_cond_init - NULL attr" ); - status = pthread_cond_init( &cond, NULL ); - assert( !status ); - -/* error for attribute not initialized */ - - attr_error.is_initialized = FALSE; - status = pthread_cond_init( &cond, &attr_error ); - if ( status != EINVAL ) - printf( "status = %d\n", status ); - assert( status == EINVAL ); - puts( "Init: pthread_cond_init - EINVAL (attr not initialized)" ); - - status = pthread_cond_init( &cond, NULL ); - if ( status != ENOMEM ) - printf( "status = %d\n", status ); - assert( status == ENOMEM ); - puts( "Init: pthread_cond_init - ENOMEM (too many conds)" ); - - puts( "Init: pthread_cond_destroy" ); - status = pthread_cond_destroy( &cond ); - assert( !status ); - -/* error for bad condition variable passed */ - - status = pthread_cond_destroy( NULL ); - if ( status != EINVAL ) - printf( "status = %d\n", status ); - assert( status == EINVAL ); - puts( "Init: pthread_cond_destroy - EINVAL (cond invalid)" ); - -/* initiailize the attribute for the rest of the test */ - - puts( "Init: pthread_cond_init - attr" ); - status = pthread_cond_init( &Cond1_id, &attr ); - assert( !status ); - -/* signal task1 with a condition variable */ - - empty_line(); - - status = pthread_create( &Task_id, NULL, Task_1, NULL ); - assert( !status ); - -/* switch to task1 to allow it to wait for a condition variable */ - - puts( "Init: sleep to switch to Task_1" ); - sleep( 1 ); - - status = pthread_cond_destroy( &Cond1_id ); - if ( status != EBUSY ) - printf( "status = %d\n", status ); - assert( status == EBUSY ); - puts( "Init: pthread_cond_destroy - EBUSY (task1 waiting)" ); - - puts( "Init: pthread_cond_signal" ); - status = pthread_cond_signal( &Cond1_id ); - assert( !status ); - - empty_line(); - - status = pthread_create( &Task2_id, NULL, Task_2, NULL ); - assert( !status ); - -/* switch to task1 and task2 to allow them to wait for broadcast signal */ - - puts( "Init: sleep - switch to Task_1 and Task_2" ); - sleep( 1 ); - -/* broadcast a condition variable to task1 and task2 */ - - puts( "Init: pthread_cond_broadcast" ); - status = pthread_cond_broadcast( &Cond1_id ); - assert( !status ); - - puts( "Init: sleep - switch to Task_1" ); - sleep( 0 ); - -/* timedwait case - timeout */ - - status = pthread_mutex_lock( &Mutex_id ); - assert( !status ); - -/* set timeout to 3 seconds */ - - status = clock_gettime( CLOCK_REALTIME, &timeout ); - assert( !status ); - timeout.tv_sec += 3; - timeout.tv_nsec = 0; - - puts( "Init: pthread_cond_timedwait for 3 seconds" ); - status = pthread_cond_timedwait( &Cond1_id, &Mutex_id, &timeout ); - if ( status != ETIMEDOUT ) - printf( "status = %d\n", status ); - assert( status == ETIMEDOUT ); - puts( "Init: pthread_cond_timedwait - ETIMEDOUT - (mutex not acquired)" ); - - status = pthread_mutex_unlock( &Mutex_id ); - assert( !status ); - -/* remaining error messages */ - - empty_line(); - -/* errors for bad variable passed */ - - status = pthread_cond_signal( NULL ); - if ( status != EINVAL ) - printf( "status = %d\n", status ); - assert( status == EINVAL ); - puts( "Init: pthread_cond_signal - EINVAL (cond invalid)" ); - - status = pthread_cond_broadcast( NULL ); - if ( status != EINVAL ) - printf( "status = %d\n", status ); - assert( status == EINVAL ); - puts( "Init: pthread_cond_broadcast - EINVAL (cond invalid)" ); - -/* acquire mutex so errors will occur */ - - status = pthread_mutex_lock( &Mutex_id ); - assert( !status ); - - status = pthread_cond_wait( NULL, &Mutex_id ); - if ( status != EINVAL ) - printf( "status = %d\n", status ); - assert( status == EINVAL ); - puts( "Init: pthread_cond_wait - EINVAL (cond invalid)" ); - - status = pthread_cond_timedwait( NULL, &Mutex_id, &timeout ); - if ( status != EINVAL ) - printf( "status = %d\n", status ); - assert( status == EINVAL ); - puts( "Init: pthread_cond_timedwait - EINVAL (cond invalid)" ); - - status = pthread_cond_wait( &Cond1_id, NULL ); - if ( status != EINVAL ) - printf( "status = %d\n", status ); - assert( status == EINVAL ); - puts( "Init: pthread_cond_wait - EINVAL (mutex invalid)" ); - - status = pthread_cond_timedwait( &Cond1_id, NULL, &timeout ); - if ( status != EINVAL ) - printf( "status = %d\n", status ); - assert( status == EINVAL ); - puts( "Init: pthread_cond_timedwait - EINVAL (mutex invalid)" ); - - status = pthread_cond_timedwait( &Cond1_id, &Mutex_id, NULL ); - if ( status != EINVAL ) - printf( "status = %d\n", status ); - assert( status == EINVAL ); - puts( "Init: pthread_cond_timedwait - EINVAL (abstime NULL)" ); - - status = clock_gettime( CLOCK_REALTIME, &timeout ); - assert( !status ); - timeout.tv_sec -= 1; - status = pthread_cond_timedwait( &Cond1_id, &Mutex_id, &timeout ); - if ( status != ETIMEDOUT ) - printf( "status = %d\n", status ); - assert( status == ETIMEDOUT ); - puts( "Init: pthread_cond_timedwait - ETIMEDOUT (abstime->tv_sec < current time)" ); - status = pthread_mutex_unlock( &Mutex_id ); - assert( !status ); - - status = pthread_mutex_lock( &Mutex_id ); - assert( !status ); - status = clock_gettime( CLOCK_REALTIME, &timeout ); - assert( !status ); - timeout.tv_nsec -= 1; - status = pthread_cond_timedwait( &Cond1_id, &Mutex_id, &timeout ); - if ( status != ETIMEDOUT ) - printf( "status = %d\n", status ); - assert( status == ETIMEDOUT ); - puts( "Init: pthread_cond_timedwait - ETIMEDOUT (abstime->tv_nsec < current time)" ); - status = pthread_mutex_unlock( &Mutex_id ); - assert( !status ); - -/* wait and timedwait without mutex */ - -/* XXX - this case is commented out in the code pending review - * - * status = pthread_cond_wait( &Cond1_id, &Mutex_id ); - * if ( status != EINVAL ) - * printf( "status = %d\n", status ); - * assert( status == EINVAL ); - */ - puts( "Init: pthread_cond_wait - EINVAL (mutex not locked before call)" ); - -/* XXX - this case is commented out in the code pending review - * - * status = clock_gettime( CLOCK_REALTIME, &timeout ); - * assert( !status ); - * timeout.tv_sec += 1; - * status = pthread_cond_timedwait( &Cond1_id, &Mutex_id, &timeout ); - * if ( status != EINVAL ) - * printf( "status = %d\n", status ); - * assert( status == EINVAL ); - */ - puts( "Init: pthread_cond_timedwait - EINVAL (mutex not locked before call)"); - - empty_line(); - - status = pthread_create( &Task3_id, NULL, Task_3, NULL ); - assert( !status ); - -/* switch to task3 to allow it to wait for broadcast signal */ - - puts( "Init: sleep - switch to Task_3" ); - sleep( 1 ); - -/* destroy the mutex so Task3 can not acguire at the end of Wait_support */ - - status = pthread_mutex_destroy( &Mutex_id ); - assert( !status ); - -/* signal a condition variable to task3 */ - - puts( "Init: pthread_cond_signal" ); - status = pthread_cond_signal( &Cond1_id ); - - puts( "Init: sleep - switch to Task_3" ); - sleep( 1 ); - - puts( "*** END OF POSIX TEST 10 ***" ); - exit( 0 ); - - return NULL; /* just so the compiler thinks we returned something */ -} diff --git a/testsuites/psxtests/psx10/psx10.scn b/testsuites/psxtests/psx10/psx10.scn deleted file mode 100644 index a19b9d8c49..0000000000 --- a/testsuites/psxtests/psx10/psx10.scn +++ /dev/null @@ -1,60 +0,0 @@ -*** POSIX TEST 10 *** -Init: pthread_condattr_init -Init: pthread_condattr_init - EINVAL (attribute invalid) -Init: pthread_condattr_destroy -Init: pthread_condattr_destroy - EINVAL (attribute invalid) -Init: pthread_condattr_init -Init: pthread_condattr_setpshared - PTHREAD_PROCESS_SHARED -Init: pthread_condattr_setpshared - PTHREAD_PROCESS_PRIVATE -Init: pthread_condattr_setpshared - EINVAL (attribute invalid) -Init: pthread_condattr_setpshared - EINVAL (pshared invalid) -Init: pthread_condattr_getpshared - 0 -Init: pthread_condattr_getpshared - EINVAL (attribute invalid) -Init: pthread_cond_init - NULL attr -Init: pthread_cond_init - EINVAL (attr not initialized) -Init: pthread_cond_init - ENOMEM (too many conds) -Init: pthread_cond_destroy -Init: pthread_cond_destroy - EINVAL (cond invalid) -Init: pthread_cond_init - attr - -Init: sleep to switch to Task_1 -Task_1: ID is 0x0c010002 -Task_1: pthread_cond_wait -Init: pthread_cond_destroy - EBUSY (task1 waiting) -Init: pthread_cond_signal - -Init: sleep - switch to Task_1 and Task_2 -Task_1: back from pthread_cond_wait release mutex -Task_1: pthread_cond_wait -Task_2: ID is 0x0c010003 -Task_2: pthread_cond_wait -Init: pthread_cond_broadcast -Init: sleep - switch to Task_1 -Task_1: back from pthread_cond_wait release mutex -Task_1: task exit -Task_2: back from pthread_cond_wait release mutex -Task_2: task exit -Init: pthread_cond_timedwait for 3 seconds -Init: pthread_cond_timedwait - ETIMEDOUT - (mutex not acquired) - -Init: pthread_cond_signal - EINVAL (cond invalid) -Init: pthread_cond_broadcast - EINVAL (cond invalid) -Init: pthread_cond_wait - EINVAL (cond invalid) -Init: pthread_cond_timedwait - EINVAL (cond invalid) -Init: pthread_cond_wait - EINVAL (mutex invalid) -Init: pthread_cond_timedwait - EINVAL (mutex invalid) -Init: pthread_cond_timedwait - EINVAL (abstime NULL) -Init: pthread_cond_timedwait - EINVAL (abstime->tv_sec invalid) -Init: pthread_cond_timedwait - EINVAL (abstime->tv_nsec invalid) -Init: pthread_cond_timedwait - EINVAL (abstime->tv_nsec to large) -Init: pthread_cond_wait - EINVAL (mutex not locked before call) -Init: pthread_cond_timedwait - EINVAL (mutex not locked before call) - -Init: sleep - switch to Task_3 -Task_3: ID is 0x0c010004 -Task_3: pthread_cond_wait -Init: pthread_cond_signal -Init: sleep - switch to Task_3 -Task_3: pthread_cond_wait - EINVAL (mutex not locked after signal) -Task_3: task exit -*** END OF POSIX TEST 10 *** diff --git a/testsuites/psxtests/psx10/system.h b/testsuites/psxtests/psx10/system.h deleted file mode 100644 index eae6660baf..0000000000 --- a/testsuites/psxtests/psx10/system.h +++ /dev/null @@ -1,69 +0,0 @@ -/* system.h - * - * This include file contains information that is included in every - * function in the test set. - * - * 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$ - */ - -/* functions */ - -#include <pmacros.h> -#include <unistd.h> -#include <errno.h> - -void *POSIX_Init( - void *argument -); - -void *Task_1( - void *argument -); - -void *Task_2( - void *argument -); - -void *Task_3( - void *argument -); - -/* configuration information */ - -#define CONFIGURE_SPTEST - -#define CONFIGURE_TEST_NEEDS_CONSOLE_DRIVER -#define CONFIGURE_TEST_NEEDS_CLOCK_DRIVER - -#define CONFIGURE_POSIX_INIT_THREAD_TABLE - -#define CONFIGURE_MAXIMUM_POSIX_CONDITION_VARIABLES 1 - -#define CONFIGURE_MAXIMUM_POSIX_MUTEXES 2 - -#include <confdefs.h> - -/* global variables */ - -#ifdef CONFIGURE_INIT -#define TEST_EXTERN -#else -#define TEST_EXTERN extern -#endif - -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_cond_t Cond1_id; -TEST_EXTERN pthread_mutex_t Mutex_id; - -/* end of include file */ diff --git a/testsuites/psxtests/psx10/task.c b/testsuites/psxtests/psx10/task.c deleted file mode 100644 index f1bef38972..0000000000 --- a/testsuites/psxtests/psx10/task.c +++ /dev/null @@ -1,65 +0,0 @@ -/* 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" - -void *Task_1( - void *argument -) -{ - int status; - -/* wait for a condition variable signal from Init */ - - Task_id = pthread_self(); - printf( "Task_1: ID is 0x%08x\n", Task_id ); - - status = pthread_mutex_init( &Mutex_id, NULL ); - assert( !status ); - - status = pthread_mutex_lock( &Mutex_id ); - assert( !status ); - - puts( "Task_1: pthread_cond_wait" ); - status = pthread_cond_wait( &Cond1_id, &Mutex_id ); - assert( !status ); - - puts( "Task_1: back from pthread_cond_wait release mutex" ); - status = pthread_mutex_unlock( &Mutex_id ); - assert( !status ); - -/* wait for a condition variable broadcast from Init */ - - status = pthread_mutex_lock( &Mutex_id ); - assert( !status ); - - puts( "Task_1: pthread_cond_wait" ); - status = pthread_cond_wait( &Cond1_id, &Mutex_id ); - assert( !status ); - - puts( "Task_1: back from pthread_cond_wait release mutex" ); - status = pthread_mutex_unlock( &Mutex_id ); - assert( !status ); - - puts( "Task_1: task exit" ); - pthread_exit( NULL ); - - return NULL; /* just so the compiler thinks we returned something */ -} diff --git a/testsuites/psxtests/psx10/task2.c b/testsuites/psxtests/psx10/task2.c deleted file mode 100644 index 1b1c03557e..0000000000 --- a/testsuites/psxtests/psx10/task2.c +++ /dev/null @@ -1,47 +0,0 @@ -/* 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" - -void *Task_2( - void *argument -) -{ - int status; - - Task_id = pthread_self(); - printf( "Task_2: ID is 0x%08x\n", Task_id ); - - status = pthread_mutex_lock( &Mutex_id ); - assert( !status ); - - puts( "Task_2: pthread_cond_wait" ); - status = pthread_cond_wait( &Cond1_id, &Mutex_id ); - assert( !status ); - - puts( "Task_2: back from pthread_cond_wait release mutex" ); - status = pthread_mutex_unlock( &Mutex_id ); - assert( !status ); - - puts( "Task_2: task exit" ); - pthread_exit( NULL ); - - return NULL; /* just so the compiler thinks we returned something */ -} diff --git a/testsuites/psxtests/psx10/task3.c b/testsuites/psxtests/psx10/task3.c deleted file mode 100644 index a2cfa63a6e..0000000000 --- a/testsuites/psxtests/psx10/task3.c +++ /dev/null @@ -1,46 +0,0 @@ -/* 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" - -void *Task_3( - void *argument -) -{ - int status; - - Task_id = pthread_self(); - printf( "Task_3: ID is 0x%08x\n", Task_id ); - - status = pthread_mutex_lock( &Mutex_id ); - assert( !status ); - - puts( "Task_3: pthread_cond_wait" ); - status = pthread_cond_wait( &Cond1_id, &Mutex_id ); - if ( status != EINVAL ) - printf( "status = %d\n", status ); - assert( status == EINVAL ); - puts( "Task_3: pthread_cond_wait - EINVAL (mutex not locked after signal)"); - - puts( "Task_3: task exit" ); - pthread_exit( NULL ); - - return NULL; /* just so the compiler thinks we returned something */ -} |