@micro-os-plus/micro-test-plus 3.1.1 → 3.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +347 -1
- package/CMakeLists.txt +9 -11
- package/README.md +12 -1226
- package/include/micro-os-plus/detail.h +69 -36
- package/include/micro-os-plus/inlines.h +50 -7
- package/include/micro-os-plus/literals.h +257 -29
- package/include/micro-os-plus/micro-test-plus.h +257 -68
- package/include/micro-os-plus/reflection.h +10 -5
- package/include/micro-os-plus/test-reporter-inlines.h +2 -2
- package/include/micro-os-plus/test-reporter.h +14 -4
- package/include/micro-os-plus/test-runner.h +3 -2
- package/include/micro-os-plus/test-suite.h +72 -6
- package/include/micro-os-plus/type-traits.h +54 -10
- package/meson.build +23 -17
- package/package.json +25 -535
- package/src/micro-test-plus.cpp +45 -0
- package/src/test-reporter.cpp +11 -1
- package/src/test-runner.cpp +11 -4
package/package.json
CHANGED
|
@@ -1,24 +1,19 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@micro-os-plus/micro-test-plus",
|
|
3
|
-
"version": "3.
|
|
4
|
-
"description": "A source library
|
|
3
|
+
"version": "3.2.0",
|
|
4
|
+
"description": "A source code library with µTest++, a lightweight testing framework for embedded platforms",
|
|
5
5
|
"main": "",
|
|
6
6
|
"scripts": {
|
|
7
|
-
"
|
|
8
|
-
"pack": "npm pack",
|
|
9
|
-
"version-patch": "npm version patch",
|
|
10
|
-
"version-minor": "npm version minor",
|
|
11
|
-
"postversion": "git push origin --all && git push origin --tags",
|
|
12
|
-
"git-log": "git log --pretty='%cd * %h %s' --date=short"
|
|
7
|
+
"postversion": "git push origin --all && git push origin --tags"
|
|
13
8
|
},
|
|
14
9
|
"repository": {
|
|
15
10
|
"type": "git",
|
|
16
|
-
"url": "https://github.com/micro-os-plus/micro-test-plus-xpack.git
|
|
11
|
+
"url": "https://github.com/micro-os-plus/micro-test-plus-xpack.git"
|
|
17
12
|
},
|
|
13
|
+
"homepage": "https://micro-os-plus.github.io/micro-test-plus-xpack",
|
|
18
14
|
"bugs": {
|
|
19
|
-
"url": "https://github.com/micro-os-plus/micro-test-plus-xpack/issues
|
|
15
|
+
"url": "https://github.com/micro-os-plus/micro-test-plus-xpack/issues"
|
|
20
16
|
},
|
|
21
|
-
"homepage": "https://github.com/micro-os-plus/micro-test-plus-xpack/",
|
|
22
17
|
"keywords": [
|
|
23
18
|
"xpack",
|
|
24
19
|
"c++",
|
|
@@ -29,537 +24,32 @@
|
|
|
29
24
|
"author": {
|
|
30
25
|
"name": "Liviu Ionescu",
|
|
31
26
|
"email": "ilg@livius.net",
|
|
32
|
-
"url": "https://github.com/ilg-ul
|
|
27
|
+
"url": "https://github.com/ilg-ul"
|
|
33
28
|
},
|
|
34
29
|
"license": "MIT",
|
|
35
30
|
"config": {},
|
|
31
|
+
"dependencies": {},
|
|
32
|
+
"bundleDependencies": [],
|
|
33
|
+
"$devDependenciesUrls": [
|
|
34
|
+
"https://www.npmjs.com/package/del-cli"
|
|
35
|
+
],
|
|
36
36
|
"devDependencies": {
|
|
37
|
-
"
|
|
38
|
-
"@xpack-dev-tools/meson-build": "0.60.3-1.1",
|
|
39
|
-
"@xpack-dev-tools/ninja-build": "1.10.2-5.1",
|
|
40
|
-
"@micro-os-plus/build-helper": "^2.11.0",
|
|
41
|
-
"@micro-os-plus/diag-trace": "^4.1.1"
|
|
37
|
+
"del-cli": "^5.1.0"
|
|
42
38
|
},
|
|
43
39
|
"xpack": {
|
|
44
|
-
"minimumXpmRequired": "0.
|
|
45
|
-
"properties": {
|
|
46
|
-
"buildFolderRelativePath": "{{ 'build' | path_join: configuration.name | to_filename | downcase }}",
|
|
47
|
-
"buildFolderRelativePathPosix": "{{ 'build' | path_posix_join: configuration.name | downcase }}",
|
|
48
|
-
"commandCMakePrepare": "{{ properties.commandCMakeReconfigure }} --log-level=VERBOSE",
|
|
49
|
-
"commandCMakePrepareWithToolchain": "{{ properties.commandCMakePrepare }} -D CMAKE_TOOLCHAIN_FILE=../xpacks/micro-os-plus-build-helper/cmake/toolchains/{{ properties.toolchainFileName }}",
|
|
50
|
-
"commandCMakeReconfigure": "cmake -S tests -B {{ properties.buildFolderRelativePathPosix }} -G Ninja -D CMAKE_BUILD_TYPE={{ properties.buildType }} -D PLATFORM_NAME={{ properties.platformName }} -D CMAKE_EXPORT_COMPILE_COMMANDS=ON",
|
|
51
|
-
"commandCMakeBuild": "cmake --build {{ properties.buildFolderRelativePathPosix }}",
|
|
52
|
-
"commandCMakeBuildVerbose": "cmake --build {{ properties.buildFolderRelativePathPosix }} --verbose",
|
|
53
|
-
"commandCMakeClean": "cmake --build {{ properties.buildFolderRelativePathPosix }} --target clean",
|
|
54
|
-
"commandCMakePerformTests": "cd {{ properties.buildFolderRelativePath }} && ctest -V",
|
|
55
|
-
"commandMesonPrepare": "meson setup --backend ninja --buildtype {{ properties.buildType }} -D platform-name={{ properties.platformName }} {{ properties.buildFolderRelativePathPosix }} tests",
|
|
56
|
-
"commandMesonPrepareWithToolchain": "meson setup --backend ninja --buildtype {{ properties.buildType }} -D platform-name={{ properties.platformName }} --native-file xpacks/micro-os-plus-build-helper/meson/toolchains/{{ properties.toolchainFileName }} --native-file tests/platform-{{ properties.platformName }}/meson/native.ini {{ properties.buildFolderRelativePathPosix }} tests",
|
|
57
|
-
"commandMesonPrepareCross": "meson setup --backend ninja --buildtype {{ properties.buildType }} -D platform-name={{ properties.platformName }} --cross xpacks/micro-os-plus-build-helper/meson/toolchains/{{ properties.toolchainFileName }} --cross tests/platform-{{ properties.platformName }}/meson/cross.ini {{ properties.buildFolderRelativePathPosix }} tests",
|
|
58
|
-
"commandMesonReconfigure": "meson setup --reconfigure {{ properties.buildFolderRelativePathPosix }} tests",
|
|
59
|
-
"commandMesonBuild": "meson compile -C {{ properties.buildFolderRelativePathPosix }}",
|
|
60
|
-
"commandMesonBuildVerbose": "meson compile -C {{ properties.buildFolderRelativePathPosix }} --verbose",
|
|
61
|
-
"commandMesonClean": "meson compile -C {{ properties.buildFolderRelativePathPosix }} --clean",
|
|
62
|
-
"commandMesonPerformTests": "meson test -C {{ properties.buildFolderRelativePathPosix }} --verbose"
|
|
63
|
-
},
|
|
40
|
+
"minimumXpmRequired": "0.16.2",
|
|
64
41
|
"actions": {
|
|
65
|
-
"
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
"
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
"test-all": [
|
|
73
|
-
"xpm run test-native",
|
|
74
|
-
"xpm run test-cortexm"
|
|
75
|
-
],
|
|
76
|
-
"test-native": [
|
|
77
|
-
"{% if os.platform == 'darwin' %}xpm run test-native-cmake{% endif %}",
|
|
78
|
-
"xpm run test-native-cmake-gcc11",
|
|
79
|
-
"xpm run test-native-cmake-clang12",
|
|
80
|
-
"xpm run test-native-cmake-clang13",
|
|
81
|
-
"{% if os.platform == 'darwin' %}xpm run test-native-meson{% endif %}",
|
|
82
|
-
"xpm run test-native-meson-gcc11",
|
|
83
|
-
"xpm run test-native-meson-clang12",
|
|
84
|
-
"xpm run test-native-meson-clang13"
|
|
85
|
-
],
|
|
86
|
-
"test-cortexm": [
|
|
87
|
-
"xpm run test-qemu-mps2-an386-cmake",
|
|
88
|
-
"xpm run test-qemu-mps2-an386-meson"
|
|
89
|
-
],
|
|
90
|
-
"test-native-cmake": [
|
|
91
|
-
"xpm run prepare --config native-cmake-debug",
|
|
92
|
-
"xpm run build --config native-cmake-debug",
|
|
93
|
-
"xpm run test --config native-cmake-debug",
|
|
94
|
-
"xpm run prepare --config native-cmake-release",
|
|
95
|
-
"xpm run build --config native-cmake-release",
|
|
96
|
-
"xpm run test --config native-cmake-release"
|
|
97
|
-
],
|
|
98
|
-
"test-native-cmake-gcc11": [
|
|
99
|
-
"xpm run prepare --config native-cmake-gcc11-debug",
|
|
100
|
-
"xpm run build --config native-cmake-gcc11-debug",
|
|
101
|
-
"xpm run test --config native-cmake-gcc11-debug",
|
|
102
|
-
"xpm run prepare --config native-cmake-gcc11-release",
|
|
103
|
-
"xpm run build --config native-cmake-gcc11-release",
|
|
104
|
-
"xpm run test --config native-cmake-gcc11-release"
|
|
105
|
-
],
|
|
106
|
-
"test-native-cmake-clang12": [
|
|
107
|
-
"xpm run prepare --config native-cmake-clang12-debug",
|
|
108
|
-
"xpm run build --config native-cmake-clang12-debug",
|
|
109
|
-
"xpm run test --config native-cmake-clang12-debug",
|
|
110
|
-
"xpm run prepare --config native-cmake-clang12-release",
|
|
111
|
-
"xpm run build --config native-cmake-clang12-release",
|
|
112
|
-
"xpm run test --config native-cmake-clang12-release"
|
|
113
|
-
],
|
|
114
|
-
"test-native-cmake-clang13": [
|
|
115
|
-
"xpm run prepare --config native-cmake-clang13-debug",
|
|
116
|
-
"xpm run build --config native-cmake-clang13-debug",
|
|
117
|
-
"xpm run test --config native-cmake-clang13-debug",
|
|
118
|
-
"xpm run prepare --config native-cmake-clang13-release",
|
|
119
|
-
"xpm run build --config native-cmake-clang13-release",
|
|
120
|
-
"xpm run test --config native-cmake-clang13-release"
|
|
121
|
-
],
|
|
122
|
-
"test-native-meson": [
|
|
123
|
-
"xpm run prepare --config native-meson-debug",
|
|
124
|
-
"xpm run build --config native-meson-debug",
|
|
125
|
-
"xpm run test --config native-meson-debug",
|
|
126
|
-
"xpm run prepare --config native-meson-release",
|
|
127
|
-
"xpm run build --config native-meson-release",
|
|
128
|
-
"xpm run test --config native-meson-release"
|
|
129
|
-
],
|
|
130
|
-
"test-native-meson-gcc11": [
|
|
131
|
-
"xpm run prepare --config native-meson-gcc11-debug",
|
|
132
|
-
"xpm run build --config native-meson-gcc11-debug",
|
|
133
|
-
"xpm run test --config native-meson-gcc11-debug",
|
|
134
|
-
"xpm run prepare --config native-meson-gcc11-release",
|
|
135
|
-
"xpm run build --config native-meson-gcc11-release",
|
|
136
|
-
"xpm run test --config native-meson-gcc11-release"
|
|
137
|
-
],
|
|
138
|
-
"test-native-meson-clang12": [
|
|
139
|
-
"xpm run prepare --config native-meson-clang12-debug",
|
|
140
|
-
"xpm run build --config native-meson-clang12-debug",
|
|
141
|
-
"xpm run test --config native-meson-clang12-debug",
|
|
142
|
-
"xpm run prepare --config native-meson-clang12-release",
|
|
143
|
-
"xpm run build --config native-meson-clang12-release",
|
|
144
|
-
"xpm run test --config native-meson-clang12-release"
|
|
145
|
-
],
|
|
146
|
-
"test-native-meson-clang13": [
|
|
147
|
-
"xpm run prepare --config native-meson-clang13-debug",
|
|
148
|
-
"xpm run build --config native-meson-clang13-debug",
|
|
149
|
-
"xpm run test --config native-meson-clang13-debug",
|
|
150
|
-
"xpm run prepare --config native-meson-clang13-release",
|
|
151
|
-
"xpm run build --config native-meson-clang13-release",
|
|
152
|
-
"xpm run test --config native-meson-clang13-release"
|
|
153
|
-
],
|
|
154
|
-
"test-qemu-mps2-an386-cmake": [
|
|
155
|
-
"xpm run prepare --config qemu-mps2-an386-cmake-debug",
|
|
156
|
-
"xpm run build --config qemu-mps2-an386-cmake-debug",
|
|
157
|
-
"xpm run test --config qemu-mps2-an386-cmake-debug",
|
|
158
|
-
"xpm run prepare --config qemu-mps2-an386-cmake-release",
|
|
159
|
-
"xpm run build --config qemu-mps2-an386-cmake-release",
|
|
160
|
-
"xpm run test --config qemu-mps2-an386-cmake-release"
|
|
161
|
-
],
|
|
162
|
-
"test-qemu-mps2-an386-meson": [
|
|
163
|
-
"xpm run prepare --config qemu-mps2-an386-meson-debug",
|
|
164
|
-
"xpm run build --config qemu-mps2-an386-meson-debug",
|
|
165
|
-
"xpm run test --config qemu-mps2-an386-meson-debug",
|
|
166
|
-
"xpm run prepare --config qemu-mps2-an386-meson-release",
|
|
167
|
-
"xpm run build --config qemu-mps2-an386-meson-release",
|
|
168
|
-
"xpm run test --config qemu-mps2-an386-meson-release"
|
|
169
|
-
],
|
|
170
|
-
"clean-all": [
|
|
171
|
-
"xpm run clean --config native-cmake-debug",
|
|
172
|
-
"xpm run clean --config native-cmake-release",
|
|
173
|
-
"xpm run clean --config native-cmake-gcc11-debug",
|
|
174
|
-
"xpm run clean --config native-cmake-gcc11-release",
|
|
175
|
-
"xpm run clean --config native-cmake-clang12-debug",
|
|
176
|
-
"xpm run clean --config native-cmake-clang12-release",
|
|
177
|
-
"xpm run clean --config native-cmake-clang13-debug",
|
|
178
|
-
"xpm run clean --config native-cmake-clang13-release",
|
|
179
|
-
"xpm run clean --config native-meson-debug",
|
|
180
|
-
"xpm run clean --config native-meson-release",
|
|
181
|
-
"xpm run clean --config native-meson-gcc11-debug",
|
|
182
|
-
"xpm run clean --config native-meson-gcc11-release",
|
|
183
|
-
"xpm run clean --config native-meson-clang12-debug",
|
|
184
|
-
"xpm run clean --config native-meson-clang12-release",
|
|
185
|
-
"xpm run clean --config native-meson-clang13-debug",
|
|
186
|
-
"xpm run clean --config native-meson-clang13-release",
|
|
187
|
-
"xpm run clean --config qemu-mps2-an386-cmake-debug",
|
|
188
|
-
"xpm run clean --config qemu-mps2-an386-cmake-release",
|
|
189
|
-
"xpm run clean --config qemu-mps2-an386-meson-debug",
|
|
190
|
-
"xpm run clean --config qemu-mps2-an386-meson-release"
|
|
191
|
-
],
|
|
192
|
-
"deep-clean": "rm -rf build node_modules xpacks",
|
|
193
|
-
"trigger-workflow-test-all": "bash tests/scripts/trigger-workflow-test-all.sh"
|
|
42
|
+
"deep-clean": "del-cli node_modules package-lock.json",
|
|
43
|
+
"npm-install": "npm install",
|
|
44
|
+
"git-log": "git log --pretty='%cd * %h %s' --date=short",
|
|
45
|
+
"npm-pack": "npm pack",
|
|
46
|
+
"npm-version-patch": "npm version patch",
|
|
47
|
+
"npm-version-minor": "npm version minor",
|
|
48
|
+
"npm-version": "echo $(which node) $(node --version) && echo $(which npm) $(npm --version)"
|
|
194
49
|
},
|
|
195
|
-
"
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
"platformName": "native"
|
|
200
|
-
},
|
|
201
|
-
"actions": {
|
|
202
|
-
"link-deps": [
|
|
203
|
-
"xpm link --config {{ configuration.name }} @micro-os-plus/architecture-synthetic-posix"
|
|
204
|
-
],
|
|
205
|
-
"prepare": "{{ properties.commandCMakePrepare }}",
|
|
206
|
-
"build": [
|
|
207
|
-
"{{ properties.commandCMakeReconfigure }}",
|
|
208
|
-
"{{ properties.commandCMakeBuild }}"
|
|
209
|
-
],
|
|
210
|
-
"test": "{{ properties.commandCMakePerformTests }}",
|
|
211
|
-
"clean": "{{ properties.commandCMakeClean }}"
|
|
212
|
-
},
|
|
213
|
-
"devDependencies": {
|
|
214
|
-
"@micro-os-plus/architecture-synthetic-posix": "4.0.0"
|
|
215
|
-
}
|
|
216
|
-
},
|
|
217
|
-
"native-cmake-release": {
|
|
218
|
-
"inherit": [
|
|
219
|
-
"native-cmake-debug"
|
|
220
|
-
],
|
|
221
|
-
"properties": {
|
|
222
|
-
"buildType": "Release"
|
|
223
|
-
}
|
|
224
|
-
},
|
|
225
|
-
"native-cmake-gcc11-debug": {
|
|
226
|
-
"properties": {
|
|
227
|
-
"buildType": "Debug",
|
|
228
|
-
"platformName": "native",
|
|
229
|
-
"toolchainFileName": "gcc.cmake"
|
|
230
|
-
},
|
|
231
|
-
"actions": {
|
|
232
|
-
"link-deps": [
|
|
233
|
-
"xpm link --config {{ configuration.name }} @micro-os-plus/architecture-synthetic-posix"
|
|
234
|
-
],
|
|
235
|
-
"prepare": "{{ properties.commandCMakePrepareWithToolchain }}",
|
|
236
|
-
"build": [
|
|
237
|
-
"{{ properties.commandCMakeReconfigure }}",
|
|
238
|
-
"{{ properties.commandCMakeBuild }}"
|
|
239
|
-
],
|
|
240
|
-
"test": "{{ properties.commandCMakePerformTests }}",
|
|
241
|
-
"clean": "{{ properties.commandCMakeClean }}"
|
|
242
|
-
},
|
|
243
|
-
"devDependencies": {
|
|
244
|
-
"@xpack-dev-tools/gcc": "11.2.0-3.3",
|
|
245
|
-
"@micro-os-plus/architecture-synthetic-posix": "4.0.0"
|
|
246
|
-
}
|
|
247
|
-
},
|
|
248
|
-
"native-cmake-gcc11-release": {
|
|
249
|
-
"inherit": [
|
|
250
|
-
"native-cmake-gcc11-debug"
|
|
251
|
-
],
|
|
252
|
-
"properties": {
|
|
253
|
-
"buildType": "Release"
|
|
254
|
-
}
|
|
255
|
-
},
|
|
256
|
-
"native-cmake-clang12-debug": {
|
|
257
|
-
"properties": {
|
|
258
|
-
"buildType": "Debug",
|
|
259
|
-
"platformName": "native",
|
|
260
|
-
"toolchainFileName": "clang.cmake"
|
|
261
|
-
},
|
|
262
|
-
"actions": {
|
|
263
|
-
"link-deps": [
|
|
264
|
-
"xpm link --config {{ configuration.name }} @micro-os-plus/architecture-synthetic-posix"
|
|
265
|
-
],
|
|
266
|
-
"prepare": "{{ properties.commandCMakePrepareWithToolchain }}",
|
|
267
|
-
"build": [
|
|
268
|
-
"{{ properties.commandCMakeReconfigure }}",
|
|
269
|
-
"{{ properties.commandCMakeBuild }}"
|
|
270
|
-
],
|
|
271
|
-
"test": "{{ properties.commandCMakePerformTests }}",
|
|
272
|
-
"clean": "{{ properties.commandCMakeClean }}"
|
|
273
|
-
},
|
|
274
|
-
"devDependencies": {
|
|
275
|
-
"@xpack-dev-tools/clang": "12.0.1-2.2",
|
|
276
|
-
"@micro-os-plus/architecture-synthetic-posix": "4.0.0"
|
|
277
|
-
}
|
|
278
|
-
},
|
|
279
|
-
"native-cmake-clang12-release": {
|
|
280
|
-
"inherit": [
|
|
281
|
-
"native-cmake-clang12-debug"
|
|
282
|
-
],
|
|
283
|
-
"properties": {
|
|
284
|
-
"buildType": "Release"
|
|
285
|
-
}
|
|
286
|
-
},
|
|
287
|
-
"native-cmake-clang13-debug": {
|
|
288
|
-
"properties": {
|
|
289
|
-
"buildType": "Debug",
|
|
290
|
-
"platformName": "native",
|
|
291
|
-
"toolchainFileName": "clang.cmake"
|
|
292
|
-
},
|
|
293
|
-
"actions": {
|
|
294
|
-
"link-deps": [
|
|
295
|
-
"xpm link --config {{ configuration.name }} @micro-os-plus/architecture-synthetic-posix"
|
|
296
|
-
],
|
|
297
|
-
"prepare": "{{ properties.commandCMakePrepareWithToolchain }}",
|
|
298
|
-
"build": [
|
|
299
|
-
"{{ properties.commandCMakeReconfigure }}",
|
|
300
|
-
"{{ properties.commandCMakeBuild }}"
|
|
301
|
-
],
|
|
302
|
-
"test": "{{ properties.commandCMakePerformTests }}",
|
|
303
|
-
"clean": "{{ properties.commandCMakeClean }}"
|
|
304
|
-
},
|
|
305
|
-
"devDependencies": {
|
|
306
|
-
"@xpack-dev-tools/clang": "13.0.1-1.1",
|
|
307
|
-
"@micro-os-plus/architecture-synthetic-posix": "4.0.0"
|
|
308
|
-
}
|
|
309
|
-
},
|
|
310
|
-
"native-cmake-clang13-release": {
|
|
311
|
-
"inherit": [
|
|
312
|
-
"native-cmake-clang13-debug"
|
|
313
|
-
],
|
|
314
|
-
"properties": {
|
|
315
|
-
"buildType": "Release"
|
|
316
|
-
}
|
|
317
|
-
},
|
|
318
|
-
"native-meson-debug": {
|
|
319
|
-
"properties": {
|
|
320
|
-
"buildType": "debug",
|
|
321
|
-
"platformName": "native"
|
|
322
|
-
},
|
|
323
|
-
"actions": {
|
|
324
|
-
"link-deps": [
|
|
325
|
-
"xpm link --config {{ configuration.name }} @micro-os-plus/architecture-synthetic-posix"
|
|
326
|
-
],
|
|
327
|
-
"prepare": "{{ properties.commandMesonPrepare }}",
|
|
328
|
-
"build": [
|
|
329
|
-
"{{ properties.commandMesonReconfigure }}",
|
|
330
|
-
"{{ properties.commandMesonBuild }}"
|
|
331
|
-
],
|
|
332
|
-
"test": "{{ properties.commandMesonPerformTests }}",
|
|
333
|
-
"clean": "{{ properties.commandMesonClean }}"
|
|
334
|
-
},
|
|
335
|
-
"devDependencies": {
|
|
336
|
-
"@micro-os-plus/architecture-synthetic-posix": "4.0.0"
|
|
337
|
-
}
|
|
338
|
-
},
|
|
339
|
-
"native-meson-release": {
|
|
340
|
-
"inherit": [
|
|
341
|
-
"native-meson-debug"
|
|
342
|
-
],
|
|
343
|
-
"properties": {
|
|
344
|
-
"buildType": "release"
|
|
345
|
-
}
|
|
346
|
-
},
|
|
347
|
-
"native-meson-gcc11-debug": {
|
|
348
|
-
"properties": {
|
|
349
|
-
"buildType": "debug",
|
|
350
|
-
"platformName": "native",
|
|
351
|
-
"toolchainFileName": "gcc-{{ os.platform }}.ini"
|
|
352
|
-
},
|
|
353
|
-
"actions": {
|
|
354
|
-
"link-deps": [
|
|
355
|
-
"xpm link --config {{ configuration.name }} @micro-os-plus/architecture-synthetic-posix"
|
|
356
|
-
],
|
|
357
|
-
"prepare": "{{ properties.commandMesonPrepareWithToolchain }}",
|
|
358
|
-
"build": [
|
|
359
|
-
"{{ properties.commandMesonReconfigure }}",
|
|
360
|
-
"{{ properties.commandMesonBuild }}"
|
|
361
|
-
],
|
|
362
|
-
"test": "{{ properties.commandMesonPerformTests }}",
|
|
363
|
-
"clean": "{{ properties.commandMesonClean }}"
|
|
364
|
-
},
|
|
365
|
-
"devDependencies": {
|
|
366
|
-
"@xpack-dev-tools/gcc": "11.2.0-3.3",
|
|
367
|
-
"@micro-os-plus/architecture-synthetic-posix": "4.0.0"
|
|
368
|
-
}
|
|
369
|
-
},
|
|
370
|
-
"native-meson-gcc11-release": {
|
|
371
|
-
"inherit": [
|
|
372
|
-
"native-meson-gcc11-debug"
|
|
373
|
-
],
|
|
374
|
-
"properties": {
|
|
375
|
-
"buildType": "release"
|
|
376
|
-
}
|
|
377
|
-
},
|
|
378
|
-
"native-meson-clang12-debug": {
|
|
379
|
-
"properties": {
|
|
380
|
-
"buildType": "debug",
|
|
381
|
-
"platformName": "native",
|
|
382
|
-
"toolchainFileName": "clang-{{ os.platform }}.ini"
|
|
383
|
-
},
|
|
384
|
-
"actions": {
|
|
385
|
-
"link-deps": [
|
|
386
|
-
"xpm link --config {{ configuration.name }} @micro-os-plus/architecture-synthetic-posix"
|
|
387
|
-
],
|
|
388
|
-
"prepare": "{{ properties.commandMesonPrepareWithToolchain }}",
|
|
389
|
-
"build": [
|
|
390
|
-
"{{ properties.commandMesonReconfigure }}",
|
|
391
|
-
"{{ properties.commandMesonBuild }}"
|
|
392
|
-
],
|
|
393
|
-
"test": "{{ properties.commandMesonPerformTests }}",
|
|
394
|
-
"clean": "{{ properties.commandMesonClean }}"
|
|
395
|
-
},
|
|
396
|
-
"devDependencies": {
|
|
397
|
-
"@xpack-dev-tools/clang": "12.0.1-2.2",
|
|
398
|
-
"@micro-os-plus/architecture-synthetic-posix": "4.0.0"
|
|
399
|
-
}
|
|
400
|
-
},
|
|
401
|
-
"native-meson-clang12-release": {
|
|
402
|
-
"inherit": [
|
|
403
|
-
"native-meson-clang12-debug"
|
|
404
|
-
],
|
|
405
|
-
"properties": {
|
|
406
|
-
"buildType": "release"
|
|
407
|
-
}
|
|
408
|
-
},
|
|
409
|
-
"native-meson-clang13-debug": {
|
|
410
|
-
"properties": {
|
|
411
|
-
"buildType": "debug",
|
|
412
|
-
"platformName": "native",
|
|
413
|
-
"toolchainFileName": "clang-{{ os.platform }}.ini"
|
|
414
|
-
},
|
|
415
|
-
"actions": {
|
|
416
|
-
"link-deps": [
|
|
417
|
-
"xpm link --config {{ configuration.name }} @micro-os-plus/architecture-synthetic-posix"
|
|
418
|
-
],
|
|
419
|
-
"prepare": "{{ properties.commandMesonPrepareWithToolchain }}",
|
|
420
|
-
"build": [
|
|
421
|
-
"{{ properties.commandMesonReconfigure }}",
|
|
422
|
-
"{{ properties.commandMesonBuild }}"
|
|
423
|
-
],
|
|
424
|
-
"test": "{{ properties.commandMesonPerformTests }}",
|
|
425
|
-
"clean": "{{ properties.commandMesonClean }}"
|
|
426
|
-
},
|
|
427
|
-
"devDependencies": {
|
|
428
|
-
"@xpack-dev-tools/clang": "13.0.1-1.1",
|
|
429
|
-
"@micro-os-plus/architecture-synthetic-posix": "4.0.0"
|
|
430
|
-
}
|
|
431
|
-
},
|
|
432
|
-
"native-meson-clang13-release": {
|
|
433
|
-
"inherit": [
|
|
434
|
-
"native-meson-clang13-debug"
|
|
435
|
-
],
|
|
436
|
-
"properties": {
|
|
437
|
-
"buildType": "release"
|
|
438
|
-
}
|
|
439
|
-
},
|
|
440
|
-
"qemu-mps2-an386-cmake-debug": {
|
|
441
|
-
"properties": {
|
|
442
|
-
"buildType": "Debug",
|
|
443
|
-
"platformName": "qemu-mps2-an386",
|
|
444
|
-
"toolchainFileName": "arm-none-eabi-gcc.cmake",
|
|
445
|
-
"qemuBoardName": "QEMU mps2-an386",
|
|
446
|
-
"shortConfigurationName": "q1d",
|
|
447
|
-
"buildFolderRelativePath": "{% if os.platform != 'win32' %}{{ 'build' | path_join: configuration.name | to_filename | downcase }}{% else %}{{ 'build' | path_join: properties.shortConfigurationName | to_filename | downcase }}{% endif %}",
|
|
448
|
-
"buildFolderRelativePathPosix": "{% if os.platform != 'win32' %}{{ 'build' | path_posix_join: configuration.name | downcase }}{% else %}{{ 'build' | path_posix_join: properties.shortConfigurationName | downcase }}{% endif %}"
|
|
449
|
-
},
|
|
450
|
-
"actions": {
|
|
451
|
-
"link-deps": [
|
|
452
|
-
"xpm link --config {{ configuration.name }} @micro-os-plus/architecture-cortexm",
|
|
453
|
-
"xpm link --config {{ configuration.name }} @micro-os-plus/devices-cortexm",
|
|
454
|
-
"xpm link --config {{ configuration.name }} @micro-os-plus/devices-qemu-cortexm",
|
|
455
|
-
"xpm link --config {{ configuration.name }} @micro-os-plus/semihosting",
|
|
456
|
-
"xpm link --config {{ configuration.name }} @micro-os-plus/startup",
|
|
457
|
-
"xpm link --config {{ configuration.name }} @micro-os-plus/version",
|
|
458
|
-
"xpm link --config {{ configuration.name }} @xpack-3rd-party/arm-cmsis-core"
|
|
459
|
-
],
|
|
460
|
-
"prepare": "{{ properties.commandCMakePrepareWithToolchain }}",
|
|
461
|
-
"build": [
|
|
462
|
-
"{{ properties.commandCMakeReconfigure }}",
|
|
463
|
-
"{{ properties.commandCMakeBuild }}"
|
|
464
|
-
],
|
|
465
|
-
"test": "{{ properties.commandCMakePerformTests }}",
|
|
466
|
-
"clean": "{{ properties.commandCMakeClean }}"
|
|
467
|
-
},
|
|
468
|
-
"devDependencies": {
|
|
469
|
-
"@xpack-dev-tools/arm-none-eabi-gcc": "11.2.1-1.2.2",
|
|
470
|
-
"@xpack-dev-tools/qemu-arm": "7.0.0-1.1",
|
|
471
|
-
"@micro-os-plus/architecture-cortexm": "6.2.0",
|
|
472
|
-
"@micro-os-plus/devices-cortexm": "3.0.0",
|
|
473
|
-
"@micro-os-plus/devices-qemu-cortexm": "4.1.1",
|
|
474
|
-
"@micro-os-plus/semihosting": "7.1.0",
|
|
475
|
-
"@micro-os-plus/startup": "5.2.0",
|
|
476
|
-
"@micro-os-plus/version": "7.1.2",
|
|
477
|
-
"@xpack-3rd-party/arm-cmsis-core": "5.4.0-6"
|
|
478
|
-
}
|
|
479
|
-
},
|
|
480
|
-
"qemu-mps2-an386-cmake-release": {
|
|
481
|
-
"inherit": [
|
|
482
|
-
"qemu-mps2-an386-cmake-debug"
|
|
483
|
-
],
|
|
484
|
-
"properties": {
|
|
485
|
-
"buildType": "MinSizeRel",
|
|
486
|
-
"shortConfigurationName": "q1r"
|
|
487
|
-
},
|
|
488
|
-
"actions": {
|
|
489
|
-
"link-deps": [
|
|
490
|
-
"xpm link --config {{ configuration.name }} @micro-os-plus/architecture-cortexm",
|
|
491
|
-
"xpm link --config {{ configuration.name }} @micro-os-plus/devices-cortexm",
|
|
492
|
-
"xpm link --config {{ configuration.name }} @micro-os-plus/devices-qemu-cortexm",
|
|
493
|
-
"xpm link --config {{ configuration.name }} @micro-os-plus/semihosting",
|
|
494
|
-
"xpm link --config {{ configuration.name }} @micro-os-plus/startup",
|
|
495
|
-
"xpm link --config {{ configuration.name }} @micro-os-plus/version",
|
|
496
|
-
"xpm link --config {{ configuration.name }} @xpack-3rd-party/arm-cmsis-core"
|
|
497
|
-
],
|
|
498
|
-
"prepare": "{{ properties.commandCMakePrepareWithToolchain }}",
|
|
499
|
-
"build": [
|
|
500
|
-
"{{ properties.commandCMakeReconfigure }}",
|
|
501
|
-
"{{ properties.commandCMakeBuild }}"
|
|
502
|
-
],
|
|
503
|
-
"test": "{{ properties.commandCMakePerformTests }}",
|
|
504
|
-
"clean": "{{ properties.commandCMakeClean }}"
|
|
505
|
-
},
|
|
506
|
-
"devDependencies": {
|
|
507
|
-
"@xpack-dev-tools/arm-none-eabi-gcc": "11.2.1-1.2.2",
|
|
508
|
-
"@xpack-dev-tools/qemu-arm": "7.0.0-1.1",
|
|
509
|
-
"@micro-os-plus/architecture-cortexm": "6.2.0",
|
|
510
|
-
"@micro-os-plus/devices-cortexm": "3.0.0",
|
|
511
|
-
"@micro-os-plus/devices-qemu-cortexm": "4.1.1",
|
|
512
|
-
"@micro-os-plus/semihosting": "7.1.0",
|
|
513
|
-
"@micro-os-plus/startup": "5.2.0",
|
|
514
|
-
"@micro-os-plus/version": "7.1.2",
|
|
515
|
-
"@xpack-3rd-party/arm-cmsis-core": "5.4.0-6"
|
|
516
|
-
}
|
|
517
|
-
},
|
|
518
|
-
"qemu-mps2-an386-meson-debug": {
|
|
519
|
-
"properties": {
|
|
520
|
-
"buildType": "debug",
|
|
521
|
-
"platformName": "qemu-mps2-an386",
|
|
522
|
-
"toolchainFileName": "arm-none-eabi-gcc-{{ os.platform }}.ini",
|
|
523
|
-
"qemuBoardName": "QEMU mps2-an386"
|
|
524
|
-
},
|
|
525
|
-
"actions": {
|
|
526
|
-
"link-deps": [
|
|
527
|
-
"xpm link --config {{ configuration.name }} @micro-os-plus/architecture-cortexm",
|
|
528
|
-
"xpm link --config {{ configuration.name }} @micro-os-plus/devices-cortexm",
|
|
529
|
-
"xpm link --config {{ configuration.name }} @micro-os-plus/devices-qemu-cortexm",
|
|
530
|
-
"xpm link --config {{ configuration.name }} @micro-os-plus/semihosting",
|
|
531
|
-
"xpm link --config {{ configuration.name }} @micro-os-plus/startup",
|
|
532
|
-
"xpm link --config {{ configuration.name }} @micro-os-plus/version",
|
|
533
|
-
"xpm link --config {{ configuration.name }} @xpack-3rd-party/arm-cmsis-core"
|
|
534
|
-
],
|
|
535
|
-
"prepare": "{{ properties.commandMesonPrepareCross }}",
|
|
536
|
-
"build": [
|
|
537
|
-
"{{ properties.commandMesonReconfigure }}",
|
|
538
|
-
"{{ properties.commandMesonBuild }}"
|
|
539
|
-
],
|
|
540
|
-
"test": "{{ properties.commandMesonPerformTests }}",
|
|
541
|
-
"clean": "{{ properties.commandMesonClean }}"
|
|
542
|
-
},
|
|
543
|
-
"devDependencies": {
|
|
544
|
-
"@xpack-dev-tools/arm-none-eabi-gcc": "11.2.1-1.2.2",
|
|
545
|
-
"@xpack-dev-tools/qemu-arm": "7.0.0-1.1",
|
|
546
|
-
"@micro-os-plus/architecture-cortexm": "6.2.0",
|
|
547
|
-
"@micro-os-plus/devices-cortexm": "3.0.0",
|
|
548
|
-
"@micro-os-plus/devices-qemu-cortexm": "4.1.1",
|
|
549
|
-
"@micro-os-plus/semihosting": "7.1.0",
|
|
550
|
-
"@micro-os-plus/startup": "5.2.0",
|
|
551
|
-
"@micro-os-plus/version": "7.1.2",
|
|
552
|
-
"@xpack-3rd-party/arm-cmsis-core": "5.4.0-6"
|
|
553
|
-
}
|
|
554
|
-
},
|
|
555
|
-
"qemu-mps2-an386-meson-release": {
|
|
556
|
-
"inherit": [
|
|
557
|
-
"qemu-mps2-an386-meson-debug"
|
|
558
|
-
],
|
|
559
|
-
"properties": {
|
|
560
|
-
"buildType": "minsize"
|
|
561
|
-
}
|
|
562
|
-
}
|
|
563
|
-
}
|
|
50
|
+
"dependencies": {},
|
|
51
|
+
"devDependencies": {},
|
|
52
|
+
"properties": {},
|
|
53
|
+
"buildConfigurations": {}
|
|
564
54
|
}
|
|
565
55
|
}
|
package/src/micro-test-plus.cpp
CHANGED
|
@@ -33,6 +33,7 @@
|
|
|
33
33
|
#pragma clang diagnostic ignored "-Wc++98-compat"
|
|
34
34
|
#pragma clang diagnostic ignored "-Wexit-time-destructors"
|
|
35
35
|
#pragma clang diagnostic ignored "-Wglobal-constructors"
|
|
36
|
+
#pragma clang diagnostic ignored "-Wunknown-warning-option"
|
|
36
37
|
#endif
|
|
37
38
|
|
|
38
39
|
namespace micro_os_plus::micro_test_plus
|
|
@@ -40,6 +41,18 @@ namespace micro_os_plus::micro_test_plus
|
|
|
40
41
|
// --------------------------------------------------------------------------
|
|
41
42
|
// Public API.
|
|
42
43
|
|
|
44
|
+
/**
|
|
45
|
+
* @details
|
|
46
|
+
* All tests include a default test suite, which runs the test cases
|
|
47
|
+
* defined in the main function.
|
|
48
|
+
*
|
|
49
|
+
* This function forwards the process arguments to the test framework
|
|
50
|
+
* and initialises the runner.
|
|
51
|
+
*
|
|
52
|
+
* The name is used to identify the default test suite.
|
|
53
|
+
*
|
|
54
|
+
* The arguments can be used to control the verbosity level.
|
|
55
|
+
*/
|
|
43
56
|
void
|
|
44
57
|
initialize (int argc, char* argv[], const char* name)
|
|
45
58
|
{
|
|
@@ -49,6 +62,18 @@ namespace micro_os_plus::micro_test_plus
|
|
|
49
62
|
runner.initialize (argc, argv, name);
|
|
50
63
|
}
|
|
51
64
|
|
|
65
|
+
/**
|
|
66
|
+
* @details
|
|
67
|
+
* In addition to the test cases defined in `main()`, there can be
|
|
68
|
+
* more separate **test suites**, defined as static objects in the same
|
|
69
|
+
* file or in other files,
|
|
70
|
+
* and self-registered via the static constructors mechanism.
|
|
71
|
+
*
|
|
72
|
+
* This function triggers the execution of the globally
|
|
73
|
+
* registered test suites
|
|
74
|
+
* (if any) and returns the test result as the process exit code
|
|
75
|
+
* (0 = success).
|
|
76
|
+
*/
|
|
52
77
|
int
|
|
53
78
|
exit_code (void)
|
|
54
79
|
{
|
|
@@ -63,17 +88,37 @@ namespace micro_os_plus::micro_test_plus
|
|
|
63
88
|
const char*
|
|
64
89
|
short_name (const char* name)
|
|
65
90
|
{
|
|
91
|
+
#pragma GCC diagnostic push
|
|
92
|
+
#if defined(__clang__)
|
|
93
|
+
#pragma clang diagnostic ignored "-Wunsafe-buffer-usage"
|
|
94
|
+
#endif
|
|
66
95
|
const char* p = strrchr (name, '/');
|
|
67
96
|
if (p != nullptr)
|
|
68
97
|
return p + 1;
|
|
69
98
|
else
|
|
70
99
|
return name;
|
|
100
|
+
#pragma GCC diagnostic pop
|
|
71
101
|
}
|
|
72
102
|
|
|
73
103
|
} // namespace reflection
|
|
74
104
|
|
|
75
105
|
namespace utility
|
|
76
106
|
{
|
|
107
|
+
/**
|
|
108
|
+
* @details
|
|
109
|
+
* For tests comparing strings, in addition to exact matches,
|
|
110
|
+
* it is also possible to check matches with patterns like `*`
|
|
111
|
+
* (for any characters) and `?` (for a single character)
|
|
112
|
+
*
|
|
113
|
+
* @par Examples
|
|
114
|
+
*
|
|
115
|
+
* ```cpp
|
|
116
|
+
* namespace mt = micro_os_plus::micro_test_plus;
|
|
117
|
+
*
|
|
118
|
+
* mt::expect (mt::utility::is_match ("abc", "a?c")) << "abc matches a?c";
|
|
119
|
+
* mt::expect (mt::utility::is_match ("abc", "a*c")) << "abc matches a*c";
|
|
120
|
+
* ```
|
|
121
|
+
*/
|
|
77
122
|
[[nodiscard]] bool
|
|
78
123
|
is_match (std::string_view input, std::string_view pattern)
|
|
79
124
|
{
|