From af9115f35cfb3d0adeb3e105fd608883596f2637 Mon Sep 17 00:00:00 2001 From: Sebastian Huber Date: Fri, 6 Oct 2017 10:07:38 +0200 Subject: 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. --- testsuites/psxtests/psxgetattrnp01/init.c | 33 ++++++++++++++++++++++ .../psxtests/psxgetattrnp01/psxgetattrnp01.scn | 9 ++++-- 2 files changed, 40 insertions(+), 2 deletions(-) (limited to 'testsuites/psxtests') 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 *** -- cgit v1.2.3