summaryrefslogtreecommitdiffstats
path: root/spec/rtems/req/ident-local.yml
diff options
context:
space:
mode:
Diffstat (limited to 'spec/rtems/req/ident-local.yml')
-rw-r--r--spec/rtems/req/ident-local.yml165
1 files changed, 165 insertions, 0 deletions
diff --git a/spec/rtems/req/ident-local.yml b/spec/rtems/req/ident-local.yml
new file mode 100644
index 00000000..416d8fc6
--- /dev/null
+++ b/spec/rtems/req/ident-local.yml
@@ -0,0 +1,165 @@
+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: []
+post-conditions:
+- name: Status
+ states:
+ - name: Ok
+ test-code: |
+ T_rsc( ctx->status, RTEMS_SUCCESSFUL );
+ text: |
+ The status shall be RTEMS_SUCCESSFUL.
+ - name: InvAddr
+ test-code: |
+ T_rsc( ctx->status, RTEMS_INVALID_ADDRESS );
+ text: |
+ The status shall be RTEMS_INVALID_ADDRESS.
+ - name: InvName
+ test-code: |
+ T_rsc( ctx->status, RTEMS_INVALID_NAME );
+ text: |
+ The status shall be RTEMS_INVALID_NAME.
+ test-epilogue: null
+ test-prologue: null
+- name: Id
+ states:
+ - name: Nop
+ test-code: |
+ T_eq_ptr( ctx->id, &ctx->id_value );
+ T_eq_u32( ctx->id_value, 0xffffffff );
+ text: |
+ The value of the object identifier referenced by the id parameter shall
+ be the value before the action.
+ - name: NullPtr
+ test-code: |
+ T_null( ctx->id )
+ text: |
+ The id parameter shall be NULL.
+ - name: Id
+ test-code: |
+ T_eq_ptr( ctx->id, &ctx->id_value );
+ T_eq_u32( ctx->id_value, ctx->id_local_object );
+ text: |
+ The value of the object identifier referenced by the id parameter shall
+ be the identifier of a local object of the specified class with a name
+ equal to the name parameter. If more than one local object of the
+ specified class with such a name exists, then it shall be the identifier
+ of the object with the lowest object index.
+ test-epilogue: null
+ test-prologue: null
+pre-conditions:
+- name: Name
+ states:
+ - name: Invalid
+ test-code: |
+ ctx->name = 1;
+ text: |
+ The name parameter shall not equal to a name of an active Classic API
+ object of the specified class.
+ - name: Valid
+ test-code: |
+ ctx->name = ClassicObjectLocalIdentName;
+ text: |
+ The name parameter shall equal to a name of an active Classic API object
+ of the specified class.
+ test-epilogue: null
+ test-prologue: null
+- name: Id
+ states:
+ - name: NullPtr
+ test-code: |
+ ctx->id = NULL;
+ text: |
+ The id parameter shall be NULL.
+ - name: Valid
+ test-code: |
+ ctx->id_value = 0xffffffff;
+ ctx->id = &ctx->id_value;
+ text: |
+ The id parameter shall point to an object identifier.
+ test-epilogue: null
+ test-prologue: null
+rationale: null
+references: []
+requirement-type: functional
+skip-reasons: {}
+test-action: |
+ ctx->status = ( *ctx->action )( ctx->name, ctx->id );
+test-brief: null
+test-cleanup: null
+test-context:
+- brief: null
+ description: null
+ member: rtems_status_code status
+- brief: null
+ description: null
+ member: rtems_name name
+- brief: null
+ description: null
+ member: rtems_id *id
+- brief: null
+ description: null
+ member: rtems_id id_value
+test-context-support: null
+test-description: null
+test-header:
+ code: |
+ #define ClassicObjectLocalIdentName \
+ rtems_build_name( 'I', 'D', 'N', 'T' )
+ includes:
+ - rtems.h
+ local-includes: []
+ run-params:
+ - description: |
+ is the identifier of an active object of the class under test with the
+ name ClassicObjectLocalIdentName.
+ dir: null
+ name: id_local_object
+ specifier: rtems_id ${.:name}
+ - description: |
+ is the action handler.
+ dir: null
+ name: action
+ specifier: rtems_status_code ( *${.:name} )( rtems_name, rtems_id * )
+ target: testsuites/validation/tr-object-ident-local.h
+test-includes: []
+test-local-includes:
+- tr-object-ident-local.h
+test-prepare: null
+test-setup: null
+test-stop: null
+test-support: null
+test-target: testsuites/validation/tr-object-ident-local.c
+test-teardown: null
+text: ${.:text-template}
+transition-map:
+- enabled-by: true
+ post-conditions:
+ Id: NullPtr
+ Status: InvAddr
+ pre-conditions:
+ Id:
+ - NullPtr
+ Name: all
+- enabled-by: true
+ post-conditions:
+ Id: Nop
+ Status: InvName
+ pre-conditions:
+ Id:
+ - Valid
+ Name:
+ - Invalid
+- enabled-by: true
+ post-conditions:
+ Id: Id
+ Status: Ok
+ pre-conditions:
+ Id:
+ - Valid
+ Name:
+ - Valid
+type: requirement