forked from Imagelibrary/rtems
added test case for timeout using pthread_mutex_timedlock
This commit is contained in:
@@ -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, × );
|
||||
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 );
|
||||
|
||||
|
||||
@@ -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 );
|
||||
|
||||
@@ -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, × );
|
||||
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 );
|
||||
|
||||
|
||||
@@ -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 );
|
||||
|
||||
Reference in New Issue
Block a user