diff options
Diffstat (limited to 'spec/rtems/barrier/req/release.yml')
-rw-r--r-- | spec/rtems/barrier/req/release.yml | 73 |
1 files changed, 14 insertions, 59 deletions
diff --git a/spec/rtems/barrier/req/release.yml b/spec/rtems/barrier/req/release.yml index 7c04606a..aec50a38 100644 --- a/spec/rtems/barrier/req/release.yml +++ b/spec/rtems/barrier/req/release.yml @@ -149,37 +149,18 @@ test-header: null test-includes: - rtems.h - string.h -test-local-includes: [] +test-local-includes: +- tc-support.h test-prepare: null test-setup: brief: null code: | - rtems_status_code sc; - rtems_task_priority prio; + rtems_status_code sc; memset( ctx, 0, sizeof( *ctx ) ); - - prio = 0; - sc = rtems_task_set_priority( RTEMS_SELF, PRIO_NORMAL, &prio ); - T_rsc_success( sc ); - T_eq_u32( prio, PRIO_HIGH ); - - sc = rtems_task_create( - rtems_build_name( 'W', 'O', 'R', 'K' ), - PRIO_HIGH, - RTEMS_MINIMUM_STACK_SIZE, - RTEMS_DEFAULT_MODES, - RTEMS_DEFAULT_ATTRIBUTES, - &ctx->worker_id - ); - T_assert_rsc_success( sc ); - - sc = rtems_task_start( - ctx->worker_id, - Worker, - (rtems_task_argument) ctx - ); - T_assert_rsc_success( sc ); + SetSelfPriority( PRIO_NORMAL ); + ctx->worker_id = CreateTask( "WORK", PRIO_HIGH ); + StartTask( ctx->worker_id, Worker, ctx ); sc = rtems_barrier_create( NAME, @@ -207,19 +188,6 @@ test-support: | typedef RtemsBarrierReqRelease_Context Context; - typedef enum { - PRIO_HIGH = 1, - PRIO_NORMAL - } Priorities; - - static void SendEvents( rtems_id id, rtems_event_set events ) - { - rtems_status_code sc; - - sc = rtems_event_send( id, events ); - T_rsc_success( sc ); - } - static void Worker( rtems_task_argument arg ) { Context *ctx; @@ -227,19 +195,13 @@ test-support: | ctx = (Context *) arg; while ( true ) { - rtems_status_code sc; - rtems_event_set events; + rtems_event_set events; - events = 0; - sc = rtems_event_receive( - RTEMS_ALL_EVENTS, - RTEMS_EVENT_ANY | RTEMS_WAIT, - RTEMS_NO_TIMEOUT, - &events - ); - T_rsc_success( sc ); + events = ReceiveAnyEvents(); if ( ( events & EVENT_WAIT ) != 0 ) { + rtems_status_code sc; + sc = rtems_barrier_wait( ctx->id, RTEMS_NO_TIMEOUT ); T_rsc_success( sc ); } @@ -249,18 +211,9 @@ test-target: testsuites/validation/tc-barrier-release.c test-teardown: brief: null code: | - rtems_status_code sc; - rtems_task_priority prio; + rtems_status_code sc; - prio = 0; - sc = rtems_task_set_priority( RTEMS_SELF, PRIO_HIGH, &prio ); - T_rsc_success( sc ); - T_eq_u32( prio, PRIO_NORMAL ); - - if ( ctx->worker_id != 0 ) { - sc = rtems_task_delete( ctx->worker_id ); - T_rsc_success( sc ); - } + DeleteTask( ctx->worker_id ); if ( ctx->manual_release_id != 0 ) { sc = rtems_barrier_delete( ctx->manual_release_id ); @@ -271,6 +224,8 @@ test-teardown: sc = rtems_barrier_delete( ctx->auto_release_id ); T_rsc_success( sc ); } + + RestoreRunnerPriority(); description: null text: ${.:text-template} transition-map: |