summaryrefslogtreecommitdiffstats
path: root/spec/rtems/task/req/ident.yml
diff options
context:
space:
mode:
Diffstat (limited to 'spec/rtems/task/req/ident.yml')
-rw-r--r--spec/rtems/task/req/ident.yml123
1 files changed, 123 insertions, 0 deletions
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