summaryrefslogblamecommitdiffstats
path: root/spec/acfg/val/default.yml
blob: bdbafb9e60b93ed064b953ab22f7ca21649f7ee2 (plain) (tree)
1
2
3
4
5
6
7






                                                                         







                                                                       
                                                                                 



                               
                                          
            

                                                                             

                   
                   












                                                       

                                                                             

                   
                   














                                                             
                                                                    
                    
                   









                                                       















                                            
                                                   

























                                                       
                                                   























                                                                          
                                                   















                                                  
                                                   






                                            
                                                                            





















                                            
                                                   















                                                   
                                                   


                          








                                                                               
                                                                              






                                              












                                            
                                                   

















                                                     
                                                   










                                                                
       
          
                           

























                                                                       
SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
copyrights:
- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
enabled-by: true
links: []
test-actions:
- action-brief: |
    Check the effect of application configuration options with optional
    BSP-provided settings.
  action-code: |
    rtems_extensions_table bsp = BSP_INITIAL_EXTENSION;
  checks:
  - brief: |
      Check the configured ${/acfg/if/idle-task-body:/name}.
    code: |
      T_step_eq_ptr( ${.:/step}, rtems_configuration_get_idle_task(), IdleBody );
    links:
    - role: validation
      uid: ../if/idle-task-body
    - role: validation
      uid: /rtems/config/req/get-idle-task
  - brief: |
      Check the default value of ${/acfg/if/idle-task-stack-size:/name} where
      the optional BSP-provided default value is enabled.
    code: |
      T_step_eq_sz(
        ${.:/step},
        rtems_configuration_get_idle_task_stack_size(),
      #if defined(BSP_IDLE_TASK_STACK_SIZE)
        BSP_IDLE_TASK_STACK_SIZE
      #else
        CPU_STACK_MINIMUM_SIZE
      #endif
      );
    links:
    - role: validation
      uid: ../if/idle-task-stack-size
    - role: validation
      uid: ../if/disable-bsp-settings
  - brief: |
      Check the default value of ${/acfg/if/interrupt-stack-size:/name} where
      the optional BSP-provided default value is enabled.
    code: |
      T_step_eq_sz(
        ${.:/step},
        rtems_configuration_get_interrupt_stack_size(),
      #if defined(BSP_INTERRUPT_STACK_SIZE)
        BSP_INTERRUPT_STACK_SIZE
      #else
        CPU_STACK_MINIMUM_SIZE
      #endif
      );
    links:
    - role: validation
      uid: ../if/interrupt-stack-size
    - role: validation
      uid: ../if/disable-bsp-settings
  - brief: |
      Check the BSP-provided initial extension is registered.
    code: |
      T_step_eq_sz( ${.:/step}, _User_extensions_Initial_count, 1 );
      T_step_eq_ptr(
        ${.:/step},
        _User_extensions_Initial_extensions[ 0 ].fatal,
        bsp.fatal
      );
    links:
    - role: validation
      uid: ../req/bsp-initial-extension
    - role: validation
      uid: ../if/disable-bsp-settings
  links: []
- action-brief: |
    Try to create a barrier.
  action-code: |
    rtems_status_code sc;
    rtems_id          id;

    sc = rtems_barrier_create(
      NAME,
      RTEMS_DEFAULT_ATTRIBUTES,
      1,
      &id
    );
  checks:
  - brief: |
      Check that the returned status code is
      ${/rtems/status/if/too-many:/name}.
    code: |
      T_step_rsc( ${.:/step}, sc, RTEMS_TOO_MANY );
    links:
    - role: validation
      uid: ../if/max-barriers
  links: []
- action-brief: |
    Try to construct a message queue.
  action-code: |
    rtems_message_queue_config      config;
    RTEMS_MESSAGE_QUEUE_BUFFER( 1 ) buffers[ 1 ];
    rtems_status_code               sc;
    rtems_id                        id;

    memset( &config, 0, sizeof( config ) );
    config.name = NAME;
    config.maximum_pending_messages = 1;
    config.maximum_message_size = 1;
    config.storage_size = sizeof( buffers );
    config.storage_area = buffers;
    config.attributes = RTEMS_DEFAULT_ATTRIBUTES;

    sc = rtems_message_queue_construct( &config, &id );
  checks:
  - brief: |
      Check that the returned status code is
      ${/rtems/status/if/too-many:/name}.
    code: |
      T_step_rsc( ${.:/step}, sc, RTEMS_TOO_MANY );
    links:
    - role: validation
      uid: ../if/max-message-queues
  links: []
- action-brief: |
    Try to create a partition.
  action-code: |
    RTEMS_ALIGNED( RTEMS_PARTITION_ALIGNMENT ) uint8_t buffers[ 1 ][ 32 ];
    rtems_status_code                                  sc;
    rtems_id                                           id;

    sc = rtems_partition_create(
      NAME,
      buffers,
      sizeof( buffers ),
      sizeof( buffers[ 0 ] ),
      RTEMS_DEFAULT_ATTRIBUTES,
      &id
    );
  checks:
  - brief: |
      Check that the returned status code is
      ${/rtems/status/if/too-many:/name}.
    code: |
      T_step_rsc( ${.:/step}, sc, RTEMS_TOO_MANY );
    links:
    - role: validation
      uid: ../if/max-partitions
  links: []
