It's easy enough to ignore lines starting with a '#' and that lets us
make these tests more self-documenting.
interpreted locally. If this fails for any reason
other than "file does not exist" the test will fail.
interpreted locally. If this fails for any reason
other than "file does not exist" the test will fail.
+Note: Blank lines and lines beginning with '#' are ignored.
+
Commands can be prefixed with "EXPECT_FAILURE:" to indicate that a
command is expected to return a non-zero value. In this case, a return
value of zero from the command will cause the test to fail.
Commands can be prefixed with "EXPECT_FAILURE:" to indicate that a
command is expected to return a non-zero value. In this case, a return
value of zero from the command will cause the test to fail.
+# The first two steps are just as in cli-diff-images. Dump images from
+# a trace into an empty directory.
+
rm_and_mkdir ./tri-out
apitrace dump-images -o ./tri-out/tri tri.trace
rm_and_mkdir ./tri-out
apitrace dump-images -o ./tri-out/tri tri.trace
+
+# Compare the dumped image with a doctored image to provoke a failure.
+# The EXPECT_FAILURE attribute causes the test driver to look for a
+# non-zero return value from apitrace and fail the test if it is not
+# seen.
+
EXPECT_FAILURE: apitrace diff-images -v ./tri-ref-mismatch ./tri-out
EXPECT_FAILURE: apitrace diff-images -v ./tri-ref-mismatch ./tri-out
+
+# In addition to getting the return value indicating an error, let's
+# also require that "apitrace diff-images" gave us the output we
+# expect.
+
expect "Comparing ./tri-ref-mismatch/tri0000000027.png and ./tri-out/tri0000000027.png ... MISMATCH\n"
expect "Comparing ./tri-ref-mismatch/tri0000000027.png and ./tri-out/tri0000000027.png ... MISMATCH\n"
+# Make a directory for the output images
+
+
+# Generate images for every frame (only 1) of a trace
+
apitrace dump-images -o ./tri-out/tri tri.trace
apitrace dump-images -o ./tri-out/tri tri.trace
+
+# Compare the result of "apitrace dump-images" with our reference
+
apitrace diff-images -v ./tri-ref ./tri-out
apitrace diff-images -v ./tri-ref ./tri-out
+
+# Ensure that the "apitrace diff-images" actually did something. This
+# is important since if it couldn't find images in one directory or
+# the other then it would just silently return 0 and this test would
+# incorrectly pass.
+
expect "Comparing ./tri-ref/tri0000000027.png and ./tri-out/tri0000000027.png ... MATCH\n"
expect "Comparing ./tri-ref/tri0000000027.png and ./tri-out/tri0000000027.png ... MATCH\n"
if (line == ''):
break
cmd = line.split()
if (line == ''):
break
cmd = line.split()
+ # Ignore blank lines and comments
+ if (len(cmd) == 0 or line[0] == '#'):
continue
if (cmd[0] == 'EXPECT_FAILURE:'):
continue
if (cmd[0] == 'EXPECT_FAILURE:'):