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.
- name: InvNode
test-code: |
T_rsc(ctx->status, RTEMS_INVALID_NODE);
text: |
The status shall be RTEMS_INVALID_NODE.
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: LocalObj
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.
- name: RemoteObj
test-code: |
T_eq_ptr(ctx->id, &ctx->id_value);
T_eq_u32(ctx->id_value, ctx->id_remote_object);
text: |
The value of the object identifier referenced by the id parameter shall
be the identifier of a remote object of the specified class on a eligible
node defined by the node parameter 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. Otherwise, if more than one object of the
specified class with such a name exists on remote eligible nodes, then it
shall be the identifier of the object with the lowest node index and the
lowest object index on this node.
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 = ClassicObjectIdentName;
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: Node
states:
- name: Local
test-code: |
ctx->node = 1;
text: |
The node parameter shall be the local node number.
- name: Remote
test-code: |
ctx->node = 2;
text: |
The node parameter shall be a remote node number.
- name: Invalid
test-code: |
ctx->node = 256;
text: |
The node parameter shall be an invalid node number.
- name: SearchAll
test-code: |
ctx->node = RTEMS_SEARCH_ALL_NODES;
text: |
The node parameter shall be RTEMS_SEARCH_ALL_NODES.
- name: SearchOther
test-code: |
ctx->node = RTEMS_SEARCH_OTHER_NODES;
text: |
The node parameter shall be RTEMS_SEARCH_OTHER_NODES.
- name: SearchLocal
test-code: |
ctx->node = RTEMS_SEARCH_LOCAL_NODE;
text: |
The node parameter shall be RTEMS_SEARCH_LOCAL_NODE.
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->node, 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: uint32_t node
- 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_remote_object
test-context-support: null
test-description: null
test-header:
code: |
#define ClassicObjectIdentName \
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 ClassicObjectIdentName.
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, uint32_t, rtems_id * )
target: testsuites/validation/tr-object-ident.h
test-includes: []
test-local-includes:
- tr-object-ident.h
test-prepare: null
test-setup: null
test-stop: null
test-support: null
test-target: testsuites/validation/tr-object-ident.c
test-teardown: null
text: ${.:text-template}
transition-map:
- enabled-by: true
post-conditions:
Id: LocalObj
Status: Ok
pre-conditions:
Id:
- Valid
Name:
- Valid
Node:
- SearchAll
- SearchLocal
- Local
- enabled-by: true
post-conditions:
Id: Nop
Status: InvName
pre-conditions:
Id:
- Valid
Name:
- Valid
Node:
- Invalid
- SearchOther
- Remote
- enabled-by: true
post-conditions:
Id: Nop
Status: InvName
pre-conditions:
Id:
- Valid
Name:
- Invalid
Node: all
- enabled-by: true
post-conditions:
Id: NullPtr
Status: InvAddr
pre-conditions:
Id:
- NullPtr
Name: all
Node: all
- enabled-by: RTEMS_MULTIPROCESSING
post-conditions:
Id: RemoteObj
Status: Ok
pre-conditions:
Id:
- Valid
Name:
- Valid
Node:
- SearchOther
- Remote
type: requirement