3 TRACIE_DIR
="$(dirname "$
(readlink
-f "$0")")/.."
9 echo "Assertion failed: \"$1\""
15 # Run tests for the .testtrace types, using the "gl-test-device" and "vk-test-device" device names.
16 python3
$TEST_DIR/tracie.py
--file $TEST_DIR/tests
/traces.yml
--device-name gl-test-device
&& \
17 python3
$TEST_DIR/tracie.py
--file $TEST_DIR/tests
/traces.yml
--device-name vk-test-device
21 [ "$TEST_DIR" = "/tmp/*" ] && rm -rf "$TEST_DIR"
25 TEST_DIR
="$(mktemp -d -t tracie.test.XXXXXXXXXX)"
26 # Copy all the tracie scripts to the test dir for the run-tests.sh script.
27 # This avoids polluting the normal working dir with test result artifacts.
28 cp -R "$TRACIE_DIR"/.
"$TEST_DIR"
31 mv tests
/test-data
/* traces-db
/.
33 # Ensure we have a clean environment.
34 unset TRACIE_STORE_IMAGES
40 if ($1 > "$log" 2>&1 ;); then
42 echo "$1: \e[0;32mSuccess\e[0m"
48 echo "$1: \e[0;31mFail\e[0m"
59 assert_results_yaml_contains
() {
60 grep -q "actual: $1" $4
63 grep -q "expected: $2" $4
73 tracie_succeeds_if_all_images_match
() {
76 assert_results_yaml_contains
5efda83854befe0155ff8517a58d5b51
5efda83854befe0155ff8517a58d5b51
"" "$PWD/results/results.yml"
79 tracie_fails_on_image_mismatch
() {
80 sed -i 's/5efda83854befe0155ff8517a58d5b51/8e0a801367e1714463475a824dab363b/g' \
81 "$TEST_DIR/tests/traces.yml"
85 assert_results_yaml_contains
5efda83854befe0155ff8517a58d5b51
8e0a801367e1714463475a824dab363b
"trace2/test/vk-test-device/olive.testtrace-0.png" "$PWD/results/results.yml"
88 tracie_skips_traces_without_checksum
() {
89 echo " - path: trace1/red.testtrace" >> "$TEST_DIR/tests/traces.yml"
90 echo " expectations:" >> "$TEST_DIR/tests/traces.yml"
91 echo " - device: bla" >> "$TEST_DIR/tests/traces.yml"
92 echo " checksum: 000000000000000" >> "$TEST_DIR/tests/traces.yml"
93 # red.testtrace should be skipped, since it doesn't
94 # have any checksums for our device
95 echo "ff0000ff" > traces-db
/trace
1/red.testtrace
101 tracie_fails_on_dump_image_error
() {
102 # "invalid" should fail to parse as rgba and
104 echo "invalid" > traces-db
/trace
1/magenta.testtrace
110 tracie_stores_only_logs_on_checksum_match
() {
114 assert
"[ -f "$TEST_DIR/results
/trace
1/test
/gl-test-device
/magenta.testtrace.log
" ]"
115 assert
"[ -f "$TEST_DIR/results
/trace
2/test
/vk-test-device
/olive.testtrace.log
" ]"
117 assert
"[ ! -f "$TEST_DIR/results
/trace
1/test
/gl-test-device
/magenta.testtrace-0.png
" ]"
118 assert
"[ ! -f "$TEST_DIR/results
/trace
2/test
/vk-test-device
/olive.testtrace-0.png
" ]"
123 tracie_stores_images_on_checksum_mismatch
() {
124 sed -i 's/5efda83854befe0155ff8517a58d5b51/8e0a801367e1714463475a824dab363b/g' \
125 "$TEST_DIR/tests/traces.yml"
130 assert
"[ ! -f "$TEST_DIR/results
/trace
1/test
/gl-test-device
/magenta.testtrace-0.png
" ]"
131 assert
"[ -f "$TEST_DIR/results
/trace
2/test
/vk-test-device
/olive.testtrace-0.png
" ]"
134 tracie_stores_images_on_request
() {
135 (export TRACIE_STORE_IMAGES
=1; run_tracie
)
138 assert
"[ -f "$TEST_DIR/results
/trace
1/test
/gl-test-device
/magenta.testtrace-0.png
" ]"
139 assert
"[ -f "$TEST_DIR/results
/trace
2/test
/vk-test-device
/olive.testtrace-0.png
" ]"
144 run_test tracie_succeeds_if_all_images_match
145 run_test tracie_fails_on_image_mismatch
146 run_test tracie_skips_traces_without_checksum
147 run_test tracie_fails_on_dump_image_error
148 run_test tracie_stores_only_logs_on_checksum_match
149 run_test tracie_stores_images_on_checksum_mismatch
150 run_test tracie_stores_images_on_request