diff options
Diffstat (limited to 'testsuites/psxtests/psxgetattrnp01/init.c')
-rw-r--r-- | testsuites/psxtests/psxgetattrnp01/init.c | 68 |
1 files changed, 67 insertions, 1 deletions
diff --git a/testsuites/psxtests/psxgetattrnp01/init.c b/testsuites/psxtests/psxgetattrnp01/init.c index 190e4f498e..e5c3975255 100644 --- a/testsuites/psxtests/psxgetattrnp01/init.c +++ b/testsuites/psxtests/psxgetattrnp01/init.c @@ -33,6 +33,72 @@ pthread_t Thread_id; pthread_attr_t Thread_attr; int max_priority; +static int attribute_compare( + const pthread_attr_t *attr1, + const pthread_attr_t *attr2 +) +{ + if ( attr1->is_initialized != attr2->is_initialized ) + return 1; + + if ( + attr1->stackaddr != NULL && + attr2->stackaddr != NULL && + attr1->stackaddr != attr2->stackaddr ) + return 1; + + if ( attr1->stacksize != attr2->stacksize ) + return 1; + + if ( attr1->contentionscope != attr2->contentionscope ) + return 1; + + if ( attr1->inheritsched != attr2->inheritsched ) + return 1; + + if ( attr1->schedpolicy != attr2->schedpolicy ) + return 1; + + if (memcmp( + &attr1->schedparam, + &attr2->schedparam, + sizeof(struct sched_param) + )) + return 1; + + #if HAVE_DECL_PTHREAD_ATTR_SETGUARDSIZE + if ( attr1->guardsize != attr2->guardsize ) + return 1; + #endif + + #if defined(_POSIX_THREAD_CPUTIME) + if ( attr1->cputime_clock_allowed != attr2->cputime_clock_allowed ) + return 1; + #endif + + if ( attr1->detachstate != attr2->detachstate ) + return 1; + + if ( attr1->affinitysetsize != attr2->affinitysetsize ) + return 1; + + if (!CPU_EQUAL_S( + attr1->affinitysetsize, + attr1->affinityset, + attr2->affinityset + )) + return 1; + + if (!CPU_EQUAL_S( + attr1->affinitysetsize, + &attr1->affinitysetpreallocated, + &attr2->affinitysetpreallocated + )) + return 1; + + return 0; +} + void *Thread_1( void *argument ) @@ -48,7 +114,7 @@ void *Thread_1( puts("Thread - pthread_getattr_np - Verify value"); sc = pthread_getattr_np( Thread_id, &attr ); rtems_test_assert( sc == 0 ); - rtems_test_assert( ! rtems_pthread_attribute_compare(&attr, &Thread_attr) ); + rtems_test_assert( ! attribute_compare(&attr, &Thread_attr) ); param.sched_priority = max_priority; |