Skip to content

Commit 9e850c1

Browse files
committed
tooling: Add test UUIDs
In order for Cloe to be used in certain contexts, quality measures need to be uniquely identifiable and trackable in the code base. To this end, we are adding UUIDs to all system test cases. These will not necessarily be referred to inside the repository, but additions, moves, and removals can be easily tracked with Git.
1 parent 9001753 commit 9e850c1

9 files changed

+92
-68
lines changed

Makefile

+3
Original file line numberDiff line numberDiff line change
@@ -116,6 +116,9 @@ todos:
116116
${AG} FIXME
117117
${AG} XXX
118118

119+
grep-uuids:
120+
${AG} "\b[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}\b"
121+
119122
find-missing-eol:
120123
find . -type f -size +0 -exec gawk 'ENDFILE{if ($0 == "") print FILENAME}' {} \;
121124

tests/README.md

+14
Original file line numberDiff line numberDiff line change
@@ -100,3 +100,17 @@ JSON stack file.
100100

101101
Each stack file tests a part of the Cloe runtime functionality, and is usually
102102
accompanied by a Bats file.
103+
104+
Test UUIDs
105+
==========
106+
107+
In order to make tracking quality measures possible, we assign tests UUIDs.
108+
These can be generated with the `uuidgen` program, for example. When creating
109+
a large amount of UUIDs, it can be useful to augment one's editor with the
110+
capability of inserting one quickly. For example, to map it to Ctrl+Y in Vim:
111+
112+
:imap <c-y> <esc>:read !uuidgen<cr>kJi
113+
114+
Search the project for UUIDs with:
115+
116+
make grep-uuids

tests/setup_bats.bash

+7
Original file line numberDiff line numberDiff line change
@@ -140,3 +140,10 @@ test_plugin_exists() {
140140

141141
cloe_engine usage "${plugin}" &>/dev/null
142142
}
143+
144+
testname() {
145+
local expect="$1"
146+
local schema="$2"
147+
local uuid="$3"
148+
printf "%-24s: %-46s : %s" "$expect" "$schema" "$uuid"
149+
}

tests/test_all_plugin_usages.bats

+2-2
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ setup() {
1616
export cloe_plugins
1717
}
1818

