added test cases for EINVAL cases in pthread_mutexattr_destroy

This commit is contained in:
Joel Sherrill
1996-08-09 19:55:04 +00:00
parent c03aeaffbe
commit 13adea03e0
2 changed files with 42 additions and 2 deletions

View File

@@ -77,6 +77,7 @@ void *POSIX_Init(
{ {
int status; int status;
pthread_mutexattr_t attr; pthread_mutexattr_t attr;
pthread_mutexattr_t destroyed_attr;
struct timespec times; struct timespec times;
struct sched_param param; struct sched_param param;
int policy; int policy;
@@ -94,7 +95,7 @@ void *POSIX_Init(
Init_id = pthread_self(); Init_id = pthread_self();
printf( "Init's ID is 0x%08x\n", Init_id ); printf( "Init's ID is 0x%08x\n", Init_id );
/* basic checkout of mutex attributes */ /* tes pthread_mutex_attr_init */
puts( "Init: pthread_mutexattr_init - EINVAL (NULL attr)" ); puts( "Init: pthread_mutexattr_init - EINVAL (NULL attr)" );
status = pthread_mutexattr_init( NULL ); status = pthread_mutexattr_init( NULL );
@@ -106,6 +107,25 @@ void *POSIX_Init(
Print_mutexattr( "Init: ", &attr ); Print_mutexattr( "Init: ", &attr );
/* create an "uninitialized" attribute structure */
status = pthread_mutexattr_init( &destroyed_attr );
assert( !status );
puts( "Init: pthread_mutexattr_destroy - SUCCESSFUL" );
status = pthread_mutexattr_destroy( &destroyed_attr );
assert( !status );
puts( "Init: pthread_mutexattr_destroy - EINVAL (NULL attr)" );
status = pthread_mutexattr_destroy( NULL );
assert( status == EINVAL );
puts( "Init: pthread_mutexattr_destroy - EINVAL (not initialized)" );
status = pthread_mutexattr_destroy( &destroyed_attr );
assert( status == EINVAL );
/* change the attributes structure */
puts( "Init: Changing mutex attributes" ); puts( "Init: Changing mutex attributes" );
status = pthread_mutexattr_setprotocol( &attr, PTHREAD_PRIO_INHERIT ); status = pthread_mutexattr_setprotocol( &attr, PTHREAD_PRIO_INHERIT );
assert( !status ); assert( !status );

View File

@@ -77,6 +77,7 @@ void *POSIX_Init(
{ {
int status; int status;
pthread_mutexattr_t attr; pthread_mutexattr_t attr;
pthread_mutexattr_t destroyed_attr;
struct timespec times; struct timespec times;
struct sched_param param; struct sched_param param;
int policy; int policy;
@@ -94,7 +95,7 @@ void *POSIX_Init(
Init_id = pthread_self(); Init_id = pthread_self();
printf( "Init's ID is 0x%08x\n", Init_id ); printf( "Init's ID is 0x%08x\n", Init_id );
/* basic checkout of mutex attributes */ /* tes pthread_mutex_attr_init */
puts( "Init: pthread_mutexattr_init - EINVAL (NULL attr)" ); puts( "Init: pthread_mutexattr_init - EINVAL (NULL attr)" );
status = pthread_mutexattr_init( NULL ); status = pthread_mutexattr_init( NULL );
@@ -106,6 +107,25 @@ void *POSIX_Init(
Print_mutexattr( "Init: ", &attr ); Print_mutexattr( "Init: ", &attr );
/* create an "uninitialized" attribute structure */
status = pthread_mutexattr_init( &destroyed_attr );
assert( !status );
puts( "Init: pthread_mutexattr_destroy - SUCCESSFUL" );
status = pthread_mutexattr_destroy( &destroyed_attr );
assert( !status );
puts( "Init: pthread_mutexattr_destroy - EINVAL (NULL attr)" );
status = pthread_mutexattr_destroy( NULL );
assert( status == EINVAL );
puts( "Init: pthread_mutexattr_destroy - EINVAL (not initialized)" );
status = pthread_mutexattr_destroy( &destroyed_attr );
assert( status == EINVAL );
/* change the attributes structure */
puts( "Init: Changing mutex attributes" ); puts( "Init: Changing mutex attributes" );
status = pthread_mutexattr_setprotocol( &attr, PTHREAD_PRIO_INHERIT ); status = pthread_mutexattr_setprotocol( &attr, PTHREAD_PRIO_INHERIT );
assert( !status ); assert( !status );