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/smptests/smppsxaffinity01/init.c | 53 ++++++++++++---------- .../smptests/smppsxaffinity01/smppsxaffinity01.scn | 16 +++---- 2 files changed, 38 insertions(+), 31 deletions(-) (limited to 'testsuites/smptests') diff --git a/testsuites/smptests/smppsxaffinity01/init.c b/testsuites/smptests/smppsxaffinity01/init.c index c4c4f4f7c3..58e1db5435 100644 --- a/testsuites/smptests/smppsxaffinity01/init.c +++ b/testsuites/smptests/smppsxaffinity01/init.c @@ -38,21 +38,30 @@ void Validate_attrgetaffinity_errors(void) cpu_set_t cpuset; pthread_attr_t attr; + sc = pthread_attr_init( &attr ); + rtems_test_assert( sc == 0 ); + /* Verify pthread_attr_getaffinity_np validates attr */ - puts( "Init - pthread_attr_getaffinity_np - Invalid attr - EFAULT" ); - sc = pthread_attr_getaffinity_np( NULL, sizeof(cpu_set_t), &cpuset ); - rtems_test_assert( sc == EFAULT ); + puts( "Init - pthread_attr_getaffinity_np - Invalid attr - EINVAL" ); + sc = pthread_attr_getaffinity_np( NULL, sizeof( cpuset ), &cpuset ); + rtems_test_assert( sc == EINVAL ); /* Verify pthread_attr_getaffinity_np validates cpuset */ - puts( "Init - pthread_attr_getaffinity_np - Invalid attr - EFAULT" ); - sc = pthread_attr_getaffinity_np( &attr, sizeof(cpu_set_t), NULL ); - rtems_test_assert( sc == EFAULT ); + puts( "Init - pthread_attr_getaffinity_np - Invalid attr - EINVAL" ); + sc = pthread_attr_getaffinity_np( &attr, sizeof( cpuset ), NULL ); + rtems_test_assert( sc == EINVAL ); /* Verify pthread_attr_getaffinity_np validates cpusetsize */ puts( "Init - pthread_attr_getaffinity_np - Invalid cpusetsize - EINVAL" ); - sc = pthread_attr_getaffinity_np( &attr, sizeof(cpu_set_t) * 2 , &cpuset ); + sc = pthread_attr_getaffinity_np( &attr, sizeof( cpuset ) * 2 , &cpuset ); rtems_test_assert( sc == EINVAL ); + sc = pthread_attr_destroy( &attr ); + rtems_test_assert( sc == 0 ); + + puts( "Init - pthread_attr_getaffinity_np - Not initialized attr - EINVAL" ); + sc = pthread_attr_getaffinity_np( &attr, sizeof( cpuset ), &cpuset ); + rtems_test_assert( sc == EINVAL ); } void Validate_attrsetaffinity_errors(void) @@ -61,31 +70,29 @@ void Validate_attrsetaffinity_errors(void) cpu_set_t cpuset; pthread_attr_t attr; + sc = pthread_attr_init( &attr ); + rtems_test_assert( sc == 0 ); + /* Verify pthread_attr_setaffinity_np validates attr. */ - puts( "Init - pthread_attr_setaffinity_np - Invalid attr - EFAULT" ); - sc = pthread_attr_setaffinity_np( NULL, sizeof(cpu_set_t), &cpuset ); - rtems_test_assert( sc == EFAULT ); + puts( "Init - pthread_attr_setaffinity_np - Invalid attr - EINVAL" ); + sc = pthread_attr_setaffinity_np( NULL, sizeof( cpuset ), &cpuset ); + rtems_test_assert( sc == EINVAL ); /* Verify pthread_attr_setaffinity_np validates cpuset */ - puts( "Init - pthread_attr_setaffinity_np - Invalid attr - EFAULT" ); - sc = pthread_attr_setaffinity_np( &attr, sizeof(cpu_set_t), NULL ); - rtems_test_assert( sc == EFAULT ); + puts( "Init - pthread_attr_setaffinity_np - Invalid attr - EINVAL" ); + sc = pthread_attr_setaffinity_np( &attr, sizeof( cpuset ), NULL ); + rtems_test_assert( sc == EINVAL ); /* Verify pthread_attr_setaffinity_np validates cpusetsize */ puts( "Init - pthread_attr_setaffinity_np - Invalid cpusetsize - EINVAL" ); - sc = pthread_attr_setaffinity_np( &attr, sizeof(cpu_set_t) * 2 , &cpuset ); + sc = pthread_attr_setaffinity_np( &attr, sizeof( cpuset ) * 2 , &cpuset ); rtems_test_assert( sc == EINVAL ); - /* Verify pthread_attr_setaffinity_np validates cpuset greater than 0 */ - CPU_ZERO(&cpuset); - puts( "Init - pthread_attr_setaffinity_np - No cpus in cpuset - EINVAL" ); - sc = pthread_attr_setaffinity_np( &attr, sizeof(cpu_set_t) , &cpuset ); - rtems_test_assert( sc == EINVAL ); + sc = pthread_attr_destroy( &attr ); + rtems_test_assert( sc == 0 ); - /* Verify pthread_attr_setaffinity_np validates invalid cpu in cpuset */ - CPU_FILL(&cpuset); - puts( "Init - pthread_attr_setaffinity_np - Too many cpus in cpuset - EINVAL" ); - sc = pthread_attr_setaffinity_np( &attr, sizeof(cpu_set_t) , &cpuset ); + puts( "Init - pthread_attr_setaffinity_np - Not initialized attr - EINVAL" ); + sc = pthread_attr_setaffinity_np( &attr, sizeof( cpuset ), &cpuset ); rtems_test_assert( sc == EINVAL ); } diff --git a/testsuites/smptests/smppsxaffinity01/smppsxaffinity01.scn b/testsuites/smptests/smppsxaffinity01/smppsxaffinity01.scn index 70bd6d31c8..15459e0c2c 100644 --- a/testsuites/smptests/smppsxaffinity01/smppsxaffinity01.scn +++ b/testsuites/smptests/smppsxaffinity01/smppsxaffinity01.scn @@ -1,11 +1,11 @@ -*** SMP POSIX AFFINITY ATTRIBUTE TEST 1 *** -Init - pthread_attr_setaffinity_np - Invalid attr - EFAULT -Init - pthread_attr_setaffinity_np - Invalid attr - EFAULT +*** BEGIN OF TEST SMPPSXAFFINITY 1 *** +Init - pthread_attr_setaffinity_np - Invalid attr - EINVAL +Init - pthread_attr_setaffinity_np - Invalid attr - EINVAL Init - pthread_attr_setaffinity_np - Invalid cpusetsize - EINVAL -Init - pthread_attr_setaffinity_np - No cpus in cpuset - EINVAL -Init - pthread_attr_setaffinity_np - Too many cpus in cpuset - EINVAL -Init - pthread_attr_getaffinity_np - Invalid attr - EFAULT -Init - pthread_attr_getaffinity_np - Invalid attr - EFAULT +Init - pthread_attr_setaffinity_np - Not initialized attr - EINVAL +Init - pthread_attr_getaffinity_np - Invalid attr - EINVAL +Init - pthread_attr_getaffinity_np - Invalid attr - EINVAL Init - pthread_attr_getaffinity_np - Invalid cpusetsize - EINVAL +Init - pthread_attr_getaffinity_np - Not initialized attr - EINVAL Init - Validate pthread_attr_setaffinity_np and pthread_attr_getaffinity_np -*** END OF SMP POSIX AFFINITY ATTRIBUTE TEST 1 *** +*** END OF TEST SMPPSXAFFINITY 1 *** -- cgit v1.2.3