19-
@test "Expect run success : cloe-engine usage" {
19+
@test $(testname "Expect run success" "cloe-engine usage" "93c5a785-8f07-4df2-92ee-6d47e728f201") {
2020
for file in "${cloe_plugins[@]}"; do
2121
echo "Checking: $file"
2222
run cloe_engine usage $file
@@ -28,7 +28,7 @@ setup() {
2828
done
2929
}
3030

31-
@test "Expect run success : cloe-engine usage -j" {
31+
@test $(testname "Expect run success" "cloe-engine usage -j" "7576ad69-1d16-43f8-9809-af0bf408e4f1") {
3232
if ! type jq &>/dev/null; then
3333
skip "required program jq not present"
3434
fi

tests/test_engine.bats

+46-46
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ test_vtd_plugin_exists() {
77
cloe_shell -c 'test -d "${VTD_ROOT}"'
88
}
99

10-
@test "Expect schema equality : test_engine_json_schema.json" {
10+
@test $(testname "Expect schema equality" "test_engine_json_schema.json" "4d368665-b666-4289-8a7a-b76ca53db688") {
1111
# Note: you will have to update the schema files every time you change the schema,
1212
# in order that this test completes successfully. Here's how you do it.
1313
#
@@ -26,245 +26,245 @@ test_vtd_plugin_exists() {
2626
fi
2727
}
2828

29-
@test "Expect check success : test_engine_smoketest.json" {
29+
@test $(testname "Expect check success" "test_engine_smoketest.json" "20c3f11e-4a93-4066-b61e-d485be5c8979") {
3030
cloe_engine check test_engine_smoketest.json
3131
}
3232

33-
@test "Expect run success : test_engine_smoketest.json" {
33+
@test $(testname "Expect run success" "test_engine_smoketest.json" "b590e751-dace-4139-913c-a4a812af70ac") {
3434
cloe_engine run test_engine_smoketest.json
3535
}
3636

37-
@test "Expect check failure : test_engine_bad_logging.json" {
37+
@test $(testname "Expect check failure" "test_engine_bad_logging.json" "107c36fe-7bd9-4559-b5e9-74b72baafd9f") {
3838
run cloe_engine check test_bad_logging.json
3939
assert_check_failure $status $output
4040
test $status -eq $exit_outcome_unknown
4141
}
4242

43-
@test "Expect check success : test_engine_curl_succeed.json" {
43+
@test $(testname "Expect check success" "test_engine_curl_succeed.json" "5eff0c85-77f1-4792-9987-e46a36617d99") {
4444
if ! type curl &>/dev/null; then
4545
skip "required program curl not present"
4646
fi
4747

4848
cloe_engine check test_engine_curl_succeed.json
4949
}
5050

51-
@test "Expect run success : test_engine_curl_succeed.json" {
51+
@test $(testname "Expect run success" "test_engine_curl_succeed.json" "f473cb96-7f2e-4ac1-801a-fd93343f6e24") {
5252
if ! type curl &>/dev/null; then
5353
skip "required program curl not present"
5454
fi
5555
cloe_engine run test_engine_curl_succeed.json
5656
}
5757

58-
@test "Expect run failure : test_engine_curl_succeed.json" {
58+
@test $(testname "Expect run failure" "test_engine_curl_succeed.json" "7aa4b455-ad74-4e5f-bf82-43761d7cd81b") {
5959
# When disabling the `enable_command_action` flag, curl
6060
# should not be used and the simulation should fail by default.
6161
run cloe_engine run test_engine_curl_succeed.json \
6262
<(echo '{ "version": "4", "engine": { "security": { "enable_command_action": false } } }')
6363
test $status -eq $exit_outcome_failure
6464
}
6565

66-
@test "Expect check failure : test_engine_empty.json" {
66+
@test $(testname "Expect check failure" "test_engine_empty.json" "d04369fb-e4af-4f80-aaa8-8352d3dec42e") {
6767
run cloe_engine check test_engine_empty.json
6868
assert_check_failure $status $output
6969
test $status -eq $exit_outcome_unknown
7070
test $(echo $output 2>&1 | wc -l) -lt 32
7171
}
7272

73-
@test "Expect check failure : test_engine_version_absent.json" {
73+
@test $(testname "Expect check failure" "test_engine_version_absent.json" "4de20aed-2a8f-442b-bdb3-1da76237ee1e") {
7474
run cloe_engine check test_engine_version_absent.json
7575
assert_check_failure $status $output
7676
test $status -eq $exit_outcome_unknown
7777
test $(echo $output 2>&1 | wc -l) -lt 32
7878
}
7979

80-
@test "Expect check failure : test_engine_version_wrong.json" {
80+
@test $(testname "Expect check failure" "test_engine_version_wrong.json" "2c883a3d-b877-4fca-88a1-8078208f0d2b") {
8181
run cloe_engine check test_engine_version_wrong.json
8282
assert_check_failure $status $output
8383
test $status -eq $exit_outcome_unknown
8484
test $(echo $output 2>&1 | wc -l) -lt 32
8585
}
8686

87-
@test "Expect check success : test_engine_fail_trigger.json" {
87+
@test $(testname "Expect check success" "test_engine_fail_trigger.json" "cd540e21-63e9-421f-8e7b-e113339253a2") {
8888
cloe_engine check test_engine_fail_trigger.json
8989
}
9090

91-
@test "Expect run failure : test_engine_fail_trigger.json" {
91+
@test $(testname "Expect run failure" "test_engine_fail_trigger.json" "c9bc16de-4902-4abf-90ac-d4bef0d0b26e") {
9292
run cloe_engine run test_engine_fail_trigger.json
9393
assert_exit_failure $status
9494
test $status -eq $exit_outcome_failure
9595
echo "$output" | grep '"outcome": "failure"'
9696
}
9797

98-
@test "Expect check failure : test_engine_hook_invalid.json" {
98+
@test $(testname "Expect check failure" "test_engine_hook_invalid.json" "cc3d8879-5ca5-4ffb-a78e-c9723ac82b91") {
9999
run cloe_engine check test_engine_hook_invalid.json
100100
assert_check_failure $status $output
101101
test $status -eq $exit_outcome_unknown
102102
}
103103

104-
@test "Expect check failure : test_engine_hook_noexec.json" {
104+
@test $(testname "Expect check failure" "test_engine_hook_noexec.json" "3f35bb1f-307a-42e3-a2ea-739e60cab084") {
105105
run cloe_engine check test_engine_hook_noexec.json
106106
assert_check_failure $status $output
107107
test $status -eq $exit_outcome_unknown
108108
}
109109

110-
@test "Expect check success : test_engine_hook_failure.json" {
110+
@test $(testname "Expect check success" "test_engine_hook_failure.json" "d6d8fe35-c513-4e43-8984-e9da0958c0fd") {
111111
cloe_engine check test_engine_hook_failure.json
112112
}
113113

114-
@test "Expect run failure : test_engine_hook_failure.json" {
114+
@test $(testname "Expect run failure" "test_engine_hook_failure.json" "798ee383-667d-4971-af2f-51c49c47b750") {
115115
run cloe_engine run test_engine_hook_failure.json
116116
test $status -eq $exit_outcome_aborted
117117
}
118118

119-
@test "Expect check success : test_engine_hook_ok.json" {
119+
@test $(testname "Expect check success" "test_engine_hook_ok.json" "2e3064bf-0e6d-4934-b25f-78cae54bd4d1") {
120120
cloe_engine check test_engine_hook_ok.json
121121
}
122122

123-
@test "Expect run success : test_engine_hook_ok.json" {
123+
@test $(testname "Expect run success" "test_engine_hook_ok.json" "303afa7e-3ebe-4db3-a802-84b2cdba97c5") {
124124
cloe_engine run test_engine_hook_ok.json
125125
}
126126

127-
@test "Expect check success : test_engine_ignore.json" {
127+
@test $(testname "Expect check success" "test_engine_ignore.json" "78a470a4-cbe1-4436-a43f-d956685b8bc9") {
128128
cloe_engine check test_engine_ignore.json
129129
}
130130

131-
@test "Expect run success : test_engine_ignore.json" {
131+
@test $(testname "Expect run success" "test_engine_ignore.json" "1738bf42-3784-4e9c-b4d4-76e94c8e5271") {
132132
cloe_engine run test_engine_ignore.json
133133
}
134134

135-
@test "Expect check failure : test_engine_include_nonexistent.json" {
135+
@test $(testname "Expect check failure" "test_engine_include_nonexistent.json" "bad115cc-0397-48e6-9a51-bdcfeaf6b024") {
136136
run cloe_engine check test_engine_include_nonexistent.json
137137
assert_check_failure $status $output
138138
test $status -eq $exit_outcome_unknown
139139
}
140140

141-
@test "Expect check failure : test_engine_include_self.json" {
141+
@test $(testname "Expect check failure" "test_engine_include_self.json" "7b3e4010-19a0-4518-b8d7-00655af93755") {
142142
run cloe_engine check test_engine_include_self.json
143143
assert_check_failure $status $output
144144
test $status -eq $exit_outcome_unknown
145145
}
146146

147-
@test "Expect check failure : test_engine_incomplete.json" {
147+
@test $(testname "Expect check failure" "test_engine_incomplete.json" "8baa711a-9279-4527-9ecc-6b685551a45f") {
148148
run cloe_engine check test_engine_incomplete.json
149149
assert_check_failure $status $output
150150
test $status -eq $exit_outcome_unknown
151151
}
152152

153-
@test "Expect run failure : test_engine_incomplete.json" {
153+
@test $(testname "Expect run failure" "test_engine_incomplete.json" "75a0c642-2373-4d6d-bd40-61e0f7840c57") {
154154
run cloe_engine run test_engine_incomplete.json
155155
test $status -eq $exit_outcome_unknown
156156
}
157157

158-
@test "Expect check success : test_engine_keep_alive.json" {
158+
@test $(testname "Expect check success" "test_engine_keep_alive.json" "254544dc-c17a-4a5c-8685-723ed1c758cf") {
159159
if ! type kill &>/dev/null; then
160160
skip "required program kill not present"
161161
fi
162162

163163
cloe_engine check test_engine_keep_alive.json
164164
}
165165

166-
@test "Expect run success : test_engine_keep_alive.json" {
166+
@test $(testname "Expect run success" "test_engine_keep_alive.json" "0c5ace05-f5ca-4615-9c14-62a75b69651a") {
167167
if ! type kill &>/dev/null; then
168168
skip "required program kill not present"
169169
fi
170170

171171
cloe_engine run test_engine_keep_alive.json
172172
}
173173

174-
@test "Expect check success : test_engine_namespaced_smoketest.json" {
174+
@test $(testname "Expect check success" "test_engine_namespaced_smoketest.json" "c9d4f8d3-aec7-404e-95f5-7a14cd8674c7") {
175175
cloe_engine check test_engine_namespaced_smoketest.json
176176
}
177177

178-
@test "Expect run success : test_engine_namespaced_smoketest.json" {
178+
@test $(testname "Expect run success" "test_engine_namespaced_smoketest.json" "c2fd481b-f135-4fb5-86f0-699af0f93497") {
179179
cloe_engine run test_engine_namespaced_smoketest.json
180180
}
181181

182-
@test "Expect check failure : test_engine_no_binding.json" {
182+
@test $(testname "Expect check failure" "test_engine_no_binding.json" "111a4f1f-7679-48a8-88de-a6773dab055e") {
183183
run cloe_engine check test_engine_no_binding.json
184184
assert_check_failure $status $output
185185
test $status -eq $exit_outcome_unknown
186186
}
187187

188-
@test "Expect run failure : test_engine_no_binding.json" {
188+
@test $(testname "Expect run failure" "test_engine_no_binding.json" "dc682e38-38e5-43d7-8989-b477cb0f6c2a") {
189189
run cloe_engine run test_engine_no_binding.json
190190
assert_check_failure $status $output
191191
test $status -eq $exit_outcome_unknown
192192
}
193193

194-
@test "Expect check failure : test_engine_no_vehicle.json" {
194+
@test $(testname "Expect check failure" "test_engine_no_vehicle.json" "319a342a-88d2-4b07-a4de-1fef78b13d72") {
195195
run cloe_engine check test_engine_no_vehicle.json
196196
assert_check_failure $status $output
197197
test $status -eq $exit_outcome_unknown
198198
}
199199

200-
@test "Expect run failure : test_engine_no_vehicle.json" {
200+
@test $(testname "Expect run failure" "test_engine_no_vehicle.json" "4b4fcd8b-add1-451c-ad7b-9c0a3efb6525") {
201201
run cloe_engine run test_engine_no_vehicle.json
202202
test $status -eq $exit_outcome_unknown
203203
}
204204

205-
@test "Expect check failure : test_engine_unknown_vehicle.json" {
205+
@test $(testname "Expect check failure" "test_engine_unknown_vehicle.json" "3f754bea-4806-4f43-9c60-a78b13b43f6f") {
206206
run cloe_engine check test_engine_unknown_vehicle.json
207207
assert_check_failure $status $output
208208
test $status -eq $exit_outcome_unknown
209209
}
210210

211-
@test "Expect run failure : test_engine_unknown_vehicle.json" {
211+
@test $(testname "Expect run failure" "test_engine_unknown_vehicle.json" "da3d7c55-6024-481b-bee4-32233df6c330") {
212212
run cloe_engine run test_engine_unknown_vehicle.json
213213
test $status -eq $exit_outcome_unknown
214214
}
215215

216-
@test "Expect check success : test_engine_pause.json" {
216+
@test $(testname "Expect check success" "test_engine_pause.json" "24528c78-f681-44ff-8b9c-5c172acf19b9") {
217217
if ! type curl &>/dev/null; then
218218
skip "required program curl not present"
219219
fi
220220

221221
cloe_engine check test_engine_pause.json
222222
}
223223

224-
@test "Expect run success : test_engine_pause.json" {
224+
@test $(testname "Expect run success" "test_engine_pause.json" "845e3c9b-2a6d-469a-93a7-67fe9531c81e") {
225225
if ! type curl &>/dev/null; then
226226
skip "required program curl not present"
227227
fi
228228

229229
cloe_engine run test_engine_pause.json
230230
}
231231

232-
@test "Expect check success : test_engine_sticky_trigger.json" {
232+
@test $(testname "Expect check success" "test_engine_sticky_trigger.json" "76400941-50f5-4185-9107-335005079569") {
233233
cloe_engine check test_engine_sticky_trigger.json
234234
}
235235

236-
@test "Expect run success : test_engine_sticky_trigger.json" {
236+
@test $(testname "Expect run success" "test_engine_sticky_trigger.json" "dcfbdd81-8bb0-4de3-ac68-486aa5a9ce66") {
237237
skip "not implemented yet"
238238
cloe_engine run test_engine_sticky_trigger.json
239239
}
240240

241-
@test "Expect check success : test_engine_stuck_controller.json" {
241+
@test $(testname "Expect check success" "test_engine_stuck_controller.json" "72f151f7-26c3-4a79-a0ec-8b0d4e678442") {
242242
cloe_engine check test_engine_stuck_controller.json
243243
}
244244

245-
@test "Expect run aborted : test_engine_stuck_controller.json" {
245+
@test $(testname "Expect run aborted" "test_engine_stuck_controller.json" "13a244da-f18e-4dec-af5c-d5dcb4c2cd36") {
246246
run cloe_engine run test_engine_stuck_controller.json
247247
assert_exit_failure $status
248248
echo "$output" | grep '"outcome": "aborted"'
249249
}
250250

251-
@test "Expect check success : test_engine_stuck_controller_continue.json" {
251+
@test $(testname "Expect check success" "test_engine_stuck_controller_continue.json" "19b3d407-c980-4507-9bd2-9d6dca5e1320") {
252252
cloe_engine check test_engine_stuck_controller_continue.json
253253
}
254254

255-
@test "Expect run success : test_engine_stuck_controller_continue.json" {
255+
@test $(testname "Expect run success" "test_engine_stuck_controller_continue.json" "5692f85d-87a2-4866-9875-647802ce1d62") {
256256
cloe_engine run test_engine_stuck_controller_continue.json
257257
}
258258

259-
@test "Expect check success : test_engine_watchdog.json" {
259+
@test $(testname "Expect check success" "test_engine_watchdog.json" "30e097cf-6e51-484b-a212-690769cd4c91") {
260260
if ! type curl &>/dev/null; then
261261
skip "required program curl not present"
262262
fi
263263

264264
cloe_engine check test_engine_watchdog.json
265265
}
266266

267-
@test "Expect run syskill : test_engine_watchdog.json" {
267+
@test $(testname "Expect run syskill" "test_engine_watchdog.json" "058ff9b7-98dc-4583-8e80-c70e9c5e1f4e") {
268268
if ! type curl &>/dev/null; then
269269
skip "required program curl not present"
270270
fi
@@ -276,13 +276,13 @@ test_vtd_plugin_exists() {
276276
test $status -eq $exit_outcome_syskill
277277
}
278278

279-
@test "Expect check/run success: test_engine_smoketest.json [ts=5ms]" {
279+
@test $(testname "Expect check/run success" "test_engine_smoketest.json [ts=5ms]" "1a31022c-e20c-4a9e-9373-ad54a3729442") {
280280
BATS_OPTIONAL_STACKS="option_timestep_5.json"
281281
cloe_engine check test_engine_smoketest.json
282282
cloe_engine run test_engine_smoketest.json
283283
}
284284

285-
@test "Expect check/run success: test_engine_smoketest.json [ts=60ms]" {
285+
@test $(testname "Expect check/run success" "test_engine_smoketest.json [ts=60ms]" "e7957fa0-1145-4458-b665-eec51c1f0da5") {
286286
BATS_OPTIONAL_STACKS="option_timestep_60.json"
287287
cloe_engine check test_engine_smoketest.json
288288
cloe_engine run test_engine_smoketest.json

tests/test_engine_replica_smoketest.bats

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
load setup_bats
88

9-
@test "Expect exact replication: test_engine_replica_smoketest.json" {
9+
@test $(testname "Expect exact replication" "test_engine_replica_smoketest.json" "f4fa1794-cc78-4ae6-aa5e-6a3ed3c7913c") {
1010
# Clean up in case temporary registry already exists.
1111
if [[ -d "$cloe_tmp_registry" ]]; then
1212
rm -r "$cloe_tmp_registry" || true

0 commit comments

Comments
 (0)