blob: a2926dd662d170fe0979176bc39a04fb680821a5 (
plain) (
tree)
|
|
SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
copyrights:
- Copyright (C) 2020 embedded brains GmbH & Co. KG
enabled-by: true
functional-type: action
links:
- role: interface-function
uid: ../if/ident
- role: interface-function
uid: ../../object/if/who-am-i
post-conditions:
- name: Status
states:
- name: OkAndWhoAmI
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 return status of ${../if/ident:/name} shall be
${../../status/if/successful:/name}. The value of the object identifier
referenced by the ${../if/ident:/params[0]/name} parameter shall be the
identifier of the executing thread.
- name: Skip
test-code: |
/* Checks performed by ${../../req/ident:/test-run}() */
text: |
There is no status to validate.
test-epilogue: null
test-prologue: null
pre-conditions:
- name: Name
states:
- name: WhoAmI
test-code: |
ctx->id_value = 0xffffffff;
ctx->id = &ctx->id_value;
text: |
While the ${../if/ident:/params[0]/name} parameter is equal to
${../../object/if/who-am-i:/name},
while ${../if/ident:/params[2]/name} parameter is not equal to
${/c/if/null:/name}.
- name: NotWhoAmI
test-code: |
ctx->id = NULL;
/* Preparation performed by ${../../req/ident:/test-run}() */
text: |
While the ${../if/ident:/params[0]/name} is not equal to
${../../object/if/who-am-i:/name} or ${../if/ident:/params[2]/name}
parameter is equal to ${/c/if/null:/name},
the behaviour of ${../if/ident:/name} shall be specified by
${../../req/ident:/spec}.
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,
DefaultTaskConfig.name,
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
- tx-support.h
test-prepare: null
test-setup:
brief: null
code: |
rtems_status_code sc;
sc = rtems_task_construct(
&DefaultTaskConfig,
&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:
brief: null
code: |
if ( ctx->id_local_object != 0 ) {
rtems_status_code sc;
sc = rtems_task_delete( ctx->id_local_object );
T_rsc_success( sc );
}
description: null
text: ${.:text-template}
transition-map:
- enabled-by: true
post-conditions:
Status: OkAndWhoAmI
pre-conditions:
Name:
- WhoAmI
- enabled-by: true
post-conditions:
Status: Skip
pre-conditions:
Name:
- NotWhoAmI
type: requirement
|