summaryrefslogblamecommitdiffstats
path: root/spec/req/rtems/ident-local.yml
blob: 416d8fc60e6b28b082443fc74d0a08d0df479f7f (plain) (tree)



















































































                                                                              

               
                            
                


                                                       
                  












                                  
                          



















                                                                            
                                                       

                    
                         
                  


                  
                                                          
                   
                        


























                   
                 
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