added test case for timeout using pthread_mutex_timedlock

This commit is contained in:
Joel Sherrill
1996-07-04 17:38:55 +00:00
parent c6d15c2c26
commit ce78b89451
4 changed files with 38 additions and 0 deletions

View File

@@ -77,6 +77,7 @@ void *POSIX_Init(
{
int status;
pthread_mutexattr_t attr;
struct timespec times;
puts( "\n\n*** POSIX TEST 5 ***" );
@@ -164,6 +165,18 @@ void *POSIX_Init(
printf( "status = %d\n", status );
assert( status == EPERM );
times.tv_sec = 0;
times.tv_nsec = 500000000;
printf( "Init: pthread_mutex_timedlock time out in 1/2 second\n" );
status = pthread_mutex_timedlock( &Mutex_id, &times );
if ( status != EAGAIN )
printf( "status = %d\n", status );
assert( status == EAGAIN );
/* switch to idle */
printf( "Init: correctly timed out waiting for mutex\n" );
puts( "*** END OF POSIX TEST 5 ***" );
exit( 0 );

View File

@@ -40,8 +40,14 @@ void *Task_1_through_3(
printf( "status = %d\n", status );
assert( !status );
/* switch to init */
printf( "Task: mutex acquired\n" );
printf( "Task: sleep for 2 seconds\n" );
sleep( 2 );
/* switch to init */
printf( "Task: exit\n" );
pthread_exit( NULL );

View File

@@ -77,6 +77,7 @@ void *POSIX_Init(
{
int status;
pthread_mutexattr_t attr;
struct timespec times;
puts( "\n\n*** POSIX TEST 5 ***" );
@@ -164,6 +165,18 @@ void *POSIX_Init(
printf( "status = %d\n", status );
assert( status == EPERM );
times.tv_sec = 0;
times.tv_nsec = 500000000;
printf( "Init: pthread_mutex_timedlock time out in 1/2 second\n" );
status = pthread_mutex_timedlock( &Mutex_id, &times );
if ( status != EAGAIN )
printf( "status = %d\n", status );
assert( status == EAGAIN );
/* switch to idle */
printf( "Init: correctly timed out waiting for mutex\n" );
puts( "*** END OF POSIX TEST 5 ***" );
exit( 0 );

View File

@@ -40,8 +40,14 @@ void *Task_1_through_3(
printf( "status = %d\n", status );
assert( !status );
/* switch to init */
printf( "Task: mutex acquired\n" );
printf( "Task: sleep for 2 seconds\n" );
sleep( 2 );
/* switch to init */
printf( "Task: exit\n" );
pthread_exit( NULL );