- action-brief: |
    Try to create a period.
  action-code: |
    rtems_status_code sc;
    rtems_id          id;

    sc = rtems_rate_monotonic_create( NAME, &id );
  checks:
  - brief: |
      Check that the returned status code is
      ${/rtems/status/if/too-many:/name}.
    code: |
      T_step_rsc( ${.:/step}, sc, RTEMS_TOO_MANY );
    links:
    - role: validation
      uid: ../if/max-periods
  links: []
- action-brief: |
    Check that the processor maximum is one.
  action-code: |
    T_step_eq_u32( ${.:/step}, rtems_scheduler_get_processor_maximum(), 1 );
  checks: []
  links:
  - role: validation
    uid: ../if/max-processors
- action-brief: |
    Try to create a semaphore.
  action-code: |
    rtems_status_code sc;
    rtems_id          id;

    sc = rtems_semaphore_create(
      NAME,
      0,
      RTEMS_DEFAULT_ATTRIBUTES,
      0,
      &id
    );
  checks:
  - brief: |
      Check that the returned status code is
      ${/rtems/status/if/too-many:/name}.
    code: |
      T_step_rsc( ${.:/step}, sc, RTEMS_TOO_MANY );
    links:
    - role: validation
      uid: ../if/max-semaphores
  links: []
- action-brief: |
    Try to construct a task.
  action-code: |
    rtems_status_code sc;
    rtems_id          id;

    sc = rtems_task_construct( &task_config, &id );
  checks:
  - brief: |
      Check that the returned status code is
      ${/rtems/status/if/too-many:/name}.
    code: |
      T_step_rsc( ${.:/step}, sc, RTEMS_TOO_MANY );
    links:
    - role: validation
      uid: ../if/max-tasks
  - brief: |
      Check the default ${/acfg/if/max-tasks:/name} value.  A maximum Classic
      API task value of zero is only configurable if
      ${../if/idle-task-init-appl:/name} is defined or
      ${../if/max-posix-threads:/name} is set to a positive value.  The default
      value of zero for ${../if/max-posix-threads:/name} is used by the test
      suite containing the test case.  The test suite defines
      ${../if/idle-task-init-appl:/name}.
    code: |
      T_step_eq_u32( ${.:/step}, rtems_configuration_get_maximum_tasks(), 0 );
    links:
    - role: validation
      uid: ../req/max-tasks
    - role: validation
      uid: ../req/idle-task-init-appl
    - role: validation
      uid: /rtems/config/req/get-maximum-tasks
  links: []
- action-brief: |
    Try to create a timer.
  action-code: |
    rtems_status_code sc;
    rtems_id          id;

    sc = rtems_timer_create( NAME, &id );
  checks:
  - brief: |
      Check that the returned status code is
      ${/rtems/status/if/too-many:/name}.
    code: |
      T_step_rsc( ${.:/step}, sc, RTEMS_TOO_MANY );
    links:
    - role: validation
      uid: ../if/max-timers
  links: []
- action-brief: |
    Try to create a user extension set.
  action-code: |
    rtems_extensions_table table;
    rtems_status_code      sc;
    rtems_id               id;

    memset( &table, 0, sizeof( table ) );
    sc = rtems_extension_create( NAME, &table, &id );
  checks:
  - brief: |
      Check that the returned status code is
      ${/rtems/status/if/too-many:/name}.
    code: |
      T_step_rsc( ${.:/step}, sc, RTEMS_TOO_MANY );
    links:
    - role: validation
      uid: ../if/max-user-extensions
  links: []
test-brief: |
  Tests the default values of application configuration options.
test-context: []
test-context-support: null
test-description: null
test-header: null
test-includes:
- bsp.h
- string.h
- rtems/score/userextdata.h
test-local-includes:
- tx-support.h
test-setup: null
test-stop: null
test-support: |
  #define NAME rtems_build_name( 'N', 'A', 'M', 'E' )

  RTEMS_ALIGNED(RTEMS_TASK_STORAGE_ALIGNMENT) static char task_storage[
    RTEMS_TASK_STORAGE_SIZE(
      RTEMS_MINIMUM_STACK_SIZE,
      RTEMS_DEFAULT_ATTRIBUTES
    )
  ];

  static const rtems_task_config task_config = {
    .name = NAME,
    .initial_priority = 1,
    .storage_area = task_storage,
    .storage_size = sizeof( task_storage ),
    .maximum_thread_local_storage_size = 0,
    .initial_modes = RTEMS_DEFAULT_MODES,
    .attributes = RTEMS_DEFAULT_ATTRIBUTES
  };
test-target: testsuites/validation/tc-acfg-default.c
test-teardown: null
type: test-case