summaryrefslogblamecommitdiffstats
path: root/spec/rtems/task/req/is-suspended.yml
blob: 34fbce8b5e790491eb8422ad82ac5d1009140e0a (plain) (tree)
1
2
3

                                                     
                                                  


























































































































































                                                                            
SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
copyrights:
- Copyright (C) 2021 embedded brains GmbH & Co. KG
enabled-by: true
functional-type: action
links:
- role: interface-function
  uid: ../if/is-suspended
post-conditions:
- name: Status
  states:
  - name: Ok
    test-code: |
      T_rsc_success( ctx->status );
    text: |
      The return status of ${../if/is-suspended:/name} shall be
      ${../../status/if/successful:/name}.
  - name: InvId
    test-code: |
      T_rsc( ctx->status, RTEMS_INVALID_ID );
    text: |
      The return status of ${../if/is-suspended:/name} shall be
      ${../../status/if/invalid-id:/name}.
  - name: AlrdySus
    test-code: |
      T_rsc( ctx->status, RTEMS_ALREADY_SUSPENDED );
    text: |
      The return status of ${../if/is-suspended:/name} shall be
      ${../../status/if/already-suspended:/name}.
  test-epilogue: null
  test-prologue: null
pre-conditions:
- name: Id
  states:
  - name: Invalid
    test-code: |
      ctx->id = INVALID_ID;
    text: |
      While the ${../if/is-suspended:/params[0]/name} parameter is not
      associated with a task.
  - name: Task
    test-code: |
      ctx->id = ctx->worker_id;
    text: |
      While the ${../if/is-suspended:/params[0]/name} parameter is
      associated with a task.
  test-epilogue: null
  test-prologue: null
- name: Suspended
  states:
  - name: 'Yes'
    test-code: |
      ctx->suspend = true;
    text: |
      While the task specified by the ${../if/is-suspended:/params[0]/name}
      parameter is suspended.
  - name: 'No'
    test-code: |
      ctx->suspend = false;
    text: |
      While the task specified by the ${../if/is-suspended:/params[0]/name}
      parameter is not suspended.
  test-epilogue: null
  test-prologue: null
rationale: null
references: []
requirement-type: functional
skip-reasons: {}
test-action: |
  if ( ctx->suspend ) {
    SuspendTask( ctx->worker_id );
  }

  ctx->status = rtems_task_is_suspended( ctx->id );

  if ( ctx->suspend ) {
    ResumeTask( ctx->worker_id );
  }
test-brief: null
test-cleanup: null
test-context:
- brief: |
    This member contains the identifier of a task.
  description: null
  member: |
    rtems_id worker_id
- brief: |
    If this member is true, then the worker is suspended before the
    ${../if/is-suspended:/name} call.
  description: null
  member: |
    bool suspend
- brief: |
    This member contains the return value of the ${../if/is-suspended:/name}
    call.
  description: null
  member: |
    rtems_status_code status
- brief: |
    This member specifies if the ${../if/is-suspended:/params[0]/name}
    parameter value.
  description: null
  member: |
    rtems_id id
test-context-support: null
test-description: null
test-header: null
test-includes:
- rtems.h
test-local-includes:
- tx-support.h
test-prepare: null
test-setup:
  brief: null
  code: |
    ctx->worker_id = CreateTask( "WORK", PRIO_LOW );
    StartTask( ctx->worker_id, Worker, ctx );
  description: null
test-stop: null
test-support: |
  static void Worker( rtems_task_argument arg )
  {
    while ( true ) {
      /* Do nothing */
    }
  }
test-target: testsuites/validation/tc-task-is-suspended.c
test-teardown:
  brief: null
  code: |
    DeleteTask( ctx->worker_id );
  description: null
text: ${.:text-template}
transition-map:
- enabled-by: true
  post-conditions:
    Status: Ok
  pre-conditions:
    Id:
    - Task
    Suspended:
    - 'No'
- enabled-by: true
  post-conditions:
    Status: AlrdySus
  pre-conditions:
    Id:
    - Task
    Suspended:
    - 'Yes'
- enabled-by: true
  post-conditions:
    Status: InvId
  pre-conditions:
    Id:
    - Invalid
    Suspended: N/A
type: requirement