summaryrefslogtreecommitdiffstats
path: root/testsuites/smptests
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2017-07-07 08:30:20 +0200
committerSebastian Huber <sebastian.huber@embedded-brains.de>2017-07-10 07:49:40 +0200
commit4a1bdd3045fa00c95924deb27bc0ffab7e8aaf14 (patch)
tree78f8c214621f231217d44ec7732be144627d2d6a /testsuites/smptests
parentscore: Add simple affinity support to EDF SMP (diff)
downloadrtems-4a1bdd3045fa00c95924deb27bc0ffab7e8aaf14.tar.bz2
score: Fix set scheduler
Ensure that the thread processor affinity fits the new scheduler instance. Update #3059.
Diffstat (limited to 'testsuites/smptests')
-rw-r--r--testsuites/smptests/smpscheduler02/init.c16
1 files changed, 10 insertions, 6 deletions
diff --git a/testsuites/smptests/smpscheduler02/init.c b/testsuites/smptests/smpscheduler02/init.c
index a15218b368..7dd60ec4c5 100644
--- a/testsuites/smptests/smpscheduler02/init.c
+++ b/testsuites/smptests/smpscheduler02/init.c
@@ -47,7 +47,7 @@ static void task(rtems_task_argument arg)
rtems_test_assert(rtems_get_current_processor() == 1);
rtems_test_assert(sched_get_priority_min(SCHED_RR) == 1);
- rtems_test_assert(sched_get_priority_max(SCHED_RR) == 126);
+ rtems_test_assert(sched_get_priority_max(SCHED_RR) == INT_MAX - 1);
sc = rtems_semaphore_obtain(cmtx_id, RTEMS_WAIT, RTEMS_NO_TIMEOUT);
rtems_test_assert(sc == RTEMS_NOT_DEFINED);
@@ -345,12 +345,15 @@ static void test(void)
rtems_test_assert(sc == RTEMS_SUCCESSFUL);
rtems_test_assert(scheduler_id == scheduler_b_id);
- sc = rtems_task_set_affinity(task_id, sizeof(second_cpu), &second_cpu);
- rtems_test_assert(sc == RTEMS_INVALID_NUMBER);
-
sc = rtems_task_set_affinity(task_id, sizeof(online_cpus), &online_cpus);
rtems_test_assert(sc == RTEMS_SUCCESSFUL);
+ sc = rtems_task_set_affinity(task_id, sizeof(second_cpu), &second_cpu);
+ rtems_test_assert(sc == RTEMS_SUCCESSFUL);
+
+ sc = rtems_task_set_scheduler(task_id, scheduler_a_id, 1);
+ rtems_test_assert(sc == RTEMS_UNSATISFIED);
+
sc = rtems_task_get_scheduler(task_id, &scheduler_id);
rtems_test_assert(sc == RTEMS_SUCCESSFUL);
rtems_test_assert(scheduler_id == scheduler_b_id);
@@ -415,6 +418,7 @@ static void Init(rtems_task_argument arg)
/* Lets see when the first RTEMS system hits this limit */
#define CONFIGURE_MAXIMUM_PROCESSORS 64
+#define CONFIGURE_SCHEDULER_EDF_SMP
#define CONFIGURE_SCHEDULER_PRIORITY_SMP
#define CONFIGURE_SCHEDULER_SIMPLE_SMP
@@ -422,13 +426,13 @@ static void Init(rtems_task_argument arg)
RTEMS_SCHEDULER_CONTEXT_PRIORITY_SMP(a, 256);
-RTEMS_SCHEDULER_CONTEXT_PRIORITY_SMP(b, 128);
+RTEMS_SCHEDULER_CONTEXT_EDF_SMP(b, CONFIGURE_MAXIMUM_PROCESSORS);
RTEMS_SCHEDULER_CONTEXT_SIMPLE_SMP(c);
#define CONFIGURE_SCHEDULER_CONTROLS \
RTEMS_SCHEDULER_CONTROL_PRIORITY_SMP(a, SCHED_A), \
- RTEMS_SCHEDULER_CONTROL_PRIORITY_SMP(b, SCHED_B), \
+ RTEMS_SCHEDULER_CONTROL_EDF_SMP(b, SCHED_B), \
RTEMS_SCHEDULER_CONTROL_SIMPLE_SMP(c, SCHED_C)
#define CONFIGURE_SMP_SCHEDULER_ASSIGNMENTS \