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
|