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/psxgetattrnp01/init.c | |
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/psxgetattrnp01/init.c')
-rw-r--r-- | testsuites/psxtests/psxgetattrnp01/init.c | 33 |
1 files changed, 33 insertions, 0 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 */ } |