summaryrefslogtreecommitdiffstats
path: root/testsuites
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
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')
-rw-r--r--testsuites/psxtests/psxgetattrnp01/init.c33
-rw-r--r--testsuites/psxtests/psxgetattrnp01/psxgetattrnp01.scn9
-rw-r--r--testsuites/smptests/smppsxaffinity01/init.c53
-rw-r--r--testsuites/smptests/smppsxaffinity01/smppsxaffinity01.scn16
4 files changed, 78 insertions, 33 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 ***
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 ***