diff options
Diffstat (limited to 'spec/rtems/ratemon/req/delete.yml')
-rw-r--r-- | spec/rtems/ratemon/req/delete.yml | 134 |
1 files changed, 134 insertions, 0 deletions
diff --git a/spec/rtems/ratemon/req/delete.yml b/spec/rtems/ratemon/req/delete.yml new file mode 100644 index 00000000..878e39b4 --- /dev/null +++ b/spec/rtems/ratemon/req/delete.yml @@ -0,0 +1,134 @@ +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/delete +post-conditions: +- name: Status + states: + - name: Ok + test-code: | + ctx->period_id = 0; + T_rsc_success( ctx->status ); + text: | + The return status of ${../if/delete:/name} shall be + ${../../status/if/successful:/name}. + - name: InvId + test-code: | + T_rsc( ctx->status, RTEMS_INVALID_ID ); + text: | + The return status of ${../if/delete:/name} shall be + ${../../status/if/invalid-id:/name}. + test-epilogue: null + test-prologue: null +- name: Name + states: + - name: Valid + test-code: | + id = 0; + sc = rtems_rate_monotonic_ident( NAME, &id ); + T_rsc_success( sc ); + T_eq_u32( id, ctx->period_id ); + text: | + The unique object name shall identify a period. + - name: Invalid + test-code: | + sc = rtems_rate_monotonic_ident( NAME, &id ); + T_rsc( sc, RTEMS_INVALID_NAME ); + text: | + The unique object name shall not identify a period. + test-epilogue: null + test-prologue: | + rtems_status_code sc; + rtems_id id; +pre-conditions: +- name: Id + states: + - name: NoObj + test-code: | + ctx->id = 0; + text: | + The ${../if/delete:/params[0]/name} parameter shall not be associated + with a period. + - name: Period + test-code: | + ctx->id = ctx->period_id; + text: | + The ${../if/delete:/params[0]/name} parameter shall be associated with + a period. + test-epilogue: null + test-prologue: null +rationale: null +references: [] +requirement-type: functional +skip-reasons: {} +test-action: | + ctx->status = rtems_rate_monotonic_delete( ctx->id ); +test-brief: null +test-cleanup: null +test-context: +- brief: null + description: null + member: | + rtems_id period_id +- brief: null + description: null + member: | + rtems_id id +- brief: null + description: null + member: | + rtems_status_code status +test-context-support: null +test-description: null +test-header: null +test-includes: +- rtems.h +- string.h +test-local-includes: [] +test-prepare: | + if ( ctx->period_id == 0 ) { + rtems_status_code sc; + + sc = rtems_rate_monotonic_create( NAME, &ctx->period_id ); + T_rsc_success( sc ); + } +test-setup: + brief: null + code: | + memset( ctx, 0, sizeof( *ctx ) ); + description: null +test-stop: null +test-support: | + #define NAME rtems_build_name( 'T', 'E', 'S', 'T' ) +test-target: testsuites/validation/tc-ratemon-delete.c +test-teardown: + brief: null + code: | + if ( ctx->period_id != 0 ) { + rtems_status_code sc; + + sc = rtems_rate_monotonic_delete( ctx->period_id ); + T_rsc_success( sc ); + } + description: null +text: ${.:text-template} +transition-map: +- enabled-by: true + post-conditions: + Status: Ok + Name: Invalid + pre-conditions: + Id: + - Period +- enabled-by: true + post-conditions: + Status: InvId + Name: Valid + pre-conditions: + Id: + - NoObj +type: requirement |