summaryrefslogtreecommitdiffstats
path: root/spec/acfg/val/fatal-too-large-tls-size.yml
blob: 2c44cac7819f30ba87b51d0af33ffaf11656631f (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
copyrights:
- Copyright (C) 2021 embedded brains GmbH & Co. KG
enabled-by: true
links: []
test-actions:
- action-brief: |
    The test action is carried out by providing a thread-local storage object
    of sufficient size with respect to the application configuration of the
    test suite.
  action-code: |
    if ( shall_not_load_the_value ) {
      uint8_t value;

      value = large_tls_object[ 0 ];
      RTEMS_OBFUSCATE_VARIABLE( value );
    }
  checks:
  - brief: |
      Check that the expected fatal source is present.
    code: |
      T_step_eq_int( ${.:/step}, ctx->source, INTERNAL_ERROR_CORE );
    links:
    - role: validation
      uid: ../req/fatal-too-large-tls-size
  - brief: |
      Check that the expected fatal code is present.
    code: |
      T_step_eq_ulong(
        ${.:/step},
        ctx->code,
        INTERNAL_ERROR_TOO_LARGE_TLS_SIZE
      );
    links:
    - role: validation
      uid: ../req/fatal-too-large-tls-size
  - brief: |
      Check that the ${/acfg/if/max-thread-local-storage-size:/name}
      application configuration option resulted in the expected system setting.
    code: |
      T_step_eq_sz(
        ${.:/step},
        _Thread_Maximum_TLS_size,
        RTEMS_TASK_STORAGE_ALIGNMENT
      );
    links:
    - role: validation
      uid: /acfg/if/max-thread-local-storage-size
  links: []
test-brief: |
  Tests a fatal error.
test-context: []
test-context-support: null
test-description: null
test-header:
  code: null
  freestanding: true
  includes:
  - rtems.h
  local-includes: []
  run-params:
  - description: |
      is fatal source.
    dir: null
    name: source
    specifier: ${/rtems/userext/if/fatal-source:/name} ${.:name}
  - description: |
      is fatal code.
    dir: null
    name: code
    specifier: ${/rtems/userext/if/fatal-code:/name} ${.:name}
  target: testsuites/validation/tr-fatal-too-large-tls-size.h
test-includes:
- rtems.h
- rtems/score/thread.h
test-local-includes:
- tr-fatal-too-large-tls-size.h
test-setup: null
test-stop: null
test-support: |
  static volatile _Thread_local uint8_t large_tls_object[ RTEMS_TASK_STORAGE_ALIGNMENT + 1 ];

  static volatile bool shall_not_load_the_value;
test-target: testsuites/validation/tr-fatal-too-large-tls-size.c
test-teardown: null
type: test-case