diff options
Diffstat (limited to 'testsuites/smptests')
-rw-r--r-- | testsuites/smptests/smpthreadlife01/init.c | 32 |
1 files changed, 19 insertions, 13 deletions
diff --git a/testsuites/smptests/smpthreadlife01/init.c b/testsuites/smptests/smpthreadlife01/init.c index 2867be75c5..8b9079ca8f 100644 --- a/testsuites/smptests/smpthreadlife01/init.c +++ b/testsuites/smptests/smpthreadlife01/init.c @@ -265,10 +265,6 @@ static void delay_switch_task(rtems_task_argument arg) { test_context *ctx = &test_instance; rtems_status_code sc; - ISR_Level level; - - _ISR_Local_disable(level); - (void) level; ctx->delay_switch_for_executing = _Thread_Get_executing(); @@ -331,34 +327,42 @@ typedef enum { static void op_begin_suspend(void) { - rtems_task_suspend(RTEMS_SELF); - rtems_test_assert(0); + rtems_status_code sc; + + sc = rtems_task_suspend(RTEMS_SELF); + rtems_test_assert(sc == RTEMS_SUCCESSFUL); } static void op_begin_event(void) { + rtems_status_code sc; rtems_event_set events; - rtems_event_receive( + events = 0; + sc = rtems_event_receive( RTEMS_EVENT_0, RTEMS_EVENT_ALL | RTEMS_WAIT, RTEMS_NO_TIMEOUT, &events ); - rtems_test_assert(0); + rtems_test_assert(sc == RTEMS_SUCCESSFUL); + rtems_test_assert(events == RTEMS_EVENT_0); } static void op_begin_event_system(void) { + rtems_status_code sc; rtems_event_set events; - rtems_event_system_receive( + events = 0; + sc = rtems_event_system_receive( RTEMS_EVENT_0, RTEMS_EVENT_ALL | RTEMS_WAIT, RTEMS_NO_TIMEOUT, &events ); - rtems_test_assert(0); + rtems_test_assert(sc == RTEMS_SUCCESSFUL); + rtems_test_assert(events == RTEMS_EVENT_0); } static void (*const test_ops_begin[])(void) = { @@ -401,10 +405,9 @@ static void op_worker_task(rtems_task_argument arg) { test_context *ctx = &test_instance; test_op op = arg; - ISR_Level level; + Thread_Life_state previous_life_state; - _ISR_Local_disable(level); - (void) level; + previous_life_state = _Thread_Set_life_protection(THREAD_LIFE_PROTECTED); /* (E) */ barrier(ctx, &ctx->worker_barrier_state); @@ -413,6 +416,9 @@ static void op_worker_task(rtems_task_argument arg) barrier(ctx, &ctx->worker_barrier_state); (*test_ops_begin[op])(); + + _Thread_Set_life_protection(previous_life_state); + rtems_test_assert(0); } static void help_task(rtems_task_argument arg) |