From 3bdf817950eadd75a2785b62220eb0b04533b9fd Mon Sep 17 00:00:00 2001 From: Sebastian Huber Date: Wed, 16 Sep 2020 11:48:29 +0200 Subject: spec: Group items by component --- spec/rtems/task/req/ident.yml | 123 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 123 insertions(+) create mode 100644 spec/rtems/task/req/ident.yml (limited to 'spec/rtems/task/req/ident.yml') diff --git a/spec/rtems/task/req/ident.yml b/spec/rtems/task/req/ident.yml new file mode 100644 index 00000000..0fbfd0dc --- /dev/null +++ b/spec/rtems/task/req/ident.yml @@ -0,0 +1,123 @@ +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: +- role: interface-function + uid: /rtems/task/if/ident +post-conditions: +- name: Post + states: + - name: OkAndSelfId + test-code: | + T_rsc(ctx->status, RTEMS_SUCCESSFUL); + T_eq_ptr(ctx->id, &ctx->id_value); + T_eq_u32(ctx->id_value, rtems_task_self()); + text: | + The status shall be RTEMS_SUCCESSFUL. The value of the object identifier + referenced by the id parameter shall be the identifier of the executing + thread. + - name: Generic + test-code: | + /* Checks performed by ${../req/ident:/test-run}() */ + text: | + The post-condition status shall be specified by ${../req/ident}. + test-epilogue: null + test-prologue: null +pre-conditions: +- name: Pre + states: + - name: Self + test-code: | + ctx->id_value = 0xffffffff; + ctx->id = &ctx->id_value; + text: | + The name parameter shall be RTEMS_SELF. + - name: Generic + test-code: | + ctx->id = NULL; + /* Preparation performed by ${../req/ident:/test-run}() */ + text: | + The pre-condition status shall be specified by ${../req/ident}. + test-epilogue: null + test-prologue: null +rationale: null +references: [] +requirement-type: functional +skip-reasons: {} +test-action: | + if ( ctx->id != NULL ) { + ctx->status = rtems_task_ident( RTEMS_SELF, 0xdeadbeef, ctx->id ); + } else { + ${../req/ident:/test-run}( + ctx->id_local_object, + ClassicTaskIdentAction + ); + } +test-brief: null +test-cleanup: null +test-context: +- brief: null + description: null + member: rtems_status_code status +- brief: null + description: null + member: rtems_id *id +- brief: null + description: null + member: rtems_id id_value +- brief: null + description: null + member: rtems_id id_local_object +test-context-support: null +test-description: null +test-header: null +test-includes: [] +test-local-includes: +- tr-object-ident.h +test-prepare: null +test-setup: + brief: null + code: | + static char task_storage[ RTEMS_MINIMUM_STACK_SIZE ]; + static const rtems_task_config task_config = { + .name = ClassicObjectIdentName, + .initial_priority = 1, + .storage_area = task_storage, + .storage_size = sizeof( task_storage ), + .initial_modes = RTEMS_DEFAULT_MODES, + .attributes = RTEMS_DEFAULT_ATTRIBUTES + }; + rtems_status_code sc; + + sc = rtems_task_build( &task_config, &ctx->id_local_object ); + T_assert_rsc_success( sc ); + description: null +test-stop: null +test-support: | + static rtems_status_code ClassicTaskIdentAction( + rtems_name name, + uint32_t node, + rtems_id *id + ) + { + return rtems_task_ident( name, node, id ); + } +test-target: testsuites/validation/tc-task-ident.c +test-teardown: null +text: ${.:text-template} +transition-map: +- enabled-by: true + post-conditions: + Post: OkAndSelfId + pre-conditions: + Pre: + - Self +- enabled-by: true + post-conditions: + Post: Generic + pre-conditions: + Pre: + - Generic +type: requirement -- cgit v1.2.3