summaryrefslogtreecommitdiffstats
path: root/testsuites/psxtests
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2017-10-06 10:07:38 +0200
committerSebastian Huber <sebastian.huber@embedded-brains.de>2017-10-09 14:52:58 +0200
commitaf9115f35cfb3d0adeb3e105fd608883596f2637 (patch)
treed6638dc66e87ad1736f7675f79e7e6d116e5c463 /testsuites/psxtests
parentscore: Change Timestamp_Control to sbintime_t (diff)
downloadrtems-af9115f35cfb3d0adeb3e105fd608883596f2637.tar.bz2
posix: Simplify POSIX_API_Control
Return stack area via pthread_getattr_np(). Simplify * pthread_attr_setaffinity_np(), and * pthread_attr_getaffinity_np() and let the scheduler do the more sophisticated error checks. Make * pthread_setaffinity_np(), * pthread_getaffinity_np(), * pthread_attr_setaffinity_np(), and * pthread_attr_getaffinity_np() available in all configurations. Update #2514. Close #3145. Close #3168.
Diffstat (limited to 'testsuites/psxtests')
-rw-r--r--testsuites/psxtests/psxgetattrnp01/init.c33
-rw-r--r--testsuites/psxtests/psxgetattrnp01/psxgetattrnp01.scn9
2 files changed, 40 insertions, 2 deletions
diff --git a/testsuites/psxtests/psxgetattrnp01/init.c b/testsuites/psxtests/psxgetattrnp01/init.c
index df3e33541d..190e4f498e 100644
--- a/testsuites/psxtests/psxgetattrnp01/init.c
+++ b/testsuites/psxtests/psxgetattrnp01/init.c
@@ -41,6 +41,9 @@ void *Thread_1(
struct sched_param param;
int sc;
int value;
+ void *stackaddr;
+ size_t stacksize;
+ cpu_set_t set;
puts("Thread - pthread_getattr_np - Verify value");
sc = pthread_getattr_np( Thread_id, &attr );
@@ -61,6 +64,24 @@ void *Thread_1(
sc = pthread_getattr_np( Thread_id, &attr );
rtems_test_assert( !sc );
+ puts("Thread - Verify get stack");
+ stackaddr = NULL;
+ stacksize = 0;
+ sc = pthread_attr_getstack( &attr, &stackaddr, &stacksize );
+ rtems_test_assert( sc == 0 );
+ rtems_test_assert( stackaddr != NULL );
+ rtems_test_assert( stacksize != 0 );
+
+ puts("Thread - Verify contention scope");
+ sc = pthread_attr_getscope( &attr, &value );
+ rtems_test_assert( sc == 0 );
+ rtems_test_assert( value == PTHREAD_SCOPE_PROCESS );
+
+ puts("Thread - Verify explicit scheduler");
+ sc = pthread_attr_getinheritsched( &attr, &value );
+ rtems_test_assert( sc == 0 );
+ rtems_test_assert( value == PTHREAD_EXPLICIT_SCHED );
+
puts("Thread - Verify SCHED_FIFO policy");
sc = pthread_attr_getschedpolicy( &attr, &value );
rtems_test_assert( !sc );
@@ -73,8 +94,20 @@ void *Thread_1(
puts("Thread - Verify detached");
sc = pthread_attr_getdetachstate( &attr, &value );
+ rtems_test_assert( sc == 0 );
rtems_test_assert( value == PTHREAD_CREATE_DETACHED );
+ puts("Thread - Verify affinity");
+ CPU_ZERO( &set );
+ sc = pthread_attr_getaffinity_np( &attr, sizeof( set ), &set );
+ rtems_test_assert( sc == 0 );
+ rtems_test_assert( CPU_ISSET( 0, &set ) );
+ rtems_test_assert( !CPU_ISSET( 1, &set ) );
+
+ puts("Thread - Destroy");
+ sc = pthread_attr_destroy( &attr );
+ rtems_test_assert( sc == 0 );
+
return NULL; /* just so the compiler thinks we returned something */
}
diff --git a/testsuites/psxtests/psxgetattrnp01/psxgetattrnp01.scn b/testsuites/psxtests/psxgetattrnp01/psxgetattrnp01.scn
index a3572e048c..ab09630f75 100644
--- a/testsuites/psxtests/psxgetattrnp01/psxgetattrnp01.scn
+++ b/testsuites/psxtests/psxgetattrnp01/psxgetattrnp01.scn
@@ -1,4 +1,4 @@
-*** POSIX ATTRIBUTE TEST 1 ***
+*** BEGIN OF TEST PSXGETATTRNP 1 ***
Init - pthread_getattr_np - attr NULL - EINVAL
Init - pthread_getattr_np - invalid id - ESRCH
Init - pthread_attr_init
@@ -16,7 +16,12 @@ Thread - pthread_getattr_np - Verify value
Thread - pthread_setschedparam: Setting highest priority SCHED_FIFO
Thread - Detach
Thread - pthread_getattr_np
+Thread - Verify get stack
+Thread - Verify contention scope
+Thread - Verify explicit scheduler
Thread - Verify SCHED_FIFO policy
Thread - Verify max priority
Thread - Verify detached
-*** END OF POSIX ATTRIBUTE TEST 1 ***
+Thread - Verify affinity
+Thread - Destroy
+*** END OF TEST PSXGETATTRNP 1 ***