diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2017-10-06 10:07:38 +0200 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2017-10-09 14:52:58 +0200 |
commit | af9115f35cfb3d0adeb3e105fd608883596f2637 (patch) | |
tree | d6638dc66e87ad1736f7675f79e7e6d116e5c463 /testsuites/psxtests | |
parent | score: Change Timestamp_Control to sbintime_t (diff) | |
download | rtems-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.c | 33 | ||||
-rw-r--r-- | testsuites/psxtests/psxgetattrnp01/psxgetattrnp01.scn | 9 |
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 *** |