summaryrefslogtreecommitdiffstats
path: root/testsuites
diff options
context:
space:
mode:
Diffstat (limited to 'testsuites')
-rw-r--r--testsuites/psxtests/psxgetattrnp01/init.c68
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;