summaryrefslogtreecommitdiffstats
path: root/testsuites
diff options
context:
space:
mode:
Diffstat (limited to 'testsuites')
-rw-r--r--testsuites/sptests/sp08/init.c23
-rw-r--r--testsuites/sptests/sp37/init.c10
2 files changed, 29 insertions, 4 deletions
diff --git a/testsuites/sptests/sp08/init.c b/testsuites/sptests/sp08/init.c
index 98a7fccdcf..2ed585ddd7 100644
--- a/testsuites/sptests/sp08/init.c
+++ b/testsuites/sptests/sp08/init.c
@@ -175,7 +175,7 @@ rtems_task Init(
/* END OF RTEMS_PREEMPT */
/* BEGINNING OF RTEMS_INTERRUPT_LEVEL */
-#if !defined(RTEMS_SMP)
+#if CPU_ENABLE_ROBUST_THREAD_DISPATCH == FALSE
status = rtems_task_mode(
RTEMS_INTERRUPT_LEVEL(3),
RTEMS_INTERRUPT_MASK,
@@ -197,13 +197,25 @@ rtems_task Init(
"TA1 - rtems_task_mode - RTEMS_INTERRUPT_LEVEL( 5 ) - previous mode: ",
previous_mode
);
+#else
+ status = rtems_task_mode(
+ RTEMS_INTERRUPT_LEVEL( 1 ),
+ RTEMS_INTERRUPT_MASK,
+ &previous_mode
+ );
+ fatal_directive_status( status, RTEMS_NOT_IMPLEMENTED, "rtems_task_mode" );
#endif
/* END OF RTEMS_INTERRUPT_LEVEL */
/* BEGINNING OF COMBINATIONS */
status = rtems_task_mode(
- RTEMS_INTERRUPT_LEVEL(3) | RTEMS_NO_ASR |
+#if CPU_ENABLE_ROBUST_THREAD_DISPATCH == TRUE
+ RTEMS_INTERRUPT_LEVEL(0) |
+#else
+ RTEMS_INTERRUPT_LEVEL(3) |
+#endif
+ RTEMS_NO_ASR |
RTEMS_TIMESLICE | RTEMS_NO_PREEMPT,
RTEMS_INTERRUPT_MASK | RTEMS_ASR_MASK |
RTEMS_TIMESLICE_MASK | RTEMS_PREEMPT_MASK,
@@ -216,7 +228,12 @@ rtems_task Init(
);
status = rtems_task_mode(
- RTEMS_INTERRUPT_LEVEL(3) | RTEMS_NO_ASR |
+#if CPU_ENABLE_ROBUST_THREAD_DISPATCH == TRUE
+ RTEMS_INTERRUPT_LEVEL(0) |
+#else
+ RTEMS_INTERRUPT_LEVEL(3) |
+#endif
+ RTEMS_NO_ASR |
RTEMS_TIMESLICE | RTEMS_NO_PREEMPT,
RTEMS_INTERRUPT_MASK | RTEMS_ASR_MASK |
RTEMS_TIMESLICE_MASK | RTEMS_PREEMPT_MASK,
diff --git a/testsuites/sptests/sp37/init.c b/testsuites/sptests/sp37/init.c
index dc4867c55c..b050d7f7d1 100644
--- a/testsuites/sptests/sp37/init.c
+++ b/testsuites/sptests/sp37/init.c
@@ -76,11 +76,19 @@ static void test_isr_level_for_new_threads( ISR_Level last_proper_level )
};
for ( current = 0 ; current <= mask ; ++current ) {
- rtems_mode initial_modes = RTEMS_INTERRUPT_LEVEL(current);
+ rtems_mode initial_modes;
rtems_id id;
rtems_status_code sc;
rtems_event_set events;
+ initial_modes = RTEMS_INTERRUPT_LEVEL(current);
+
+#if CPU_ENABLE_ROBUST_THREAD_DISPATCH == TRUE
+ if ( initial_modes != 0 ) {
+ break;
+ }
+#endif
+
ctx.actual_level = 0xffffffff;
sc = rtems_task_create(