summaryrefslogtreecommitdiffstats
path: root/spec/req/rtems/event
diff options
context:
space:
mode:
Diffstat (limited to 'spec/req/rtems/event')
-rw-r--r--spec/req/rtems/event/receive.yml15
-rw-r--r--spec/req/rtems/event/send-receive.yml1001
-rw-r--r--spec/req/rtems/event/send.yml15
-rw-r--r--spec/req/rtems/event/system-receive.yml15
-rw-r--r--spec/req/rtems/event/system-send.yml15
-rw-r--r--spec/req/rtems/event/val/event-constant.yml391
-rw-r--r--spec/req/rtems/event/val/events.yml96
-rw-r--r--spec/req/rtems/event/val/send-receive.yml66
-rw-r--r--spec/req/rtems/event/val/system-send-receive.yml71
9 files changed, 0 insertions, 1685 deletions
diff --git a/spec/req/rtems/event/receive.yml b/spec/req/rtems/event/receive.yml
deleted file mode 100644
index a880dac5..00000000
--- a/spec/req/rtems/event/receive.yml
+++ /dev/null
@@ -1,15 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-enabled-by: true
-functional-type: function
-links:
-- role: interface-function
- uid: /if/rtems/event/receive
-rationale: null
-references: []
-requirement-type: functional
-text: |
- The ${/if/rtems/event/receive:/name} directive shall receive events from the
- application event set of a task as specified by ${send-receive}.
-type: requirement
diff --git a/spec/req/rtems/event/send-receive.yml b/spec/req/rtems/event/send-receive.yml
deleted file mode 100644
index 5723e57e..00000000
--- a/spec/req/rtems/event/send-receive.yml
+++ /dev/null
@@ -1,1001 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-enabled-by: true
-functional-type: action
-links: []
-post-conditions:
-- name: SendStatus
- states:
- - name: Ok
- test-code: |
- T_rsc_success( ctx->send_status );
- text: |
- The send event status shall be RTEMS_SUCCESSFUL.
- - name: InvId
- test-code: |
- T_rsc( ctx->send_status, RTEMS_INVALID_ID );
- text: |
- The send event status shall be RTEMS_INVALID_ID.
- test-epilogue: null
- test-prologue: null
-- name: ReceiveStatus
- states:
- - name: None
- test-code: |
- T_eq_int( ctx->receive_condition_state, RECEIVE_COND_UNKNOWN );
- T_eq_u32( GetPendingEvents( ctx ), 0 );
- text: |
- There shall be no pending events.
- - name: Pending
- test-code: |
- T_eq_int( ctx->receive_condition_state, RECEIVE_COND_UNKNOWN );
- T_eq_u32( GetPendingEvents( ctx ), ctx->events_to_send );
- text: |
- All events sent shall be pending.
- - name: Timeout
- test-code: |
- T_rsc( ctx->receive_status, RTEMS_TIMEOUT );
- T_eq_int( ctx->receive_condition_state, RECEIVE_COND_UNKNOWN );
- T_eq_u32( GetPendingEvents( ctx ), ctx->events_to_send );
- text: |
- The receive event status shall be RTEMS_TIMEOUT. All events sent after
- the timeout shall be pending.
- - name: Satisfied
- test-code: |
- T_rsc( ctx->receive_status, RTEMS_SUCCESSFUL );
-
- if ( ctx->receive_type != RECEIVE_NORMAL ) {
- T_eq_int( ctx->receive_condition_state, RECEIVE_COND_SATSIFIED );
- }
-
- T_eq_u32( ctx->received_events, ctx->events_to_send & INPUT_EVENTS );
- T_eq_u32( GetPendingEvents( ctx ), ctx->events_to_send & ~INPUT_EVENTS );
- text: |
- The receive event status shall be RTEMS_SUCCESSFUL. The received events
- shall be equal to the input events sent. The pending events shall be
- equal to the events sent which are not included in the input events.
- - name: Unsatisfied
- test-code: |
- T_rsc( ctx->receive_status, RTEMS_UNSATISFIED );
- T_eq_int( ctx->receive_condition_state, RECEIVE_COND_UNKNOWN );
- T_eq_u32( GetPendingEvents( ctx ), ctx->events_to_send );
- text: |
- The receive event status shall be RTEMS_UNSATISFIED. All sent events
- shall be pending.
- - name: Blocked
- test-code: |
- T_eq_int( ctx->receive_condition_state, RECEIVE_COND_UNSATISFIED );
- T_eq_u32( ctx->unsatisfied_pending, ctx->events_to_send );
- text: |
- The receiver task shall remain blocked waiting for events after the
- directive call. All sent events shall be pending.
- test-epilogue: null
- test-prologue: null
-- name: SenderPreemption
- states:
- - name: 'No'
- test-code: |
- /*
- * There may be a thread switch to the runner thread if the sender thread
- * was on another scheduler instance.
- */
-
- T_le_sz( log->recorded, 1 );
-
- for ( i = 0; i < log->recorded; ++i ) {
- T_ne_u32( log->events[ i ].executing, ctx->worker_id );
- T_eq_u32( log->events[ i ].heir, ctx->runner_id );
- }
- text: |
- There shall be no sender preemption.
- - name: 'Yes'
- test-code: |
- T_eq_sz( log->recorded, 2 );
- T_eq_u32( log->events[ 0 ].heir, ctx->runner_id );
- T_eq_u32( log->events[ 1 ].heir, ctx->worker_id );
- text: |
- There shall be a sender preemption.
- test-epilogue: null
- test-prologue: |
- T_thread_switch_log *log;
- size_t i;
-
- log = &ctx->thread_switch_log.log;
-pre-conditions:
-- name: Id
- states:
- - name: InvId
- test-code: |
- ctx->receiver_id = 0xffffffff;
- ctx->sender_type = SENDER_SELF;
- text: |
- The id parameter of the send directive shall be an invalid task object
- identifier.
- - name: Task
- test-code: |
- ctx->receiver_id = ctx->runner_id;
- text: |
- The id parameter of the send directive shall be a valid task object
- identifier.
- test-epilogue: null
- test-prologue: null
-- name: Send
- states:
- - name: Zero
- test-code: |
- ctx->events_to_send = 0;
- text: |
- The event set sent shall be the empty.
- - name: Unrelated
- test-code: |
- ctx->events_to_send = RTEMS_EVENT_7;
- text: |
- The event set sent shall be unrelated to the event receive condition.
- - name: Any
- test-code: |
- ctx->events_to_send = RTEMS_EVENT_5;
- text: |
- The event set sent shall be contain at least one but not all events of
- the event receive condition.
- - name: All
- test-code: |
- ctx->events_to_send = RTEMS_EVENT_5 | RTEMS_EVENT_23;
- text: |
- The event set sent shall be contain all events of the event receive condition.
- - name: MixedAny
- test-code: |
- ctx->events_to_send = RTEMS_EVENT_5 | RTEMS_EVENT_7;
- text: |
- The event set sent shall be contain at least one but not all events of
- the event receive condition and at least one unrelated event.
- - name: MixedAll
- test-code: |
- ctx->events_to_send = RTEMS_EVENT_5 | RTEMS_EVENT_7 | RTEMS_EVENT_23;
- text: |
- The event set sent shall be contain all events of the event receive
- condition and at least one unrelated event.
- test-epilogue: null
- test-prologue: null
-- name: ReceiverState
- states:
- - name: NotWaiting
- test-code: |
- ctx->sender_type = SENDER_SELF;
- ctx->receive_type = RECEIVE_SKIP;
- text: |
- The receiver task shall not be waiting for events.
- - name: Poll
- test-code: |
- ctx->sender_type = SENDER_SELF;
- ctx->receive_type = RECEIVE_NORMAL;
- ctx->receive_option_set |= RTEMS_NO_WAIT;
- text: |
- The receiver task shall poll for events.
- - name: Timeout
- test-code: |
- ctx->sender_type = SENDER_SELF_2;
- ctx->receive_type = RECEIVE_NORMAL;
- ctx->receive_timeout = 1;
- text: |
- The receiver task shall have waited for events with a timeout which
- occurred.
- - name: Lower
- test-code: |
- ctx->sender_type = SENDER_WORKER;
- ctx->sender_prio = PRIO_HIGH;
- ctx->receive_type = RECEIVE_NORMAL;
- text: |
- The receiver task shall be blocked waiting for events and the receiver
- task shall have a lower priority than the sender task.
- - name: Equal
- test-code: |
- ctx->sender_type = SENDER_WORKER;
- ctx->sender_prio = PRIO_NORMAL;
- ctx->receive_type = RECEIVE_NORMAL;
- text: |
- The receiver task shall be blocked waiting for events and the receiver
- task shall have a priority equal to the sender task.
- - name: Higher
- test-code: |
- ctx->sender_type = SENDER_WORKER;
- ctx->sender_prio = PRIO_LOW;
- ctx->receive_type = RECEIVE_NORMAL;
- text: |
- The receiver task shall be blocked waiting for events and the receiver
- task shall have a higher priority than the sender task.
- - name: Other
- test-code: |
- ctx->sender_type = SENDER_WORKER;
- ctx->sender_prio = PRIO_OTHER;
- ctx->receive_type = RECEIVE_NORMAL;
- text: |
- The receiver task shall be blocked waiting for events and the receiver
- task shall be on another scheduler instance than the sender task.
- - name: Intend
- test-code: |
- ctx->sender_type = SENDER_INTERRUPT;
- ctx->receive_type = RECEIVE_INTERRUPT;
- text: |
- The receiver task shall intend to block for waiting for events.
- test-epilogue: null
- test-prologue: null
-- name: Satisfy
- states:
- - name: All
- test-code: |
- ctx->receive_option_set |= RTEMS_EVENT_ALL;
- text: |
- The receiver task shall be interested in all input events.
- - name: Any
- test-code: |
- ctx->receive_option_set |= RTEMS_EVENT_ANY;
- text: |
- The receiver task shall be interested in any input event.
- test-epilogue: null
- test-prologue: null
-rationale: null
-references: []
-requirement-type: functional
-skip-reasons:
- NoOtherScheduler: |
- In non-SMP configurations, there exists exactly one scheduler instance.
-test-action: |
- if ( ctx->sender_type == SENDER_SELF ) {
- SendAction( ctx );
- } else if ( ctx->sender_type == SENDER_WORKER ) {
- Wakeup( ctx->worker_wakeup );
- }
-
- if ( ctx->receive_type == RECEIVE_NORMAL ) {
- ctx->receive_status = ( *ctx->receive )(
- INPUT_EVENTS,
- ctx->receive_option_set,
- ctx->receive_timeout,
- &ctx->received_events
- );
- } else if ( ctx->receive_type == RECEIVE_INTERRUPT ) {
- T_interrupt_test_state state;
-
- state = T_interrupt_test( &InterruptConfig, ctx );
- T_eq_int( state, T_INTERRUPT_TEST_DONE );
- }
-
- if ( ctx->sender_type == SENDER_SELF_2 ) {
- SendAction( ctx );
- } else if ( ctx->sender_type == SENDER_WORKER ) {
- rtems_status_code sc;
- rtems_task_priority prio;
-
- Wait( ctx->runner_wakeup );
-
- prio = 0;
- sc = rtems_task_set_priority( ctx->worker_id, PRIO_LOW, &prio );
- T_rsc_success( sc );
- T_eq_u32( prio, PRIO_HIGH );
- }
-test-brief: null
-test-cleanup: |
- rtems_status_code sc;
- rtems_event_set events;
-
- events = 0;
- sc = ( *ctx->receive )(
- RTEMS_ALL_EVENTS,
- RTEMS_NO_WAIT | RTEMS_EVENT_ANY,
- 0,
- &events
- );
- if ( sc == RTEMS_SUCCESSFUL ) {
- T_quiet_ne_u32( events, 0 );
- } else {
- T_quiet_rsc( sc, RTEMS_UNSATISFIED );
- T_quiet_eq_u32( events, 0 );
- }
-test-context:
-- brief: |
- This member defines the sender type to perform the event send action.
- description: null
- member: SenderTypes sender_type
-- brief: |
- This member defines the sender task priority.
- description: null
- member: Priorities sender_prio
-- brief: |
- This member defines the receiver ID used for the event send action.
- description: null
- member: rtems_id receiver_id
-- brief: |
- This member defines the events to send for the event send action.
- description: null
- member: rtems_event_set events_to_send
-- brief: |
- This member contains the status of the event send action.
- description: null
- member: rtems_status_code send_status
-- brief: |
- This member contains the scheduler ID of the runner task.
- description: null
- member: ReceiveTypes receive_type
-- brief: |
- This member defines the option set used for the event receive action.
- description: null
- member: rtems_option receive_option_set
-- brief: |
- This member defines the timeout used for the event receive action.
- description: null
- member: rtems_interval receive_timeout
-- brief: |
- This member contains the events received by the event receive action.
- description: null
- member: rtems_event_set received_events
-- brief: |
- This member contains the status of the event receive action.
- description: null
- member: rtems_status_code receive_status
-- brief: |
- This member contains the event conditon state of the receiver task after
- the event send action.
- description: null
- member: ReceiveConditionStates receive_condition_state
-- brief: |
- This member contains the pending events after an event send action which
- did not satsify the event condition of the receiver.
- description: null
- member: rtems_event_set unsatisfied_pending
-- brief: |
- This member contains the TCB of the runner task.
- description: null
- member: Thread_Control *runner_thread
-- brief: |
- This member contains the ID of the runner task.
- description: null
- member: rtems_id runner_id
-- brief: |
- This member contains the task ID of the worker task.
- description: null
- member: rtems_id worker_id
-- brief: |
- This member contains the ID of the semaphore used to wake up the worker
- task.
- description: null
- member: rtems_id worker_wakeup
-- brief: |
- This member contains the ID of the semaphore used to wake up the runner
- task.
- description: null
- member: rtems_id runner_wakeup
-- brief: |
- This member contains the scheduler ID of scheduler used by the runner task.
- description: null
- member: rtems_id runner_sched
-- brief: |
- This member contains the scheduler ID of another scheduler which is not
- used by the runner task.
- description: null
- member: rtems_id other_sched
-- brief: |
- This member contains the thread switch log.
- description: null
- member: T_thread_switch_log_4 thread_switch_log
-test-context-support: |
- typedef enum {
- PRIO_HIGH = 1,
- PRIO_NORMAL,
- PRIO_LOW,
- PRIO_OTHER
- } Priorities;
-
- typedef enum {
- SENDER_NONE,
- SENDER_SELF,
- SENDER_SELF_2,
- SENDER_WORKER,
- SENDER_INTERRUPT
- } SenderTypes;
-
- typedef enum {
- RECEIVE_SKIP,
- RECEIVE_NORMAL,
- RECEIVE_INTERRUPT
- } ReceiveTypes;
-
- typedef enum {
- RECEIVE_COND_UNKNOWN,
- RECEIVE_COND_SATSIFIED,
- RECEIVE_COND_UNSATISFIED
- } ReceiveConditionStates;
-test-description: null
-test-header:
- code: null
- includes:
- - rtems.h
- - rtems/score/thread.h
- local-includes: []
- run-params:
- - description: |
- is the event send handler.
- dir: null
- name: send
- specifier: rtems_status_code ( *${.:name} )( rtems_id, rtems_event_set )
- - description: |
- is the event receive handler.
- dir: null
- name: receive
- specifier: |
- rtems_status_code ( *${.:name} )( rtems_event_set, rtems_option, rtems_interval, rtems_event_set * )
- - description: |
- is the get pending events handler.
- dir: null
- name: get_pending_events
- specifier: rtems_event_set ( *${.:name} )( Thread_Control * )
- - description: |
- is the thread wait class.
- dir: null
- name: wait_class
- specifier: unsigned int ${.:name}
- - description: |
- is the thread waiting for event state.
- dir: null
- name: waiting_for_event
- specifier: int ${.:name}
- target: testsuites/validation/tr-event-send-receive.h
-test-includes:
-- rtems/score/threadimpl.h
-test-local-includes:
-- tr-event-send-receive.h
-test-prepare: |
- ctx->events_to_send = 0;
- ctx->send_status = RTEMS_INCORRECT_STATE;
- ctx->received_events = 0xffffffff;
- ctx->receive_option_set = 0;
- ctx->receive_timeout = RTEMS_NO_TIMEOUT;
- ctx->sender_type = SENDER_NONE;
- ctx->sender_prio = PRIO_NORMAL;
- ctx->receive_type = RECEIVE_SKIP;
- ctx->receive_condition_state = RECEIVE_COND_UNKNOWN;
- ctx->unsatisfied_pending = 0xffffffff;
- memset( &ctx->thread_switch_log, 0, sizeof( ctx->thread_switch_log ) );
- T_eq_u32( GetPendingEvents( ctx ), 0 );
- _Thread_Wait_flags_set( ctx->runner_thread, THREAD_WAIT_FLAGS_INITIAL );
-test-setup:
- brief: null
- code: |
- static char task_storage[ RTEMS_MINIMUM_STACK_SIZE ];
- static const rtems_task_config task_config = {
- .name = rtems_build_name( 'W', 'O', 'R', 'K' ),
- .initial_priority = PRIO_LOW,
- .storage_area = task_storage,
- .storage_size = sizeof( task_storage ),
- .initial_modes = RTEMS_DEFAULT_MODES,
- .attributes = RTEMS_DEFAULT_ATTRIBUTES
- };
-
- rtems_status_code sc;
- rtems_task_priority prio;
-
- memset( ctx, 0, sizeof( *ctx ) );
- ctx->runner_thread = _Thread_Get_executing();
- ctx->runner_id = ctx->runner_thread->Object.id;
- ctx->worker_wakeup = CreateWakeupSema();
- ctx->runner_wakeup = CreateWakeupSema();
-
- sc = rtems_task_get_scheduler( RTEMS_SELF, &ctx->runner_sched );
- T_rsc_success( sc );
-
- #if defined(RTEMS_SMP)
- sc = rtems_scheduler_ident_by_processor( 1, &ctx->other_sched );
- T_rsc_success( sc );
- T_ne_u32( ctx->runner_sched, ctx->other_sched );
- #endif
-
- 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_build( &task_config, &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 );
- description: null
-test-stop: null
-test-support: |
- #define INPUT_EVENTS ( RTEMS_EVENT_5 | RTEMS_EVENT_23 )
-
- typedef ReqRtemsEventSendReceive_Context Context;
-
- static rtems_id CreateWakeupSema( void )
- {
- rtems_status_code sc;
- rtems_id id;
-
- sc = rtems_semaphore_create(
- rtems_build_name( 'W', 'K', 'U', 'P' ),
- 0,
- RTEMS_SIMPLE_BINARY_SEMAPHORE,
- 0,
- &id
- );
- T_assert_rsc_success( sc );
-
- return id;
- }
-
- static void DeleteWakeupSema( rtems_id id )
- {
- if ( id != 0 ) {
- rtems_status_code sc;
-
- sc = rtems_semaphore_delete( id );
- T_rsc_success( sc );
- }
- }
-
- static void Wait( rtems_id id )
- {
- rtems_status_code sc;
-
- sc = rtems_semaphore_obtain( id, RTEMS_WAIT, RTEMS_NO_TIMEOUT );
- T_quiet_rsc_success( sc );
- }
-
- static void Wakeup( rtems_id id )
- {
- rtems_status_code sc;
-
- sc = rtems_semaphore_release( id );
- T_quiet_rsc_success( sc );
- }
-
- static bool BlockedForEvent( Context *ctx, Thread_Wait_flags flags )
- {
- return flags == ( ctx->wait_class | THREAD_WAIT_STATE_BLOCKED );
- }
-
- static bool IntendsToBlockForEvent( Context *ctx, Thread_Wait_flags flags )
- {
- return flags == ( ctx->wait_class | THREAD_WAIT_STATE_INTEND_TO_BLOCK );
- }
-
- static bool EventReadyAgain( Context *ctx, Thread_Wait_flags flags )
- {
- return flags == ( ctx->wait_class | THREAD_WAIT_STATE_READY_AGAIN );
- }
-
- static bool IsSatisfiedFlags( Context *ctx )
- {
- return EventReadyAgain(
- ctx,
- _Thread_Wait_flags_get( ctx->runner_thread )
- );
- }
-
- static bool IsSatisfiedState( Context *ctx )
- {
- return ctx->runner_thread->current_state != ctx->waiting_for_event;
- }
-
- static void SendAction( Context *ctx )
- {
- T_thread_switch_log *log;
-
- log = T_thread_switch_record_4( &ctx->thread_switch_log );
- T_quiet_null( log );
- ctx->send_status = ( *ctx->send )( ctx->receiver_id, ctx->events_to_send );
- log = T_thread_switch_record( NULL );
- T_quiet_eq_ptr( log, &ctx->thread_switch_log.log );
- }
-
- static void Send(
- Context *ctx,
- bool ( *is_satsified )( Context * )
- )
- {
- SendAction( ctx );
-
- if ( ( *is_satsified )( ctx ) ) {
- ctx->receive_condition_state = RECEIVE_COND_SATSIFIED;
- } else {
- rtems_status_code sc;
- rtems_event_set pending;
- rtems_event_set missing;
-
- ctx->receive_condition_state = RECEIVE_COND_UNSATISFIED;
- pending = ( *ctx->get_pending_events )( ctx->runner_thread );
- ctx->unsatisfied_pending = pending;
-
- missing = INPUT_EVENTS & ~ctx->events_to_send;
- T_ne_u32( missing, 0 );
- sc = ( *ctx->send )( ctx->runner_id, missing );
- T_rsc_success( sc );
-
- pending = ( *ctx->get_pending_events )( ctx->runner_thread );
- T_eq_u32( pending, ctx->events_to_send & ~INPUT_EVENTS );
- }
- }
-
- static void Worker( rtems_task_argument arg )
- {
- Context *ctx;
-
- ctx = (Context *) arg;
-
- while ( true ) {
- rtems_status_code sc;
- rtems_task_priority prio;
-
- Wait( ctx->worker_wakeup );
-
- switch ( ctx->sender_prio ) {
- case PRIO_NORMAL:
- case PRIO_HIGH:
- prio = 0;
- sc = rtems_task_set_priority( RTEMS_SELF, ctx->sender_prio, &prio );
- T_rsc_success( sc );
- T_eq_u32( prio, PRIO_LOW );
- break;
- case PRIO_OTHER:
- sc = rtems_task_set_scheduler(
- RTEMS_SELF,
- ctx->other_sched,
- PRIO_LOW
- );
- T_rsc_success( sc );
- break;
- case PRIO_LOW:
- break;
- }
-
- Send( ctx, IsSatisfiedState );
-
- sc = rtems_task_set_scheduler(
- RTEMS_SELF,
- ctx->runner_sched,
- PRIO_HIGH
- );
- T_rsc_success( sc );
-
- Wakeup( ctx->runner_wakeup );
- }
- }
-
- static rtems_event_set GetPendingEvents( Context *ctx )
- {
- rtems_event_set pending;
- rtems_status_code sc;
-
- sc = ( *ctx->receive )(
- RTEMS_PENDING_EVENTS,
- RTEMS_DEFAULT_OPTIONS,
- 0,
- &pending
- );
- T_quiet_rsc_success( sc );
-
- return pending;
- }
-
- static void ReqRtemsEventSendReceive_Cleanup( Context *ctx );
-
- static void InterruptPrepare( void *arg )
- {
- ReqRtemsEventSendReceive_Cleanup( arg );
- }
-
- static void InterruptAction( void *arg )
- {
- Context *ctx;
-
- ctx = arg;
- ctx->receive_status = ( *ctx->receive )(
- INPUT_EVENTS,
- ctx->receive_option_set,
- ctx->receive_timeout,
- &ctx->received_events
- );
- T_quiet_rsc_success( ctx->receive_status );
- }
-
- static void InterruptContinue( Context *ctx )
- {
- rtems_status_code sc;
-
- sc = ( *ctx->send )( ctx->receiver_id, INPUT_EVENTS );
- T_quiet_rsc_success( sc );
- }
-
- static T_interrupt_test_state Interrupt( void *arg )
- {
- Context *ctx;
- Thread_Wait_flags flags;
- T_interrupt_test_state next_state;
- T_interrupt_test_state previous_state;
-
- ctx = arg;
- flags = _Thread_Wait_flags_get( ctx->runner_thread );
-
- if ( IntendsToBlockForEvent( ctx, flags ) ) {
- next_state = T_INTERRUPT_TEST_DONE;
- } else if ( BlockedForEvent( ctx, flags ) ) {
- next_state = T_INTERRUPT_TEST_LATE;
- } else {
- next_state = T_INTERRUPT_TEST_EARLY;
- }
-
- previous_state = T_interrupt_test_change_state(
- T_INTERRUPT_TEST_ACTION,
- next_state
- );
-
- if ( previous_state == T_INTERRUPT_TEST_ACTION ) {
- if ( next_state == T_INTERRUPT_TEST_DONE ) {
- Send( ctx, IsSatisfiedFlags );
- } else {
- InterruptContinue( ctx );
- }
- }
-
- return next_state;
- }
-
- static const T_interrupt_test_config InterruptConfig = {
- .prepare = InterruptPrepare,
- .action = InterruptAction,
- .interrupt = Interrupt,
- .max_iteration_count = 10000
- };
-test-target: testsuites/validation/tr-event-send-receive.c
-test-teardown:
- brief: null
- code: |
- rtems_status_code sc;
- rtems_task_priority prio;
-
- 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 );
- }
-
- DeleteWakeupSema( ctx->worker_wakeup );
- DeleteWakeupSema( ctx->runner_wakeup );
- description: null
-text: ${.:text-template}
-transition-map:
-- enabled-by: true
- post-conditions:
- ReceiveStatus: None
- SendStatus: InvId
- SenderPreemption: 'No'
- pre-conditions:
- Id:
- - InvId
- ReceiverState: N/A
- Satisfy: N/A
- Send: N/A
-- enabled-by: true
- post-conditions:
- ReceiveStatus: Pending
- SendStatus: Ok
- SenderPreemption: 'No'
- pre-conditions:
- Id:
- - Task
- ReceiverState:
- - NotWaiting
- Satisfy: N/A
- Send: all
-- enabled-by: true
- post-conditions:
- ReceiveStatus: Timeout
- SendStatus: Ok
- SenderPreemption: 'No'
- pre-conditions:
- Id:
- - Task
- ReceiverState:
- - Timeout
- Satisfy: all
- Send: all
-- enabled-by: true
- post-conditions:
- ReceiveStatus: Unsatisfied
- SendStatus: Ok
- SenderPreemption: 'No'
- pre-conditions:
- Id:
- - Task
- ReceiverState:
- - Poll
- Satisfy: all
- Send:
- - Zero
- - Unrelated
-- enabled-by: true
- post-conditions:
- ReceiveStatus: Blocked
- SendStatus: Ok
- SenderPreemption: 'No'
- pre-conditions:
- Id:
- - Task
- ReceiverState:
- - Lower
- - Equal
- - Higher
- - Intend
- Satisfy: all
- Send:
- - Unrelated
- - Zero
-- enabled-by: true
- post-conditions:
- ReceiveStatus: Satisfied
- SendStatus: Ok
- SenderPreemption: 'Yes'
- pre-conditions:
- Id:
- - Task
- ReceiverState:
- - Higher
- Satisfy: all
- Send:
- - All
- - MixedAll
-- enabled-by: true
- post-conditions:
- ReceiveStatus: Satisfied
- SendStatus: Ok
- SenderPreemption: 'No'
- pre-conditions:
- Id:
- - Task
- ReceiverState:
- - Poll
- - Lower
- - Equal
- - Intend
- Satisfy: all
- Send:
- - All
- - MixedAll
-- enabled-by: true
- post-conditions:
- ReceiveStatus: Satisfied
- SendStatus: Ok
- SenderPreemption: 'Yes'
- pre-conditions:
- Id:
- - Task
- ReceiverState:
- - Higher
- Satisfy:
- - Any
- Send:
- - Any
- - MixedAny
-- enabled-by: true
- post-conditions:
- ReceiveStatus: Satisfied
- SendStatus: Ok
- SenderPreemption: 'No'
- pre-conditions:
- Id:
- - Task
- ReceiverState:
- - Poll
- - Lower
- - Equal
- - Intend
- Satisfy:
- - Any
- Send:
- - Any
- - MixedAny
-- enabled-by: true
- post-conditions:
- ReceiveStatus: Unsatisfied
- SendStatus: Ok
- SenderPreemption: 'No'
- pre-conditions:
- Id:
- - Task
- ReceiverState:
- - Poll
- Satisfy:
- - All
- Send:
- - Any
- - MixedAny
-- enabled-by: true
- post-conditions:
- ReceiveStatus: Blocked
- SendStatus: Ok
- SenderPreemption: 'No'
- pre-conditions:
- Id:
- - Task
- ReceiverState:
- - Lower
- - Equal
- - Higher
- - Intend
- Satisfy:
- - All
- Send:
- - Any
- - MixedAny
-- enabled-by: true
- post-conditions: NoOtherScheduler
- pre-conditions:
- Id:
- - Task
- ReceiverState:
- - Other
- Satisfy: all
- Send: all
-- enabled-by: RTEMS_SMP
- post-conditions:
- ReceiveStatus: Blocked
- SendStatus: Ok
- SenderPreemption: 'No'
- pre-conditions:
- Id:
- - Task
- ReceiverState:
- - Other
- Satisfy: all
- Send:
- - Unrelated
- - Zero
-- enabled-by: RTEMS_SMP
- post-conditions:
- ReceiveStatus: Satisfied
- SendStatus: Ok
- SenderPreemption: 'No'
- pre-conditions:
- Id:
- - Task
- ReceiverState:
- - Other
- Satisfy: all
- Send:
- - All
- - MixedAll
-- enabled-by: RTEMS_SMP
- post-conditions:
- ReceiveStatus: Satisfied
- SendStatus: Ok
- SenderPreemption: 'No'
- pre-conditions:
- Id:
- - Task
- ReceiverState:
- - Other
- Satisfy:
- - Any
- Send:
- - Any
- - MixedAny
-- enabled-by: RTEMS_SMP
- post-conditions:
- ReceiveStatus: Blocked
- SendStatus: Ok
- SenderPreemption: 'No'
- pre-conditions:
- Id:
- - Task
- ReceiverState:
- - Other
- Satisfy:
- - All
- Send:
- - Any
- - MixedAny
-type: requirement
diff --git a/spec/req/rtems/event/send.yml b/spec/req/rtems/event/send.yml
deleted file mode 100644
index 1c43c6b9..00000000
--- a/spec/req/rtems/event/send.yml
+++ /dev/null
@@ -1,15 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-enabled-by: true
-functional-type: function
-links:
-- role: interface-function
- uid: /if/rtems/event/send
-rationale: null
-references: []
-requirement-type: functional
-text: |
- The ${/if/rtems/event/send:/name} directive shall send events to the
- application event set of a task as specified by ${send-receive}.
-type: requirement
diff --git a/spec/req/rtems/event/system-receive.yml b/spec/req/rtems/event/system-receive.yml
deleted file mode 100644
index 14c5505e..00000000
--- a/spec/req/rtems/event/system-receive.yml
+++ /dev/null
@@ -1,15 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-enabled-by: true
-functional-type: function
-links:
-- role: interface-function
- uid: /if/rtems/event/system-receive
-rationale: null
-references: []
-requirement-type: functional
-text: |
- The ${/if/rtems/event/system-receive:/name} directive shall receive events
- from the system event set of a task as specified by ${send-receive}.
-type: requirement
diff --git a/spec/req/rtems/event/system-send.yml b/spec/req/rtems/event/system-send.yml
deleted file mode 100644
index 3b1df17a..00000000
--- a/spec/req/rtems/event/system-send.yml
+++ /dev/null
@@ -1,15 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-enabled-by: true
-functional-type: function
-links:
-- role: interface-function
- uid: /if/rtems/event/system-send
-rationale: null
-references: []
-requirement-type: functional
-text: |
- The ${/if/rtems/event/system-send:/name} directive shall send events to the
- system event set of a task as specified by ${send-receive}.
-type: requirement
diff --git a/spec/req/rtems/event/val/event-constant.yml b/spec/req/rtems/event/val/event-constant.yml
deleted file mode 100644
index d1e0b84e..00000000
--- a/spec/req/rtems/event/val/event-constant.yml
+++ /dev/null
@@ -1,391 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-enabled-by: true
-links: []
-test-actions:
-- action: |
- /* No action */
- checks:
- - check: |
- T_step_eq_u32( ${step}, event, ( (rtems_event_set) 1 ) << number );
- description: |
- Check that the event constant is equal to the event number bit in the
- event set.
- links: []
- - check: |
- T_step_eq_u32( ${step}, event & RTEMS_PENDING_EVENTS, 0 );
- description: |
- Check that the event number bit of the event constant is not set in
- RTEMS_PENDING_EVENTS.
- links: []
- description: |
- Validate the event constant.
- links: []
-- action: |
- out = RTEMS_ALL_EVENTS;
- sc = rtems_event_receive(
- RTEMS_PENDING_EVENTS,
- RTEMS_DEFAULT_OPTIONS,
- 0,
- &out
- );
- checks:
- - check: |
- T_step_rsc_success( ${step}, sc );
- description: |
- Check that the directive call was successful.
- links: []
- - check: |
- T_step_eq_u32( ${step}, out, 0 );
- description: |
- Check that there were no pending events.
- links: []
- description: |
- Get all pending events of the Classic event set of the executing task.
- links: []
-- action: |
- out = RTEMS_ALL_EVENTS;
- sc = rtems_event_system_receive(
- RTEMS_PENDING_EVENTS,
- RTEMS_DEFAULT_OPTIONS,
- 0,
- &out
- );
- checks:
- - check: |
- T_step_rsc_success( ${step}, sc );
- description: |
- Check that the directive call was successful.
- links: []
- - check: |
- T_step_eq_u32( ${step}, out, 0 );
- description: |
- Check that there were no pending events.
- links: []
- description: |
- Get all pending events of the system event set of the executing task.
- links: []
-- action: |
- out = RTEMS_ALL_EVENTS;
- sc = rtems_event_receive(
- RTEMS_ALL_EVENTS,
- RTEMS_NO_WAIT | RTEMS_EVENT_ANY,
- 0,
- &out
- );
- checks:
- - check: |
- T_step_rsc( ${step}, sc, RTEMS_UNSATISFIED );
- description: |
- Check that the directive call was unsatisfied.
- links: []
- - check: |
- T_step_eq_u32( ${step}, out, 0 );
- description: |
- Check that there were no events received.
- links: []
- description: |
- Receive all pending events of the Classic event set of the executing task.
- links: []
-- action: |
- out = RTEMS_ALL_EVENTS;
- sc = rtems_event_system_receive(
- RTEMS_ALL_EVENTS,
- RTEMS_NO_WAIT | RTEMS_EVENT_ANY,
- 0,
- &out
- );
- checks:
- - check: |
- T_step_rsc( ${step}, sc, RTEMS_UNSATISFIED );
- description: |
- Check that the directive call was unsatisfied.
- links: []
- - check: |
- T_step_eq_u32( ${step}, out, 0 );
- description: |
- Check that there were no events received.
- links: []
- description: |
- Receive all pending events of the system event set of the executing task.
- links: []
-- action: |
- sc = rtems_event_send( RTEMS_SELF, event );
- checks:
- - check: |
- T_step_rsc_success( ${step}, sc );
- description: |
- Check that the directive call was successful.
- links: []
- description: |
- Send the event to the Classic event set of the executing task.
- links: []
-- action: |
- out = RTEMS_ALL_EVENTS;
- sc = rtems_event_receive(
- RTEMS_PENDING_EVENTS,
- RTEMS_DEFAULT_OPTIONS,
- 0,
- &out
- );
- checks:
- - check: |
- T_step_rsc_success( ${step}, sc );
- description: |
- Check that the directive call was successful.
- links: []
- - check: |
- T_step_eq_u32( ${step}, out, event );
- description: |
- Check that the pending event is equal to the event sent by a previous
- action.
- links: []
- description: |
- Get all pending events of the Classic event set of the executing task.
- links: []
-- action: |
- out = RTEMS_ALL_EVENTS;
- sc = rtems_event_system_receive(
- RTEMS_PENDING_EVENTS,
- RTEMS_DEFAULT_OPTIONS,
- 0,
- &out
- );
- checks:
- - check: |
- T_step_rsc_success( ${step}, sc );
- description: |
- Check that the directive call was successful.
- links: []
- - check: |
- T_step_eq_u32( ${step}, out, 0 );
- description: |
- Check that there were no pending events.
- links: []
- description: |
- Get all pending events of the system event set of the executing task.
- links: []
-- action: |
- out = 0;
- sc = rtems_event_receive(
- RTEMS_ALL_EVENTS,
- RTEMS_NO_WAIT | RTEMS_EVENT_ANY,
- 0,
- &out
- );
- checks:
- - check: |
- T_step_rsc_success( ${step}, sc );
- description: |
- Check that the directive call was successful.
- links: []
- - check: |
- T_step_eq_u32( ${step}, out, event );
- description: |
- Check that the received event is equal to the event sent by a previous
- action.
- links: []
- description: |
- Receive any event of the Classic event set of the executing task.
- links: []
-- action: |
- out = RTEMS_ALL_EVENTS;
- sc = rtems_event_system_receive(
- RTEMS_ALL_EVENTS,
- RTEMS_NO_WAIT | RTEMS_EVENT_ANY,
- 0,
- &out
- );
- checks:
- - check: |
- T_step_rsc( ${step}, sc, RTEMS_UNSATISFIED );
- description: |
- Check that the directive call was unsatisfied.
- links: []
- - check: |
- T_step_eq_u32( ${step}, out, 0 );
- description: |
- Check that the no events were received.
- links: []
- description: |
- Receive any event of the system event set of the executing task.
- links: []
-- action: |
- sc = rtems_event_system_send( RTEMS_SELF, event );
- checks:
- - check: |
- T_step_rsc_success( ${step}, sc );
- description: |
- Check that the directive call was successful.
- links: []
- description: |
- Send the event to the Classic event set of the executing task.
- links: []
-- action: |
- out = RTEMS_ALL_EVENTS;
- sc = rtems_event_receive(
- RTEMS_PENDING_EVENTS,
- RTEMS_DEFAULT_OPTIONS,
- 0,
- &out
- );
- checks:
- - check: |
- T_step_rsc_success( ${step}, sc );
- description: |
- Check that the directive call was successful.
- links: []
- - check: |
- T_step_eq_u32( ${step}, out, 0 );
- description: |
- Check that there were no pending events.
- links: []
- description: |
- Get all pending events of the Classic event set of the executing task.
- links: []
-- action: |
- out = RTEMS_ALL_EVENTS;
- sc = rtems_event_system_receive(
- RTEMS_PENDING_EVENTS,
- RTEMS_DEFAULT_OPTIONS,
- 0,
- &out
- );
- checks:
- - check: |
- T_step_rsc_success( ${step}, sc );
- description: |
- Check that the directive call was successful.
- links: []
- - check: |
- T_step_eq_u32( ${step}, out, event );
- description: |
- Check that the pending event is equal to the event sent by a previous
- action.
- links: []
- description: |
- Get all pending events of the system event set of the executing task.
- links: []
-- action: |
- out = RTEMS_ALL_EVENTS;
- sc = rtems_event_receive(
- RTEMS_ALL_EVENTS,
- RTEMS_NO_WAIT | RTEMS_EVENT_ANY,
- 0,
- &out
- );
- checks:
- - check: |
- T_step_rsc( ${step}, sc, RTEMS_UNSATISFIED );
- description: |
- Check that the directive call was unsatisfied.
- links: []
- - check: |
- T_step_eq_u32( ${step}, out, 0 );
- description: |
- Check that the no events were received.
- links: []
- description: |
- Receive any event of the Classic event set of the executing task.
- links: []
-- action: |
- out = 0;
- sc = rtems_event_system_receive(
- RTEMS_ALL_EVENTS,
- RTEMS_NO_WAIT | RTEMS_EVENT_ANY,
- 0,
- &out
- );
- checks:
- - check: |
- T_step_rsc_success( ${step}, sc );
- description: |
- Check that the directive call was successful.
- links: []
- - check: |
- T_step_eq_u32( ${step}, out, event );
- description: |
- Check that the received event is equal to the event sent by a previous
- action.
- links: []
- description: |
- Receive any event of the system event set of the executing task.
- links: []
-- action: |
- out = RTEMS_ALL_EVENTS;
- sc = rtems_event_receive(
- RTEMS_PENDING_EVENTS,
- RTEMS_DEFAULT_OPTIONS,
- 0,
- &out
- );
- checks:
- - check: |
- T_step_rsc_success( ${step}, sc );
- description: |
- Check that the directive call was successful.
- links: []
- - check: |
- T_step_eq_u32( ${step}, out, 0 );
- description: |
- Check that there were no pending events.
- links: []
- description: |
- Get all pending events of the Classic event set of the executing task.
- links: []
-- action: |
- out = RTEMS_ALL_EVENTS;
- sc = rtems_event_system_receive(
- RTEMS_PENDING_EVENTS,
- RTEMS_DEFAULT_OPTIONS,
- 0,
- &out
- );
- checks:
- - check: |
- T_step_rsc_success( ${step}, sc );
- description: |
- Check that the directive call was successful.
- links: []
- - check: |
- T_step_eq_u32( ${step}, out, 0 );
- description: |
- Check that there were no pending events.
- links: []
- description: |
- Get all pending events of the system event set of the executing task.
- links: []
-test-brief: |
- Tests an event constant and number of the Event Manager using the Classic and
- system event sets of the executing task.
-test-description: null
-test-epilogue: null
-test-fixture: null
-test-header:
- code: null
- includes:
- - rtems.h
- local-includes: []
- run-params:
- - description: |
- is the event constant.
- dir: null
- name: event
- specifier: rtems_event_set ${.:name}
- - description: |
- is the event number.
- dir: null
- name: number
- specifier: int ${.:name}
- target: testsuites/validation/tr-event-constant.h
-test-includes:
-- rtems.h
-test-local-includes:
-- tr-event-constant.h
-test-prologue: |
- rtems_status_code sc;
- rtems_event_set out;
-test-support: null
-test-target: testsuites/validation/tr-event-constant.c
-type: test-case
diff --git a/spec/req/rtems/event/val/events.yml b/spec/req/rtems/event/val/events.yml
deleted file mode 100644
index ede39e36..00000000
--- a/spec/req/rtems/event/val/events.yml
+++ /dev/null
@@ -1,96 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-enabled-by: true
-links: []
-test-actions:
-- action: |
- for ( i = 0; i < 32; ++i ) {
- ${event-constant:/test-run}( events[ i ], i );
- T_step( (unsigned int) i ); /* ${steps/32} */
- }
- checks: []
- description: |
- Run the event constant and number test for all 32 event constants.
- links: []
-- action: |
- all = 0;
-
- for ( i = 0; i < 32; ++i ) {
- all |= events[ i ];
- }
- checks:
- - check: |
- T_step_eq_u32( ${step}, all, RTEMS_ALL_EVENTS );
- description: |
- Check that the value is equal to RTEMS_ALL_EVENTS.
- links: []
- description: |
- Calculate the value of a bitwise or of all 32 event constants.
- links: []
-- action: |
- /* No action */
- checks:
- - check: |
- T_step_eq_u32( ${step}, RTEMS_EVENT_ALL, 0 );
- description: |
- Check that RTEMS_EVENT_ALL is equal to zero.
- links: []
- - check: |
- T_step_ne_u32( ${step}, RTEMS_EVENT_ANY, 0 );
- T_step_eq_u32( ${step}, RTEMS_EVENT_ANY & ( RTEMS_EVENT_ANY - 1), 0 );
- description: |
- Check that RTEMS_EVENT_ANY is a power of two.
- links: []
- description: |
- Validate the Event Manager directive options.
- links: []
-test-brief: Tests the Event Manager API.
-test-description: null
-test-epilogue: null
-test-fixture: null
-test-header: null
-test-includes:
-- rtems.h
-test-local-includes:
-- tr-event-constant.h
-test-prologue: |
- rtems_event_set all;
- int i;
-test-support: |
- static const rtems_event_set events[] = {
- RTEMS_EVENT_0,
- RTEMS_EVENT_1,
- RTEMS_EVENT_2,
- RTEMS_EVENT_3,
- RTEMS_EVENT_4,
- RTEMS_EVENT_5,
- RTEMS_EVENT_6,
- RTEMS_EVENT_7,
- RTEMS_EVENT_8,
- RTEMS_EVENT_9,
- RTEMS_EVENT_10,
- RTEMS_EVENT_11,
- RTEMS_EVENT_12,
- RTEMS_EVENT_13,
- RTEMS_EVENT_14,
- RTEMS_EVENT_15,
- RTEMS_EVENT_16,
- RTEMS_EVENT_17,
- RTEMS_EVENT_18,
- RTEMS_EVENT_19,
- RTEMS_EVENT_20,
- RTEMS_EVENT_21,
- RTEMS_EVENT_22,
- RTEMS_EVENT_23,
- RTEMS_EVENT_24,
- RTEMS_EVENT_25,
- RTEMS_EVENT_26,
- RTEMS_EVENT_27,
- RTEMS_EVENT_28,
- RTEMS_EVENT_29,
- RTEMS_EVENT_30,
- RTEMS_EVENT_31,
- };
-test-target: testsuites/validation/tc-events.c
-type: test-case
diff --git a/spec/req/rtems/event/val/send-receive.yml b/spec/req/rtems/event/val/send-receive.yml
deleted file mode 100644
index bca154b3..00000000
--- a/spec/req/rtems/event/val/send-receive.yml
+++ /dev/null
@@ -1,66 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-enabled-by: true
-links:
-- role: validation
- uid: ../receive
-- role: validation
- uid: ../send
-test-actions:
-- action: |
- ${../send-receive:/test-run}(
- EventSend,
- EventReceive,
- GetPendingEvents,
- THREAD_WAIT_CLASS_EVENT,
- STATES_WAITING_FOR_EVENT
- );
- checks: []
- description: |
- Run the event send and receive tests for the application event set defined
- by ${../send-receive}.
- links: []
-test-brief: |
- Tests the ${/if/rtems/event/send:/name} and ${/if/rtems/event/receive:/name}
- directives.
-test-description: null
-test-epilogue: null
-test-fixture: null
-test-header: null
-test-includes:
-- rtems/rtems/eventimpl.h
-- rtems/rtems/tasksdata.h
-- rtems/score/statesimpl.h
-- rtems/score/threadimpl.h
-test-local-includes:
-- tr-event-send-receive.h
-test-prologue: null
-test-support: |
- static rtems_status_code EventSend(
- rtems_id id,
- rtems_event_set event_in
- )
- {
- return rtems_event_send( id, event_in );
- }
-
- static rtems_status_code EventReceive(
- rtems_id event_in,
- rtems_option option_set,
- rtems_interval ticks,
- rtems_event_set *event_out
- )
- {
- return rtems_event_receive( event_in, option_set, ticks, event_out );
- }
-
- static rtems_event_set GetPendingEvents( Thread_Control *thread )
- {
- RTEMS_API_Control *api;
-
- api = thread->API_Extensions[ THREAD_API_RTEMS ];
- return api->Event.pending_events;
- }
-test-target: testsuites/validation/tc-event-send-receive.c
-type: test-case
diff --git a/spec/req/rtems/event/val/system-send-receive.yml b/spec/req/rtems/event/val/system-send-receive.yml
deleted file mode 100644
index a683f565..00000000
--- a/spec/req/rtems/event/val/system-send-receive.yml
+++ /dev/null
@@ -1,71 +0,0 @@
-SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
-copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
-enabled-by: true
-links:
-- role: validation
- uid: ../system-receive
-- role: validation
- uid: ../system-send
-test-actions:
-- action: |
- ${../send-receive:/test-run}(
- EventSystemSend,
- EventSystemReceive,
- GetPendingSystemEvents,
- THREAD_WAIT_CLASS_SYSTEM_EVENT,
- STATES_WAITING_FOR_SYSTEM_EVENT
- );
- checks: []
- description: |
- Run the event send and receive tests for the system event set defined
- by ${../send-receive}.
- links: []
-test-brief: |
- Tests the ${/if/rtems/event/system-send:/name} and
- ${/if/rtems/event/system-receive:/name} directives.
-test-description: null
-test-epilogue: null
-test-fixture: null
-test-header: null
-test-includes:
-- rtems/rtems/eventimpl.h
-- rtems/rtems/tasksdata.h
-- rtems/score/statesimpl.h
-- rtems/score/threadimpl.h
-test-local-includes:
-- tr-event-send-receive.h
-test-prologue: null
-test-support: |
- static rtems_status_code EventSystemSend(
- rtems_id id,
- rtems_event_set event_in
- )
- {
- return rtems_event_system_send( id, event_in );
- }
-
- static rtems_status_code EventSystemReceive(
- rtems_id event_in,
- rtems_option option_set,
- rtems_interval ticks,
- rtems_event_set *event_out
- )
- {
- return rtems_event_system_receive(
- event_in,
- option_set,
- ticks,
- event_out
- );
- }
-
- static rtems_event_set GetPendingSystemEvents( Thread_Control *thread )
- {
- RTEMS_API_Control *api;
-
- api = thread->API_Extensions[ THREAD_API_RTEMS ];
- return api->System_event.pending_events;
- }
-test-target: testsuites/validation/tc-event-send-receive.c
-type: test-case