SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause copyrights: - Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de) enabled-by: true functional-type: action links: - role: interface-function uid: ../if/get-scheduler post-conditions: - name: Status states: - name: Ok test-code: | T_rsc_success( ctx->status ); text: | The return status of ${../if/get-scheduler:/name} shall be ${../../status/if/successful:/name}. - name: InvAddr test-code: | T_rsc( ctx->status, RTEMS_INVALID_ADDRESS ); text: | The return status of ${../if/get-scheduler:/name} shall be ${../../status/if/invalid-address:/name}. - name: InvId test-code: | T_rsc( ctx->status, RTEMS_INVALID_ID ); text: | The return status of ${../if/get-scheduler:/name} shall be ${../../status/if/invalid-id:/name}. test-epilogue: null test-prologue: null - name: SchedulerIDObj states: - name: Set test-code: | T_eq_u32( ctx->scheduler_id_obj, 0x0f010001 ); text: | The value of the object referenced by the ${../if/get-scheduler:/params[1]/name} parameter shall be set to the object identifier of the ${/glossary/scheduler-home:/term} of the task specified by the ${../if/get-scheduler:/params[0]/name} parameter at some point during the call after the return of the ${../if/get-scheduler:/name} call. - name: Nop test-code: | T_eq_u32( ctx->scheduler_id_obj, INVALID_ID ); text: | Objects referenced by the ${../if/get-scheduler:/params[1]/name} parameter in past calls to ${../if/get-scheduler:/name} shall not be accessed by the ${../if/get-scheduler:/name} call. test-epilogue: null test-prologue: null pre-conditions: - name: Id states: - name: Invalid test-code: | ctx->id = INVALID_ID; text: | While the ${../if/get-scheduler:/params[0]/name} parameter is not associated with a task. - name: Task test-code: | ctx->id = RTEMS_SELF; text: | While the ${../if/get-scheduler:/params[0]/name} parameter is associated with a task. test-epilogue: null test-prologue: null - name: SchedulerID states: - name: Valid test-code: | ctx->scheduler_id = &ctx->scheduler_id_obj; text: | While the ${../if/get-scheduler:/params[1]/name} parameter references an object of type ${../../type/if/id:/name}. - name: 'Null' test-code: | ctx->scheduler_id = NULL; text: | While the ${../if/get-scheduler:/params[1]/name} parameter is equal to ${/c/if/null:/name}. test-epilogue: null test-prologue: null rationale: null references: [] requirement-type: functional skip-reasons: {} test-action: | ctx->status = rtems_task_get_scheduler( ctx->id, ctx->scheduler_id ); test-brief: null test-cleanup: null test-context: - brief: | This member provides the object referenced by the ${../if/get-scheduler:/params[1]/name} parameter. description: null member: | rtems_id scheduler_id_obj - brief: | This member contains the return value of the ${../if/get-scheduler:/name} call. description: null member: | rtems_status_code status - brief: | This member specifies if the ${../if/get-scheduler:/params[0]/name} parameter value. description: null member: | rtems_id id - brief: | This member specifies if the ${../if/get-scheduler:/params[1]/name} parameter value. description: null member: | rtems_id *scheduler_id test-context-support: null test-description: null test-header: null test-includes: - rtems.h test-local-includes: - tx-support.h test-prepare: | ctx->scheduler_id_obj = INVALID_ID; test-setup: null test-stop: null test-support: null test-target: testsuites/validation/tc-task-get-scheduler.c test-teardown: null text: ${.:text-template} transition-map: - enabled-by: true post-conditions: Status: Ok SchedulerIDObj: Set pre-conditions: Id: - Task SchedulerID: - Valid - enabled-by: true post-conditions: Status: InvAddr SchedulerIDObj: Nop pre-conditions: Id: all SchedulerID: - 'Null' - enabled-by: true post-conditions: Status: InvId SchedulerIDObj: Nop pre-conditions: Id: - Invalid SchedulerID: - Valid type: requirement