aboutsummaryrefslogtreecommitdiffhomepage
path: root/gm
diff options
context:
space:
mode:
Diffstat (limited to 'gm')
-rw-r--r--gm/tests/outputs/compared-against-different-pixels-images/output-expected/command_line2
-rw-r--r--gm/tests/outputs/compared-against-different-pixels-images/output-expected/mismatchPath/565/bogusfile1
-rw-r--r--gm/tests/outputs/compared-against-different-pixels-images/output-expected/mismatchPath/565/selftest1.png1
-rw-r--r--gm/tests/outputs/compared-against-different-pixels-images/output-expected/mismatchPath/8888/bogusfile1
-rw-r--r--gm/tests/outputs/compared-against-different-pixels-images/output-expected/mismatchPath/8888/selftest1.png1
-rw-r--r--gm/tests/outputs/compared-against-different-pixels-images/output-expected/stdout2
-rw-r--r--gm/tests/outputs/compared-against-different-pixels-images/output-expected/writePath/565/selftest1.png1
-rw-r--r--gm/tests/outputs/compared-against-different-pixels-images/output-expected/writePath/8888/selftest1.png1
-rw-r--r--gm/tests/outputs/compared-against-different-pixels-json/output-expected/command_line2
-rw-r--r--gm/tests/outputs/compared-against-different-pixels-json/output-expected/mismatchPath/565/bogusfile1
-rw-r--r--gm/tests/outputs/compared-against-different-pixels-json/output-expected/mismatchPath/565/selftest1.png1
-rw-r--r--gm/tests/outputs/compared-against-different-pixels-json/output-expected/mismatchPath/8888/bogusfile1
-rw-r--r--gm/tests/outputs/compared-against-different-pixels-json/output-expected/mismatchPath/8888/selftest1.png1
-rw-r--r--gm/tests/outputs/compared-against-different-pixels-json/output-expected/stdout2
-rw-r--r--gm/tests/outputs/compared-against-different-pixels-json/output-expected/writePath/565/selftest1.png1
-rw-r--r--gm/tests/outputs/compared-against-different-pixels-json/output-expected/writePath/8888/selftest1.png1
-rw-r--r--gm/tests/outputs/compared-against-empty-dir/output-expected/command_line2
-rw-r--r--gm/tests/outputs/compared-against-empty-dir/output-expected/mismatchPath/565/bogusfile1
-rw-r--r--gm/tests/outputs/compared-against-empty-dir/output-expected/mismatchPath/8888/bogusfile1
-rw-r--r--gm/tests/outputs/compared-against-empty-dir/output-expected/stdout2
-rw-r--r--gm/tests/outputs/compared-against-empty-dir/output-expected/writePath/565/selftest1.png1
-rw-r--r--gm/tests/outputs/compared-against-empty-dir/output-expected/writePath/8888/selftest1.png1
-rw-r--r--gm/tests/outputs/compared-against-identical-bytes-images/output-expected/command_line2
-rw-r--r--gm/tests/outputs/compared-against-identical-bytes-images/output-expected/mismatchPath/565/bogusfile1
-rw-r--r--gm/tests/outputs/compared-against-identical-bytes-images/output-expected/mismatchPath/8888/bogusfile1
-rw-r--r--gm/tests/outputs/compared-against-identical-bytes-images/output-expected/stdout2
-rw-r--r--gm/tests/outputs/compared-against-identical-bytes-images/output-expected/writePath/565/selftest1.png1
-rw-r--r--gm/tests/outputs/compared-against-identical-bytes-images/output-expected/writePath/8888/selftest1.png1
-rw-r--r--gm/tests/outputs/compared-against-identical-bytes-json/output-expected/command_line2
-rw-r--r--gm/tests/outputs/compared-against-identical-bytes-json/output-expected/mismatchPath/565/bogusfile1
-rw-r--r--gm/tests/outputs/compared-against-identical-bytes-json/output-expected/mismatchPath/8888/bogusfile1
-rw-r--r--gm/tests/outputs/compared-against-identical-bytes-json/output-expected/stdout2
-rw-r--r--gm/tests/outputs/compared-against-identical-bytes-json/output-expected/writePath/565/selftest1.png1
-rw-r--r--gm/tests/outputs/compared-against-identical-bytes-json/output-expected/writePath/8888/selftest1.png1
-rw-r--r--gm/tests/outputs/compared-against-identical-pixels-images/output-expected/command_line2
-rw-r--r--gm/tests/outputs/compared-against-identical-pixels-images/output-expected/mismatchPath/565/bogusfile1
-rw-r--r--gm/tests/outputs/compared-against-identical-pixels-images/output-expected/mismatchPath/8888/bogusfile1
-rw-r--r--gm/tests/outputs/compared-against-identical-pixels-images/output-expected/stdout2
-rw-r--r--gm/tests/outputs/compared-against-identical-pixels-images/output-expected/writePath/565/selftest1.png1
-rw-r--r--gm/tests/outputs/compared-against-identical-pixels-images/output-expected/writePath/8888/selftest1.png1
-rw-r--r--gm/tests/outputs/compared-against-identical-pixels-json/output-expected/command_line2
-rw-r--r--gm/tests/outputs/compared-against-identical-pixels-json/output-expected/mismatchPath/565/bogusfile1
-rw-r--r--gm/tests/outputs/compared-against-identical-pixels-json/output-expected/mismatchPath/8888/bogusfile1
-rw-r--r--gm/tests/outputs/compared-against-identical-pixels-json/output-expected/stdout2
-rw-r--r--gm/tests/outputs/compared-against-identical-pixels-json/output-expected/writePath/565/selftest1.png1
-rw-r--r--gm/tests/outputs/compared-against-identical-pixels-json/output-expected/writePath/8888/selftest1.png1
-rw-r--r--gm/tests/outputs/compared-against-nonexistent-dir/output-expected/command_line2
-rw-r--r--gm/tests/outputs/ignore-expectations-mismatch/output-expected/command_line2
-rw-r--r--gm/tests/outputs/ignore-expectations-mismatch/output-expected/mismatchPath/565/bogusfile1
-rw-r--r--gm/tests/outputs/ignore-expectations-mismatch/output-expected/mismatchPath/565/selftest1.png1
-rw-r--r--gm/tests/outputs/ignore-expectations-mismatch/output-expected/mismatchPath/8888/bogusfile1
-rw-r--r--gm/tests/outputs/ignore-expectations-mismatch/output-expected/mismatchPath/8888/selftest1.png1
-rw-r--r--gm/tests/outputs/ignore-expectations-mismatch/output-expected/stdout2
-rw-r--r--gm/tests/outputs/ignore-expectations-mismatch/output-expected/writePath/565/selftest1.png1
-rw-r--r--gm/tests/outputs/ignore-expectations-mismatch/output-expected/writePath/8888/selftest1.png1
-rw-r--r--gm/tests/outputs/intentionally-skipped-tests/output-expected/command_line2
-rw-r--r--gm/tests/outputs/intentionally-skipped-tests/output-expected/mismatchPath/565/bogusfile1
-rw-r--r--gm/tests/outputs/intentionally-skipped-tests/output-expected/mismatchPath/8888/bogusfile1
-rw-r--r--gm/tests/outputs/intentionally-skipped-tests/output-expected/stdout2
-rw-r--r--gm/tests/outputs/intentionally-skipped-tests/output-expected/writePath/565/selftest1.png1
-rw-r--r--gm/tests/outputs/intentionally-skipped-tests/output-expected/writePath/565/selftest2.png1
-rw-r--r--gm/tests/outputs/intentionally-skipped-tests/output-expected/writePath/8888/selftest1.png1
-rw-r--r--gm/tests/outputs/intentionally-skipped-tests/output-expected/writePath/8888/selftest2.png1
-rw-r--r--gm/tests/outputs/no-readpath/output-expected/command_line2
-rw-r--r--gm/tests/outputs/no-readpath/output-expected/mismatchPath/565/bogusfile1
-rw-r--r--gm/tests/outputs/no-readpath/output-expected/mismatchPath/8888/bogusfile1
-rw-r--r--gm/tests/outputs/no-readpath/output-expected/stdout2
-rw-r--r--gm/tests/outputs/no-readpath/output-expected/writePath/565/selftest1.png1
-rw-r--r--gm/tests/outputs/no-readpath/output-expected/writePath/8888/selftest1.png1
-rw-r--r--gm/tests/outputs/nonverbose/output-expected/command_line2
-rw-r--r--gm/tests/outputs/nonverbose/output-expected/mismatchPath/565/bogusfile1
-rw-r--r--gm/tests/outputs/nonverbose/output-expected/mismatchPath/8888/bogusfile1
-rw-r--r--gm/tests/outputs/nonverbose/output-expected/writePath/565/selftest1.png1
-rw-r--r--gm/tests/outputs/nonverbose/output-expected/writePath/8888/selftest1.png1
-rw-r--r--gm/tests/outputs/pipe-playback-failure/output-expected/command_line2
-rw-r--r--gm/tests/outputs/pipe-playback-failure/output-expected/mismatchPath/565/bogusfile1
-rw-r--r--gm/tests/outputs/pipe-playback-failure/output-expected/mismatchPath/8888/bogusfile1
-rw-r--r--gm/tests/outputs/pipe-playback-failure/output-expected/stdout2
-rw-r--r--gm/tests/outputs/pipe-playback-failure/output-expected/writePath/565/selftest1.png1
-rw-r--r--gm/tests/outputs/pipe-playback-failure/output-expected/writePath/8888/selftest1.png1
-rwxr-xr-xgm/tests/run.sh31
81 files changed, 102 insertions, 33 deletions
diff --git a/gm/tests/outputs/compared-against-different-pixels-images/output-expected/command_line b/gm/tests/outputs/compared-against-different-pixels-images/output-expected/command_line
index 8b4bf99d74..397c6b33a3 100644
--- a/gm/tests/outputs/compared-against-different-pixels-images/output-expected/command_line
+++ b/gm/tests/outputs/compared-against-different-pixels-images/output-expected/command_line
@@ -1 +1 @@
-out/Debug/gm --verbose --hierarchy --match selftest1 --config 8888 565 -r gm/tests/inputs/images/different-pixels --writeJsonSummaryPath gm/tests/outputs/compared-against-different-pixels-images/output-actual/json-summary.txt
+out/Debug/gm --verbose --hierarchy --match selftest1 --config 8888 565 -r gm/tests/inputs/images/different-pixels --writeJsonSummaryPath gm/tests/outputs/compared-against-different-pixels-images/output-actual/json-summary.txt --writePath gm/tests/outputs/compared-against-different-pixels-images/output-actual/writePath --mismatchPath gm/tests/outputs/compared-against-different-pixels-images/output-actual/mismatchPath
diff --git a/gm/tests/outputs/compared-against-different-pixels-images/output-expected/mismatchPath/565/bogusfile b/gm/tests/outputs/compared-against-different-pixels-images/output-expected/mismatchPath/565/bogusfile
new file mode 100644
index 0000000000..d86cd5bdd8
--- /dev/null
+++ b/gm/tests/outputs/compared-against-different-pixels-images/output-expected/mismatchPath/565/bogusfile
@@ -0,0 +1 @@
+Created additional file to make sure directory isn't empty, because self-test cannot handle empty directories.
diff --git a/gm/tests/outputs/compared-against-different-pixels-images/output-expected/mismatchPath/565/selftest1.png b/gm/tests/outputs/compared-against-different-pixels-images/output-expected/mismatchPath/565/selftest1.png
new file mode 100644
index 0000000000..4d6827c728
--- /dev/null
+++ b/gm/tests/outputs/compared-against-different-pixels-images/output-expected/mismatchPath/565/selftest1.png
@@ -0,0 +1 @@
+[contents of gm/tests/outputs/compared-against-different-pixels-images/output-actual/mismatchPath/565/selftest1.png]
diff --git a/gm/tests/outputs/compared-against-different-pixels-images/output-expected/mismatchPath/8888/bogusfile b/gm/tests/outputs/compared-against-different-pixels-images/output-expected/mismatchPath/8888/bogusfile
new file mode 100644
index 0000000000..d86cd5bdd8
--- /dev/null
+++ b/gm/tests/outputs/compared-against-different-pixels-images/output-expected/mismatchPath/8888/bogusfile
@@ -0,0 +1 @@
+Created additional file to make sure directory isn't empty, because self-test cannot handle empty directories.
diff --git a/gm/tests/outputs/compared-against-different-pixels-images/output-expected/mismatchPath/8888/selftest1.png b/gm/tests/outputs/compared-against-different-pixels-images/output-expected/mismatchPath/8888/selftest1.png
new file mode 100644
index 0000000000..6784b25dfc
--- /dev/null
+++ b/gm/tests/outputs/compared-against-different-pixels-images/output-expected/mismatchPath/8888/selftest1.png
@@ -0,0 +1 @@
+[contents of gm/tests/outputs/compared-against-different-pixels-images/output-actual/mismatchPath/8888/selftest1.png]
diff --git a/gm/tests/outputs/compared-against-different-pixels-images/output-expected/stdout b/gm/tests/outputs/compared-against-different-pixels-images/output-expected/stdout
index 817fc87135..c80ad625af 100644
--- a/gm/tests/outputs/compared-against-different-pixels-images/output-expected/stdout
+++ b/gm/tests/outputs/compared-against-different-pixels-images/output-expected/stdout
@@ -1,5 +1,7 @@
GM: These configs will be run: 8888 565
GM: reading from gm/tests/inputs/images/different-pixels
+GM: writing to gm/tests/outputs/compared-against-different-pixels-images/output-actual/writePath
+GM: writing mismatches to gm/tests/outputs/compared-against-different-pixels-images/output-actual/mismatchPath
GM: drawing... selftest1 [300 200]
GM: Ran 1 GMs
GM: ... over 2 configs ["8888", "565"]
diff --git a/gm/tests/outputs/compared-against-different-pixels-images/output-expected/writePath/565/selftest1.png b/gm/tests/outputs/compared-against-different-pixels-images/output-expected/writePath/565/selftest1.png
new file mode 100644
index 0000000000..b3464d03ce
--- /dev/null
+++ b/gm/tests/outputs/compared-against-different-pixels-images/output-expected/writePath/565/selftest1.png
@@ -0,0 +1 @@
+[contents of gm/tests/outputs/compared-against-different-pixels-images/output-actual/writePath/565/selftest1.png]
diff --git a/gm/tests/outputs/compared-against-different-pixels-images/output-expected/writePath/8888/selftest1.png b/gm/tests/outputs/compared-against-different-pixels-images/output-expected/writePath/8888/selftest1.png
new file mode 100644
index 0000000000..db19da55c5
--- /dev/null
+++ b/gm/tests/outputs/compared-against-different-pixels-images/output-expected/writePath/8888/selftest1.png
@@ -0,0 +1 @@
+[contents of gm/tests/outputs/compared-against-different-pixels-images/output-actual/writePath/8888/selftest1.png]
diff --git a/gm/tests/outputs/compared-against-different-pixels-json/output-expected/command_line b/gm/tests/outputs/compared-against-different-pixels-json/output-expected/command_line
index 73227a9510..a455456d3c 100644
--- a/gm/tests/outputs/compared-against-different-pixels-json/output-expected/command_line
+++ b/gm/tests/outputs/compared-against-different-pixels-json/output-expected/command_line
@@ -1 +1 @@
-out/Debug/gm --verbose --hierarchy --match selftest1 --config 8888 565 -r gm/tests/inputs/json/different-pixels.json --writeJsonSummaryPath gm/tests/outputs/compared-against-different-pixels-json/output-actual/json-summary.txt
+out/Debug/gm --verbose --hierarchy --match selftest1 --config 8888 565 -r gm/tests/inputs/json/different-pixels.json --writeJsonSummaryPath gm/tests/outputs/compared-against-different-pixels-json/output-actual/json-summary.txt --writePath gm/tests/outputs/compared-against-different-pixels-json/output-actual/writePath --mismatchPath gm/tests/outputs/compared-against-different-pixels-json/output-actual/mismatchPath
diff --git a/gm/tests/outputs/compared-against-different-pixels-json/output-expected/mismatchPath/565/bogusfile b/gm/tests/outputs/compared-against-different-pixels-json/output-expected/mismatchPath/565/bogusfile
new file mode 100644
index 0000000000..d86cd5bdd8
--- /dev/null
+++ b/gm/tests/outputs/compared-against-different-pixels-json/output-expected/mismatchPath/565/bogusfile
@@ -0,0 +1 @@
+Created additional file to make sure directory isn't empty, because self-test cannot handle empty directories.
diff --git a/gm/tests/outputs/compared-against-different-pixels-json/output-expected/mismatchPath/565/selftest1.png b/gm/tests/outputs/compared-against-different-pixels-json/output-expected/mismatchPath/565/selftest1.png
new file mode 100644
index 0000000000..f89763b33f
--- /dev/null
+++ b/gm/tests/outputs/compared-against-different-pixels-json/output-expected/mismatchPath/565/selftest1.png
@@ -0,0 +1 @@
+[contents of gm/tests/outputs/compared-against-different-pixels-json/output-actual/mismatchPath/565/selftest1.png]
diff --git a/gm/tests/outputs/compared-against-different-pixels-json/output-expected/mismatchPath/8888/bogusfile b/gm/tests/outputs/compared-against-different-pixels-json/output-expected/mismatchPath/8888/bogusfile
new file mode 100644
index 0000000000..d86cd5bdd8
--- /dev/null
+++ b/gm/tests/outputs/compared-against-different-pixels-json/output-expected/mismatchPath/8888/bogusfile
@@ -0,0 +1 @@
+Created additional file to make sure directory isn't empty, because self-test cannot handle empty directories.
diff --git a/gm/tests/outputs/compared-against-different-pixels-json/output-expected/mismatchPath/8888/selftest1.png b/gm/tests/outputs/compared-against-different-pixels-json/output-expected/mismatchPath/8888/selftest1.png
new file mode 100644
index 0000000000..e80f342a65
--- /dev/null
+++ b/gm/tests/outputs/compared-against-different-pixels-json/output-expected/mismatchPath/8888/selftest1.png
@@ -0,0 +1 @@
+[contents of gm/tests/outputs/compared-against-different-pixels-json/output-actual/mismatchPath/8888/selftest1.png]
diff --git a/gm/tests/outputs/compared-against-different-pixels-json/output-expected/stdout b/gm/tests/outputs/compared-against-different-pixels-json/output-expected/stdout
index 9a299c5faf..f17bde6c85 100644
--- a/gm/tests/outputs/compared-against-different-pixels-json/output-expected/stdout
+++ b/gm/tests/outputs/compared-against-different-pixels-json/output-expected/stdout
@@ -1,5 +1,7 @@
GM: These configs will be run: 8888 565
GM: reading expectations from JSON summary file gm/tests/inputs/json/different-pixels.json
+GM: writing to gm/tests/outputs/compared-against-different-pixels-json/output-actual/writePath
+GM: writing mismatches to gm/tests/outputs/compared-against-different-pixels-json/output-actual/mismatchPath
GM: drawing... selftest1 [300 200]
GM: Ran 1 GMs
GM: ... over 2 configs ["8888", "565"]
diff --git a/gm/tests/outputs/compared-against-different-pixels-json/output-expected/writePath/565/selftest1.png b/gm/tests/outputs/compared-against-different-pixels-json/output-expected/writePath/565/selftest1.png
new file mode 100644
index 0000000000..cde22a6caa
--- /dev/null
+++ b/gm/tests/outputs/compared-against-different-pixels-json/output-expected/writePath/565/selftest1.png
@@ -0,0 +1 @@
+[contents of gm/tests/outputs/compared-against-different-pixels-json/output-actual/writePath/565/selftest1.png]
diff --git a/gm/tests/outputs/compared-against-different-pixels-json/output-expected/writePath/8888/selftest1.png b/gm/tests/outputs/compared-against-different-pixels-json/output-expected/writePath/8888/selftest1.png
new file mode 100644
index 0000000000..a9e26cf922
--- /dev/null
+++ b/gm/tests/outputs/compared-against-different-pixels-json/output-expected/writePath/8888/selftest1.png
@@ -0,0 +1 @@
+[contents of gm/tests/outputs/compared-against-different-pixels-json/output-actual/writePath/8888/selftest1.png]
diff --git a/gm/tests/outputs/compared-against-empty-dir/output-expected/command_line b/gm/tests/outputs/compared-against-empty-dir/output-expected/command_line
index 4151af3b8f..48d12f897e 100644
--- a/gm/tests/outputs/compared-against-empty-dir/output-expected/command_line
+++ b/gm/tests/outputs/compared-against-empty-dir/output-expected/command_line
@@ -1 +1 @@
-out/Debug/gm --verbose --hierarchy --match selftest1 --config 8888 565 -r gm/tests/inputs/images/empty-dir --writeJsonSummaryPath gm/tests/outputs/compared-against-empty-dir/output-actual/json-summary.txt
+out/Debug/gm --verbose --hierarchy --match selftest1 --config 8888 565 -r gm/tests/inputs/images/empty-dir --writeJsonSummaryPath gm/tests/outputs/compared-against-empty-dir/output-actual/json-summary.txt --writePath gm/tests/outputs/compared-against-empty-dir/output-actual/writePath --mismatchPath gm/tests/outputs/compared-against-empty-dir/output-actual/mismatchPath
diff --git a/gm/tests/outputs/compared-against-empty-dir/output-expected/mismatchPath/565/bogusfile b/gm/tests/outputs/compared-against-empty-dir/output-expected/mismatchPath/565/bogusfile
new file mode 100644
index 0000000000..d86cd5bdd8
--- /dev/null
+++ b/gm/tests/outputs/compared-against-empty-dir/output-expected/mismatchPath/565/bogusfile
@@ -0,0 +1 @@
+Created additional file to make sure directory isn't empty, because self-test cannot handle empty directories.
diff --git a/gm/tests/outputs/compared-against-empty-dir/output-expected/mismatchPath/8888/bogusfile b/gm/tests/outputs/compared-against-empty-dir/output-expected/mismatchPath/8888/bogusfile
new file mode 100644
index 0000000000..d86cd5bdd8
--- /dev/null
+++ b/gm/tests/outputs/compared-against-empty-dir/output-expected/mismatchPath/8888/bogusfile
@@ -0,0 +1 @@
+Created additional file to make sure directory isn't empty, because self-test cannot handle empty directories.
diff --git a/gm/tests/outputs/compared-against-empty-dir/output-expected/stdout b/gm/tests/outputs/compared-against-empty-dir/output-expected/stdout
index d5a1ada17e..232baf9ab9 100644
--- a/gm/tests/outputs/compared-against-empty-dir/output-expected/stdout
+++ b/gm/tests/outputs/compared-against-empty-dir/output-expected/stdout
@@ -1,5 +1,7 @@
GM: These configs will be run: 8888 565
GM: reading from gm/tests/inputs/images/empty-dir
+GM: writing to gm/tests/outputs/compared-against-empty-dir/output-actual/writePath
+GM: writing mismatches to gm/tests/outputs/compared-against-empty-dir/output-actual/mismatchPath
GM: drawing... selftest1 [300 200]
GM: Ran 1 GMs
GM: ... over 2 configs ["8888", "565"]
diff --git a/gm/tests/outputs/compared-against-empty-dir/output-expected/writePath/565/selftest1.png b/gm/tests/outputs/compared-against-empty-dir/output-expected/writePath/565/selftest1.png
new file mode 100644
index 0000000000..6fd4126d10
--- /dev/null
+++ b/gm/tests/outputs/compared-against-empty-dir/output-expected/writePath/565/selftest1.png
@@ -0,0 +1 @@
+[contents of gm/tests/outputs/compared-against-empty-dir/output-actual/writePath/565/selftest1.png]
diff --git a/gm/tests/outputs/compared-against-empty-dir/output-expected/writePath/8888/selftest1.png b/gm/tests/outputs/compared-against-empty-dir/output-expected/writePath/8888/selftest1.png
new file mode 100644
index 0000000000..8d82f51f6e
--- /dev/null
+++ b/gm/tests/outputs/compared-against-empty-dir/output-expected/writePath/8888/selftest1.png
@@ -0,0 +1 @@
+[contents of gm/tests/outputs/compared-against-empty-dir/output-actual/writePath/8888/selftest1.png]
diff --git a/gm/tests/outputs/compared-against-identical-bytes-images/output-expected/command_line b/gm/tests/outputs/compared-against-identical-bytes-images/output-expected/command_line
index ab8bac67fb..51e4582b69 100644
--- a/gm/tests/outputs/compared-against-identical-bytes-images/output-expected/command_line
+++ b/gm/tests/outputs/compared-against-identical-bytes-images/output-expected/command_line
@@ -1 +1 @@
-out/Debug/gm --verbose --hierarchy --match selftest1 --config 8888 565 -r gm/tests/inputs/images/identical-bytes --writeJsonSummaryPath gm/tests/outputs/compared-against-identical-bytes-images/output-actual/json-summary.txt
+out/Debug/gm --verbose --hierarchy --match selftest1 --config 8888 565 -r gm/tests/inputs/images/identical-bytes --writeJsonSummaryPath gm/tests/outputs/compared-against-identical-bytes-images/output-actual/json-summary.txt --writePath gm/tests/outputs/compared-against-identical-bytes-images/output-actual/writePath --mismatchPath gm/tests/outputs/compared-against-identical-bytes-images/output-actual/mismatchPath
diff --git a/gm/tests/outputs/compared-against-identical-bytes-images/output-expected/mismatchPath/565/bogusfile b/gm/tests/outputs/compared-against-identical-bytes-images/output-expected/mismatchPath/565/bogusfile
new file mode 100644
index 0000000000..d86cd5bdd8
--- /dev/null
+++ b/gm/tests/outputs/compared-against-identical-bytes-images/output-expected/mismatchPath/565/bogusfile
@@ -0,0 +1 @@
+Created additional file to make sure directory isn't empty, because self-test cannot handle empty directories.
diff --git a/gm/tests/outputs/compared-against-identical-bytes-images/output-expected/mismatchPath/8888/bogusfile b/gm/tests/outputs/compared-against-identical-bytes-images/output-expected/mismatchPath/8888/bogusfile
new file mode 100644
index 0000000000..d86cd5bdd8
--- /dev/null
+++ b/gm/tests/outputs/compared-against-identical-bytes-images/output-expected/mismatchPath/8888/bogusfile
@@ -0,0 +1 @@
+Created additional file to make sure directory isn't empty, because self-test cannot handle empty directories.
diff --git a/gm/tests/outputs/compared-against-identical-bytes-images/output-expected/stdout b/gm/tests/outputs/compared-against-identical-bytes-images/output-expected/stdout
index d63fca5d85..e844583603 100644
--- a/gm/tests/outputs/compared-against-identical-bytes-images/output-expected/stdout
+++ b/gm/tests/outputs/compared-against-identical-bytes-images/output-expected/stdout
@@ -1,5 +1,7 @@
GM: These configs will be run: 8888 565
GM: reading from gm/tests/inputs/images/identical-bytes
+GM: writing to gm/tests/outputs/compared-against-identical-bytes-images/output-actual/writePath
+GM: writing mismatches to gm/tests/outputs/compared-against-identical-bytes-images/output-actual/mismatchPath
GM: drawing... selftest1 [300 200]
GM: Ran 1 GMs
GM: ... over 2 configs ["8888", "565"]
diff --git a/gm/tests/outputs/compared-against-identical-bytes-images/output-expected/writePath/565/selftest1.png b/gm/tests/outputs/compared-against-identical-bytes-images/output-expected/writePath/565/selftest1.png
new file mode 100644
index 0000000000..be0614f1c7
--- /dev/null
+++ b/gm/tests/outputs/compared-against-identical-bytes-images/output-expected/writePath/565/selftest1.png
@@ -0,0 +1 @@
+[contents of gm/tests/outputs/compared-against-identical-bytes-images/output-actual/writePath/565/selftest1.png]
diff --git a/gm/tests/outputs/compared-against-identical-bytes-images/output-expected/writePath/8888/selftest1.png b/gm/tests/outputs/compared-against-identical-bytes-images/output-expected/writePath/8888/selftest1.png
new file mode 100644
index 0000000000..6575039622
--- /dev/null
+++ b/gm/tests/outputs/compared-against-identical-bytes-images/output-expected/writePath/8888/selftest1.png
@@ -0,0 +1 @@
+[contents of gm/tests/outputs/compared-against-identical-bytes-images/output-actual/writePath/8888/selftest1.png]
diff --git a/gm/tests/outputs/compared-against-identical-bytes-json/output-expected/command_line b/gm/tests/outputs/compared-against-identical-bytes-json/output-expected/command_line
index 8f34c11de5..3a29e12807 100644
--- a/gm/tests/outputs/compared-against-identical-bytes-json/output-expected/command_line
+++ b/gm/tests/outputs/compared-against-identical-bytes-json/output-expected/command_line
@@ -1 +1 @@
-out/Debug/gm --verbose --hierarchy --match selftest1 --config 8888 565 -r gm/tests/inputs/json/identical-bytes.json --writeJsonSummaryPath gm/tests/outputs/compared-against-identical-bytes-json/output-actual/json-summary.txt
+out/Debug/gm --verbose --hierarchy --match selftest1 --config 8888 565 -r gm/tests/inputs/json/identical-bytes.json --writeJsonSummaryPath gm/tests/outputs/compared-against-identical-bytes-json/output-actual/json-summary.txt --writePath gm/tests/outputs/compared-against-identical-bytes-json/output-actual/writePath --mismatchPath gm/tests/outputs/compared-against-identical-bytes-json/output-actual/mismatchPath
diff --git a/gm/tests/outputs/compared-against-identical-bytes-json/output-expected/mismatchPath/565/bogusfile b/gm/tests/outputs/compared-against-identical-bytes-json/output-expected/mismatchPath/565/bogusfile
new file mode 100644
index 0000000000..d86cd5bdd8
--- /dev/null
+++ b/gm/tests/outputs/compared-against-identical-bytes-json/output-expected/mismatchPath/565/bogusfile
@@ -0,0 +1 @@
+Created additional file to make sure directory isn't empty, because self-test cannot handle empty directories.
diff --git a/gm/tests/outputs/compared-against-identical-bytes-json/output-expected/mismatchPath/8888/bogusfile b/gm/tests/outputs/compared-against-identical-bytes-json/output-expected/mismatchPath/8888/bogusfile
new file mode 100644
index 0000000000..d86cd5bdd8
--- /dev/null
+++ b/gm/tests/outputs/compared-against-identical-bytes-json/output-expected/mismatchPath/8888/bogusfile
@@ -0,0 +1 @@
+Created additional file to make sure directory isn't empty, because self-test cannot handle empty directories.
diff --git a/gm/tests/outputs/compared-against-identical-bytes-json/output-expected/stdout b/gm/tests/outputs/compared-against-identical-bytes-json/output-expected/stdout
index 0c2b49cf11..9ed95b5b22 100644
--- a/gm/tests/outputs/compared-against-identical-bytes-json/output-expected/stdout
+++ b/gm/tests/outputs/compared-against-identical-bytes-json/output-expected/stdout
@@ -1,5 +1,7 @@
GM: These configs will be run: 8888 565
GM: reading expectations from JSON summary file gm/tests/inputs/json/identical-bytes.json
+GM: writing to gm/tests/outputs/compared-against-identical-bytes-json/output-actual/writePath
+GM: writing mismatches to gm/tests/outputs/compared-against-identical-bytes-json/output-actual/mismatchPath
GM: drawing... selftest1 [300 200]
GM: Ran 1 GMs
GM: ... over 2 configs ["8888", "565"]
diff --git a/gm/tests/outputs/compared-against-identical-bytes-json/output-expected/writePath/565/selftest1.png b/gm/tests/outputs/compared-against-identical-bytes-json/output-expected/writePath/565/selftest1.png
new file mode 100644
index 0000000000..31853e30cd
--- /dev/null
+++ b/gm/tests/outputs/compared-against-identical-bytes-json/output-expected/writePath/565/selftest1.png
@@ -0,0 +1 @@
+[contents of gm/tests/outputs/compared-against-identical-bytes-json/output-actual/writePath/565/selftest1.png]
diff --git a/gm/tests/outputs/compared-against-identical-bytes-json/output-expected/writePath/8888/selftest1.png b/gm/tests/outputs/compared-against-identical-bytes-json/output-expected/writePath/8888/selftest1.png
new file mode 100644
index 0000000000..ee80ce2e71
--- /dev/null
+++ b/gm/tests/outputs/compared-against-identical-bytes-json/output-expected/writePath/8888/selftest1.png
@@ -0,0 +1 @@
+[contents of gm/tests/outputs/compared-against-identical-bytes-json/output-actual/writePath/8888/selftest1.png]
diff --git a/gm/tests/outputs/compared-against-identical-pixels-images/output-expected/command_line b/gm/tests/outputs/compared-against-identical-pixels-images/output-expected/command_line
index 23f498ee93..b967776ff8 100644
--- a/gm/tests/outputs/compared-against-identical-pixels-images/output-expected/command_line
+++ b/gm/tests/outputs/compared-against-identical-pixels-images/output-expected/command_line
@@ -1 +1 @@
-out/Debug/gm --verbose --hierarchy --match selftest1 --config 8888 565 -r gm/tests/inputs/images/identical-pixels --writeJsonSummaryPath gm/tests/outputs/compared-against-identical-pixels-images/output-actual/json-summary.txt
+out/Debug/gm --verbose --hierarchy --match selftest1 --config 8888 565 -r gm/tests/inputs/images/identical-pixels --writeJsonSummaryPath gm/tests/outputs/compared-against-identical-pixels-images/output-actual/json-summary.txt --writePath gm/tests/outputs/compared-against-identical-pixels-images/output-actual/writePath --mismatchPath gm/tests/outputs/compared-against-identical-pixels-images/output-actual/mismatchPath
diff --git a/gm/tests/outputs/compared-against-identical-pixels-images/output-expected/mismatchPath/565/bogusfile b/gm/tests/outputs/compared-against-identical-pixels-images/output-expected/mismatchPath/565/bogusfile
new file mode 100644
index 0000000000..d86cd5bdd8
--- /dev/null
+++ b/gm/tests/outputs/compared-against-identical-pixels-images/output-expected/mismatchPath/565/bogusfile
@@ -0,0 +1 @@
+Created additional file to make sure directory isn't empty, because self-test cannot handle empty directories.
diff --git a/gm/tests/outputs/compared-against-identical-pixels-images/output-expected/mismatchPath/8888/bogusfile b/gm/tests/outputs/compared-against-identical-pixels-images/output-expected/mismatchPath/8888/bogusfile
new file mode 100644
index 0000000000..d86cd5bdd8
--- /dev/null
+++ b/gm/tests/outputs/compared-against-identical-pixels-images/output-expected/mismatchPath/8888/bogusfile
@@ -0,0 +1 @@
+Created additional file to make sure directory isn't empty, because self-test cannot handle empty directories.
diff --git a/gm/tests/outputs/compared-against-identical-pixels-images/output-expected/stdout b/gm/tests/outputs/compared-against-identical-pixels-images/output-expected/stdout
index fd1703a349..e61e9f3ce4 100644
--- a/gm/tests/outputs/compared-against-identical-pixels-images/output-expected/stdout
+++ b/gm/tests/outputs/compared-against-identical-pixels-images/output-expected/stdout
@@ -1,5 +1,7 @@
GM: These configs will be run: 8888 565
GM: reading from gm/tests/inputs/images/identical-pixels
+GM: writing to gm/tests/outputs/compared-against-identical-pixels-images/output-actual/writePath
+GM: writing mismatches to gm/tests/outputs/compared-against-identical-pixels-images/output-actual/mismatchPath
GM: drawing... selftest1 [300 200]
GM: Ran 1 GMs
GM: ... over 2 configs ["8888", "565"]
diff --git a/gm/tests/outputs/compared-against-identical-pixels-images/output-expected/writePath/565/selftest1.png b/gm/tests/outputs/compared-against-identical-pixels-images/output-expected/writePath/565/selftest1.png
new file mode 100644
index 0000000000..8961f2bfd0
--- /dev/null
+++ b/gm/tests/outputs/compared-against-identical-pixels-images/output-expected/writePath/565/selftest1.png
@@ -0,0 +1 @@
+[contents of gm/tests/outputs/compared-against-identical-pixels-images/output-actual/writePath/565/selftest1.png]
diff --git a/gm/tests/outputs/compared-against-identical-pixels-images/output-expected/writePath/8888/selftest1.png b/gm/tests/outputs/compared-against-identical-pixels-images/output-expected/writePath/8888/selftest1.png
new file mode 100644
index 0000000000..19b3ba30ad
--- /dev/null
+++ b/gm/tests/outputs/compared-against-identical-pixels-images/output-expected/writePath/8888/selftest1.png
@@ -0,0 +1 @@
+[contents of gm/tests/outputs/compared-against-identical-pixels-images/output-actual/writePath/8888/selftest1.png]
diff --git a/gm/tests/outputs/compared-against-identical-pixels-json/output-expected/command_line b/gm/tests/outputs/compared-against-identical-pixels-json/output-expected/command_line
index 9fe0158b51..71a9ac7318 100644
--- a/gm/tests/outputs/compared-against-identical-pixels-json/output-expected/command_line
+++ b/gm/tests/outputs/compared-against-identical-pixels-json/output-expected/command_line
@@ -1 +1 @@
-out/Debug/gm --verbose --hierarchy --match selftest1 --config 8888 565 -r gm/tests/inputs/json/identical-pixels.json --writeJsonSummaryPath gm/tests/outputs/compared-against-identical-pixels-json/output-actual/json-summary.txt
+out/Debug/gm --verbose --hierarchy --match selftest1 --config 8888 565 -r gm/tests/inputs/json/identical-pixels.json --writeJsonSummaryPath gm/tests/outputs/compared-against-identical-pixels-json/output-actual/json-summary.txt --writePath gm/tests/outputs/compared-against-identical-pixels-json/output-actual/writePath --mismatchPath gm/tests/outputs/compared-against-identical-pixels-json/output-actual/mismatchPath
diff --git a/gm/tests/outputs/compared-against-identical-pixels-json/output-expected/mismatchPath/565/bogusfile b/gm/tests/outputs/compared-against-identical-pixels-json/output-expected/mismatchPath/565/bogusfile
new file mode 100644
index 0000000000..d86cd5bdd8
--- /dev/null
+++ b/gm/tests/outputs/compared-against-identical-pixels-json/output-expected/mismatchPath/565/bogusfile
@@ -0,0 +1 @@
+Created additional file to make sure directory isn't empty, because self-test cannot handle empty directories.
diff --git a/gm/tests/outputs/compared-against-identical-pixels-json/output-expected/mismatchPath/8888/bogusfile b/gm/tests/outputs/compared-against-identical-pixels-json/output-expected/mismatchPath/8888/bogusfile
new file mode 100644
index 0000000000..d86cd5bdd8
--- /dev/null
+++ b/gm/tests/outputs/compared-against-identical-pixels-json/output-expected/mismatchPath/8888/bogusfile
@@ -0,0 +1 @@
+Created additional file to make sure directory isn't empty, because self-test cannot handle empty directories.
diff --git a/gm/tests/outputs/compared-against-identical-pixels-json/output-expected/stdout b/gm/tests/outputs/compared-against-identical-pixels-json/output-expected/stdout
index b9c1e4aed7..562ccdcccd 100644
--- a/gm/tests/outputs/compared-against-identical-pixels-json/output-expected/stdout
+++ b/gm/tests/outputs/compared-against-identical-pixels-json/output-expected/stdout
@@ -1,5 +1,7 @@
GM: These configs will be run: 8888 565
GM: reading expectations from JSON summary file gm/tests/inputs/json/identical-pixels.json
+GM: writing to gm/tests/outputs/compared-against-identical-pixels-json/output-actual/writePath
+GM: writing mismatches to gm/tests/outputs/compared-against-identical-pixels-json/output-actual/mismatchPath
GM: drawing... selftest1 [300 200]
GM: Ran 1 GMs
GM: ... over 2 configs ["8888", "565"]
diff --git a/gm/tests/outputs/compared-against-identical-pixels-json/output-expected/writePath/565/selftest1.png b/gm/tests/outputs/compared-against-identical-pixels-json/output-expected/writePath/565/selftest1.png
new file mode 100644
index 0000000000..357c3f97d7
--- /dev/null
+++ b/gm/tests/outputs/compared-against-identical-pixels-json/output-expected/writePath/565/selftest1.png
@@ -0,0 +1 @@
+[contents of gm/tests/outputs/compared-against-identical-pixels-json/output-actual/writePath/565/selftest1.png]
diff --git a/gm/tests/outputs/compared-against-identical-pixels-json/output-expected/writePath/8888/selftest1.png b/gm/tests/outputs/compared-against-identical-pixels-json/output-expected/writePath/8888/selftest1.png
new file mode 100644
index 0000000000..1da34ea9d4
--- /dev/null
+++ b/gm/tests/outputs/compared-against-identical-pixels-json/output-expected/writePath/8888/selftest1.png
@@ -0,0 +1 @@
+[contents of gm/tests/outputs/compared-against-identical-pixels-json/output-actual/writePath/8888/selftest1.png]
diff --git a/gm/tests/outputs/compared-against-nonexistent-dir/output-expected/command_line b/gm/tests/outputs/compared-against-nonexistent-dir/output-expected/command_line
index 03ff199854..1753a9f63e 100644
--- a/gm/tests/outputs/compared-against-nonexistent-dir/output-expected/command_line
+++ b/gm/tests/outputs/compared-against-nonexistent-dir/output-expected/command_line
@@ -1 +1 @@
-out/Debug/gm --verbose --hierarchy --match selftest1 --config 8888 565 -r ../path/to/nowhere --writeJsonSummaryPath gm/tests/outputs/compared-against-nonexistent-dir/output-actual/json-summary.txt
+out/Debug/gm --verbose --hierarchy --match selftest1 --config 8888 565 -r ../path/to/nowhere --writeJsonSummaryPath gm/tests/outputs/compared-against-nonexistent-dir/output-actual/json-summary.txt --writePath gm/tests/outputs/compared-against-nonexistent-dir/output-actual/writePath --mismatchPath gm/tests/outputs/compared-against-nonexistent-dir/output-actual/mismatchPath
diff --git a/gm/tests/outputs/ignore-expectations-mismatch/output-expected/command_line b/gm/tests/outputs/ignore-expectations-mismatch/output-expected/command_line
index f8ffbc8077..c9a4ed0cac 100644
--- a/gm/tests/outputs/ignore-expectations-mismatch/output-expected/command_line
+++ b/gm/tests/outputs/ignore-expectations-mismatch/output-expected/command_line
@@ -1 +1 @@
-out/Debug/gm --ignoreErrorTypes ExpectationsMismatch NoGpuContext --verbose --hierarchy --match selftest1 --config 8888 565 -r gm/tests/inputs/json/different-pixels.json --writeJsonSummaryPath gm/tests/outputs/ignore-expectations-mismatch/output-actual/json-summary.txt
+out/Debug/gm --ignoreErrorTypes ExpectationsMismatch NoGpuContext --verbose --hierarchy --match selftest1 --config 8888 565 -r gm/tests/inputs/json/different-pixels.json --writeJsonSummaryPath gm/tests/outputs/ignore-expectations-mismatch/output-actual/json-summary.txt --writePath gm/tests/outputs/ignore-expectations-mismatch/output-actual/writePath --mismatchPath gm/tests/outputs/ignore-expectations-mismatch/output-actual/mismatchPath
diff --git a/gm/tests/outputs/ignore-expectations-mismatch/output-expected/mismatchPath/565/bogusfile b/gm/tests/outputs/ignore-expectations-mismatch/output-expected/mismatchPath/565/bogusfile
new file mode 100644
index 0000000000..d86cd5bdd8
--- /dev/null
+++ b/gm/tests/outputs/ignore-expectations-mismatch/output-expected/mismatchPath/565/bogusfile
@@ -0,0 +1 @@
+Created additional file to make sure directory isn't empty, because self-test cannot handle empty directories.
diff --git a/gm/tests/outputs/ignore-expectations-mismatch/output-expected/mismatchPath/565/selftest1.png b/gm/tests/outputs/ignore-expectations-mismatch/output-expected/mismatchPath/565/selftest1.png
new file mode 100644
index 0000000000..95247f83b8
--- /dev/null
+++ b/gm/tests/outputs/ignore-expectations-mismatch/output-expected/mismatchPath/565/selftest1.png
@@ -0,0 +1 @@
+[contents of gm/tests/outputs/ignore-expectations-mismatch/output-actual/mismatchPath/565/selftest1.png]
diff --git a/gm/tests/outputs/ignore-expectations-mismatch/output-expected/mismatchPath/8888/bogusfile b/gm/tests/outputs/ignore-expectations-mismatch/output-expected/mismatchPath/8888/bogusfile
new file mode 100644
index 0000000000..d86cd5bdd8
--- /dev/null
+++ b/gm/tests/outputs/ignore-expectations-mismatch/output-expected/mismatchPath/8888/bogusfile
@@ -0,0 +1 @@
+Created additional file to make sure directory isn't empty, because self-test cannot handle empty directories.
diff --git a/gm/tests/outputs/ignore-expectations-mismatch/output-expected/mismatchPath/8888/selftest1.png b/gm/tests/outputs/ignore-expectations-mismatch/output-expected/mismatchPath/8888/selftest1.png
new file mode 100644
index 0000000000..73c78418da
--- /dev/null
+++ b/gm/tests/outputs/ignore-expectations-mismatch/output-expected/mismatchPath/8888/selftest1.png
@@ -0,0 +1 @@
+[contents of gm/tests/outputs/ignore-expectations-mismatch/output-actual/mismatchPath/8888/selftest1.png]
diff --git a/gm/tests/outputs/ignore-expectations-mismatch/output-expected/stdout b/gm/tests/outputs/ignore-expectations-mismatch/output-expected/stdout
index 6ccc85dd20..635f9af81e 100644
--- a/gm/tests/outputs/ignore-expectations-mismatch/output-expected/stdout
+++ b/gm/tests/outputs/ignore-expectations-mismatch/output-expected/stdout
@@ -1,5 +1,7 @@
GM: These configs will be run: 8888 565
GM: reading expectations from JSON summary file gm/tests/inputs/json/different-pixels.json
+GM: writing to gm/tests/outputs/ignore-expectations-mismatch/output-actual/writePath
+GM: writing mismatches to gm/tests/outputs/ignore-expectations-mismatch/output-actual/mismatchPath
GM: drawing... selftest1 [300 200]
GM: Ran 1 GMs
GM: ... over 2 configs ["8888", "565"]
diff --git a/gm/tests/outputs/ignore-expectations-mismatch/output-expected/writePath/565/selftest1.png b/gm/tests/outputs/ignore-expectations-mismatch/output-expected/writePath/565/selftest1.png
new file mode 100644
index 0000000000..5b86addaea
--- /dev/null
+++ b/gm/tests/outputs/ignore-expectations-mismatch/output-expected/writePath/565/selftest1.png
@@ -0,0 +1 @@
+[contents of gm/tests/outputs/ignore-expectations-mismatch/output-actual/writePath/565/selftest1.png]
diff --git a/gm/tests/outputs/ignore-expectations-mismatch/output-expected/writePath/8888/selftest1.png b/gm/tests/outputs/ignore-expectations-mismatch/output-expected/writePath/8888/selftest1.png
new file mode 100644
index 0000000000..b33ea833ac
--- /dev/null
+++ b/gm/tests/outputs/ignore-expectations-mismatch/output-expected/writePath/8888/selftest1.png
@@ -0,0 +1 @@
+[contents of gm/tests/outputs/ignore-expectations-mismatch/output-actual/writePath/8888/selftest1.png]
diff --git a/gm/tests/outputs/intentionally-skipped-tests/output-expected/command_line b/gm/tests/outputs/intentionally-skipped-tests/output-expected/command_line
index 361cb5213e..29ff44d1ab 100644
--- a/gm/tests/outputs/intentionally-skipped-tests/output-expected/command_line
+++ b/gm/tests/outputs/intentionally-skipped-tests/output-expected/command_line
@@ -1 +1 @@
-out/Debug/gm --verbose --hierarchy --match selftest1 selftest2 --config 8888 565 --writeJsonSummaryPath gm/tests/outputs/intentionally-skipped-tests/output-actual/json-summary.txt
+out/Debug/gm --verbose --hierarchy --match selftest1 selftest2 --config 8888 565 --writeJsonSummaryPath gm/tests/outputs/intentionally-skipped-tests/output-actual/json-summary.txt --writePath gm/tests/outputs/intentionally-skipped-tests/output-actual/writePath --mismatchPath gm/tests/outputs/intentionally-skipped-tests/output-actual/mismatchPath
diff --git a/gm/tests/outputs/intentionally-skipped-tests/output-expected/mismatchPath/565/bogusfile b/gm/tests/outputs/intentionally-skipped-tests/output-expected/mismatchPath/565/bogusfile
new file mode 100644
index 0000000000..d86cd5bdd8
--- /dev/null
+++ b/gm/tests/outputs/intentionally-skipped-tests/output-expected/mismatchPath/565/bogusfile
@@ -0,0 +1 @@
+Created additional file to make sure directory isn't empty, because self-test cannot handle empty directories.
diff --git a/gm/tests/outputs/intentionally-skipped-tests/output-expected/mismatchPath/8888/bogusfile b/gm/tests/outputs/intentionally-skipped-tests/output-expected/mismatchPath/8888/bogusfile
new file mode 100644
index 0000000000..d86cd5bdd8
--- /dev/null
+++ b/gm/tests/outputs/intentionally-skipped-tests/output-expected/mismatchPath/8888/bogusfile
@@ -0,0 +1 @@
+Created additional file to make sure directory isn't empty, because self-test cannot handle empty directories.
diff --git a/gm/tests/outputs/intentionally-skipped-tests/output-expected/stdout b/gm/tests/outputs/intentionally-skipped-tests/output-expected/stdout
index f7eec19305..b94f24c97c 100644
--- a/gm/tests/outputs/intentionally-skipped-tests/output-expected/stdout
+++ b/gm/tests/outputs/intentionally-skipped-tests/output-expected/stdout
@@ -1,4 +1,6 @@
GM: These configs will be run: 8888 565
+GM: writing to gm/tests/outputs/intentionally-skipped-tests/output-actual/writePath
+GM: writing mismatches to gm/tests/outputs/intentionally-skipped-tests/output-actual/mismatchPath
GM: drawing... selftest2 [300 200]
GM: drawing... selftest1 [300 200]
GM: Ran 2 GMs
diff --git a/gm/tests/outputs/intentionally-skipped-tests/output-expected/writePath/565/selftest1.png b/gm/tests/outputs/intentionally-skipped-tests/output-expected/writePath/565/selftest1.png
new file mode 100644
index 0000000000..fd1af59fce
--- /dev/null
+++ b/gm/tests/outputs/intentionally-skipped-tests/output-expected/writePath/565/selftest1.png
@@ -0,0 +1 @@
+[contents of gm/tests/outputs/intentionally-skipped-tests/output-actual/writePath/565/selftest1.png]
diff --git a/gm/tests/outputs/intentionally-skipped-tests/output-expected/writePath/565/selftest2.png b/gm/tests/outputs/intentionally-skipped-tests/output-expected/writePath/565/selftest2.png
new file mode 100644
index 0000000000..44bbef7e17
--- /dev/null
+++ b/gm/tests/outputs/intentionally-skipped-tests/output-expected/writePath/565/selftest2.png
@@ -0,0 +1 @@
+[contents of gm/tests/outputs/intentionally-skipped-tests/output-actual/writePath/565/selftest2.png]
diff --git a/gm/tests/outputs/intentionally-skipped-tests/output-expected/writePath/8888/selftest1.png b/gm/tests/outputs/intentionally-skipped-tests/output-expected/writePath/8888/selftest1.png
new file mode 100644
index 0000000000..a322ded4f6
--- /dev/null
+++ b/gm/tests/outputs/intentionally-skipped-tests/output-expected/writePath/8888/selftest1.png
@@ -0,0 +1 @@
+[contents of gm/tests/outputs/intentionally-skipped-tests/output-actual/writePath/8888/selftest1.png]
diff --git a/gm/tests/outputs/intentionally-skipped-tests/output-expected/writePath/8888/selftest2.png b/gm/tests/outputs/intentionally-skipped-tests/output-expected/writePath/8888/selftest2.png
new file mode 100644
index 0000000000..c56ee69561
--- /dev/null
+++ b/gm/tests/outputs/intentionally-skipped-tests/output-expected/writePath/8888/selftest2.png
@@ -0,0 +1 @@
+[contents of gm/tests/outputs/intentionally-skipped-tests/output-actual/writePath/8888/selftest2.png]
diff --git a/gm/tests/outputs/no-readpath/output-expected/command_line b/gm/tests/outputs/no-readpath/output-expected/command_line
index 3192ddbb3e..bb3679c732 100644
--- a/gm/tests/outputs/no-readpath/output-expected/command_line
+++ b/gm/tests/outputs/no-readpath/output-expected/command_line
@@ -1 +1 @@
-out/Debug/gm --verbose --hierarchy --match selftest1 --config 8888 565 --writeJsonSummaryPath gm/tests/outputs/no-readpath/output-actual/json-summary.txt
+out/Debug/gm --verbose --hierarchy --match selftest1 --config 8888 565 --writeJsonSummaryPath gm/tests/outputs/no-readpath/output-actual/json-summary.txt --writePath gm/tests/outputs/no-readpath/output-actual/writePath --mismatchPath gm/tests/outputs/no-readpath/output-actual/mismatchPath
diff --git a/gm/tests/outputs/no-readpath/output-expected/mismatchPath/565/bogusfile b/gm/tests/outputs/no-readpath/output-expected/mismatchPath/565/bogusfile
new file mode 100644
index 0000000000..d86cd5bdd8
--- /dev/null
+++ b/gm/tests/outputs/no-readpath/output-expected/mismatchPath/565/bogusfile
@@ -0,0 +1 @@
+Created additional file to make sure directory isn't empty, because self-test cannot handle empty directories.
diff --git a/gm/tests/outputs/no-readpath/output-expected/mismatchPath/8888/bogusfile b/gm/tests/outputs/no-readpath/output-expected/mismatchPath/8888/bogusfile
new file mode 100644
index 0000000000..d86cd5bdd8
--- /dev/null
+++ b/gm/tests/outputs/no-readpath/output-expected/mismatchPath/8888/bogusfile
@@ -0,0 +1 @@
+Created additional file to make sure directory isn't empty, because self-test cannot handle empty directories.
diff --git a/gm/tests/outputs/no-readpath/output-expected/stdout b/gm/tests/outputs/no-readpath/output-expected/stdout
index 7ce257bac2..43f4ca35df 100644
--- a/gm/tests/outputs/no-readpath/output-expected/stdout
+++ b/gm/tests/outputs/no-readpath/output-expected/stdout
@@ -1,4 +1,6 @@
GM: These configs will be run: 8888 565
+GM: writing to gm/tests/outputs/no-readpath/output-actual/writePath
+GM: writing mismatches to gm/tests/outputs/no-readpath/output-actual/mismatchPath
GM: drawing... selftest1 [300 200]
GM: Ran 1 GMs
GM: ... over 2 configs ["8888", "565"]
diff --git a/gm/tests/outputs/no-readpath/output-expected/writePath/565/selftest1.png b/gm/tests/outputs/no-readpath/output-expected/writePath/565/selftest1.png
new file mode 100644
index 0000000000..2943f0a91c
--- /dev/null
+++ b/gm/tests/outputs/no-readpath/output-expected/writePath/565/selftest1.png
@@ -0,0 +1 @@
+[contents of gm/tests/outputs/no-readpath/output-actual/writePath/565/selftest1.png]
diff --git a/gm/tests/outputs/no-readpath/output-expected/writePath/8888/selftest1.png b/gm/tests/outputs/no-readpath/output-expected/writePath/8888/selftest1.png
new file mode 100644
index 0000000000..50a0c247ae
--- /dev/null
+++ b/gm/tests/outputs/no-readpath/output-expected/writePath/8888/selftest1.png
@@ -0,0 +1 @@
+[contents of gm/tests/outputs/no-readpath/output-actual/writePath/8888/selftest1.png]
diff --git a/gm/tests/outputs/nonverbose/output-expected/command_line b/gm/tests/outputs/nonverbose/output-expected/command_line
index 7c71a72a41..911455f8f0 100644
--- a/gm/tests/outputs/nonverbose/output-expected/command_line
+++ b/gm/tests/outputs/nonverbose/output-expected/command_line
@@ -1 +1 @@
-out/Debug/gm --hierarchy --match selftest1 --config 8888 565 -r gm/tests/inputs/images/empty-dir --writeJsonSummaryPath gm/tests/outputs/nonverbose/output-actual/json-summary.txt
+out/Debug/gm --hierarchy --match selftest1 --config 8888 565 -r gm/tests/inputs/images/empty-dir --writeJsonSummaryPath gm/tests/outputs/nonverbose/output-actual/json-summary.txt --writePath gm/tests/outputs/nonverbose/output-actual/writePath --mismatchPath gm/tests/outputs/nonverbose/output-actual/mismatchPath
diff --git a/gm/tests/outputs/nonverbose/output-expected/mismatchPath/565/bogusfile b/gm/tests/outputs/nonverbose/output-expected/mismatchPath/565/bogusfile
new file mode 100644
index 0000000000..d86cd5bdd8
--- /dev/null
+++ b/gm/tests/outputs/nonverbose/output-expected/mismatchPath/565/bogusfile
@@ -0,0 +1 @@
+Created additional file to make sure directory isn't empty, because self-test cannot handle empty directories.
diff --git a/gm/tests/outputs/nonverbose/output-expected/mismatchPath/8888/bogusfile b/gm/tests/outputs/nonverbose/output-expected/mismatchPath/8888/bogusfile
new file mode 100644
index 0000000000..d86cd5bdd8
--- /dev/null
+++ b/gm/tests/outputs/nonverbose/output-expected/mismatchPath/8888/bogusfile
@@ -0,0 +1 @@
+Created additional file to make sure directory isn't empty, because self-test cannot handle empty directories.
diff --git a/gm/tests/outputs/nonverbose/output-expected/writePath/565/selftest1.png b/gm/tests/outputs/nonverbose/output-expected/writePath/565/selftest1.png
new file mode 100644
index 0000000000..6b9d422388
--- /dev/null
+++ b/gm/tests/outputs/nonverbose/output-expected/writePath/565/selftest1.png
@@ -0,0 +1 @@
+[contents of gm/tests/outputs/nonverbose/output-actual/writePath/565/selftest1.png]
diff --git a/gm/tests/outputs/nonverbose/output-expected/writePath/8888/selftest1.png b/gm/tests/outputs/nonverbose/output-expected/writePath/8888/selftest1.png
new file mode 100644
index 0000000000..4f04a60380
--- /dev/null
+++ b/gm/tests/outputs/nonverbose/output-expected/writePath/8888/selftest1.png
@@ -0,0 +1 @@
+[contents of gm/tests/outputs/nonverbose/output-actual/writePath/8888/selftest1.png]
diff --git a/gm/tests/outputs/pipe-playback-failure/output-expected/command_line b/gm/tests/outputs/pipe-playback-failure/output-expected/command_line
index 28c5a67da0..ffcf72d95c 100644
--- a/gm/tests/outputs/pipe-playback-failure/output-expected/command_line
+++ b/gm/tests/outputs/pipe-playback-failure/output-expected/command_line
@@ -1 +1 @@
-out/Debug/gm --simulatePipePlaybackFailure --verbose --hierarchy --match selftest1 --config 8888 565 -r gm/tests/inputs/json/identical-pixels.json --writeJsonSummaryPath gm/tests/outputs/pipe-playback-failure/output-actual/json-summary.txt
+out/Debug/gm --simulatePipePlaybackFailure --verbose --hierarchy --match selftest1 --config 8888 565 -r gm/tests/inputs/json/identical-pixels.json --writeJsonSummaryPath gm/tests/outputs/pipe-playback-failure/output-actual/json-summary.txt --writePath gm/tests/outputs/pipe-playback-failure/output-actual/writePath --mismatchPath gm/tests/outputs/pipe-playback-failure/output-actual/mismatchPath
diff --git a/gm/tests/outputs/pipe-playback-failure/output-expected/mismatchPath/565/bogusfile b/gm/tests/outputs/pipe-playback-failure/output-expected/mismatchPath/565/bogusfile
new file mode 100644
index 0000000000..d86cd5bdd8
--- /dev/null
+++ b/gm/tests/outputs/pipe-playback-failure/output-expected/mismatchPath/565/bogusfile
@@ -0,0 +1 @@
+Created additional file to make sure directory isn't empty, because self-test cannot handle empty directories.
diff --git a/gm/tests/outputs/pipe-playback-failure/output-expected/mismatchPath/8888/bogusfile b/gm/tests/outputs/pipe-playback-failure/output-expected/mismatchPath/8888/bogusfile
new file mode 100644
index 0000000000..d86cd5bdd8
--- /dev/null
+++ b/gm/tests/outputs/pipe-playback-failure/output-expected/mismatchPath/8888/bogusfile
@@ -0,0 +1 @@
+Created additional file to make sure directory isn't empty, because self-test cannot handle empty directories.
diff --git a/gm/tests/outputs/pipe-playback-failure/output-expected/stdout b/gm/tests/outputs/pipe-playback-failure/output-expected/stdout
index 811f5a7c52..e15af88291 100644
--- a/gm/tests/outputs/pipe-playback-failure/output-expected/stdout
+++ b/gm/tests/outputs/pipe-playback-failure/output-expected/stdout
@@ -1,5 +1,7 @@
GM: These configs will be run: 8888 565
GM: reading expectations from JSON summary file gm/tests/inputs/json/identical-pixels.json
+GM: writing to gm/tests/outputs/pipe-playback-failure/output-actual/writePath
+GM: writing mismatches to gm/tests/outputs/pipe-playback-failure/output-actual/mismatchPath
GM: drawing... selftest1 [300 200]
GM: Ran 1 GMs
GM: ... over 2 configs ["8888", "565"]
diff --git a/gm/tests/outputs/pipe-playback-failure/output-expected/writePath/565/selftest1.png b/gm/tests/outputs/pipe-playback-failure/output-expected/writePath/565/selftest1.png
new file mode 100644
index 0000000000..5fec2967aa
--- /dev/null
+++ b/gm/tests/outputs/pipe-playback-failure/output-expected/writePath/565/selftest1.png
@@ -0,0 +1 @@
+[contents of gm/tests/outputs/pipe-playback-failure/output-actual/writePath/565/selftest1.png]
diff --git a/gm/tests/outputs/pipe-playback-failure/output-expected/writePath/8888/selftest1.png b/gm/tests/outputs/pipe-playback-failure/output-expected/writePath/8888/selftest1.png
new file mode 100644
index 0000000000..975f68fcb2
--- /dev/null
+++ b/gm/tests/outputs/pipe-playback-failure/output-expected/writePath/8888/selftest1.png
@@ -0,0 +1 @@
+[contents of gm/tests/outputs/pipe-playback-failure/output-actual/writePath/8888/selftest1.png]
diff --git a/gm/tests/run.sh b/gm/tests/run.sh
index b3f23ce160..e9cc19df61 100755
--- a/gm/tests/run.sh
+++ b/gm/tests/run.sh
@@ -21,12 +21,6 @@ cd $(dirname $0)/../..
# TODO(epoger): make it look in Release and/or Debug
GM_BINARY=out/Debug/gm
-# If WRITE_IMAGE_FILES is nonzero, then the self-test will pass --writePath
-# and --mismatchPath arguments to GM. Currently, for various reasons, we
-# cannot run these arguments on the production buildbots, so this should
-# only be set to nonzero for local testing.
-WRITE_IMAGE_FILES=0
-
OUTPUT_ACTUAL_SUBDIR=output-actual
OUTPUT_EXPECTED_SUBDIR=output-expected
CONFIGS="--config 8888 565"
@@ -69,10 +63,7 @@ function gm_test {
rm -rf $ACTUAL_OUTPUT_DIR
mkdir -p $ACTUAL_OUTPUT_DIR
- COMMAND="$GM_BINARY $GM_ARGS --writeJsonSummaryPath $JSON_SUMMARY_FILE"
- if [ $WRITE_IMAGE_FILES != 0 ]; then
- COMMAND="$COMMAND --writePath $ACTUAL_OUTPUT_DIR/writePath --mismatchPath $ACTUAL_OUTPUT_DIR/mismatchPath"
- fi
+ COMMAND="$GM_BINARY $GM_ARGS --writeJsonSummaryPath $JSON_SUMMARY_FILE --writePath $ACTUAL_OUTPUT_DIR/writePath --mismatchPath $ACTUAL_OUTPUT_DIR/mismatchPath"
echo "$COMMAND" >$ACTUAL_OUTPUT_DIR/command_line
$COMMAND >$ACTUAL_OUTPUT_DIR/stdout 2>$ACTUAL_OUTPUT_DIR/stderr
@@ -88,16 +79,16 @@ function gm_test {
grep ^GM: $ACTUAL_OUTPUT_DIR/stderr >$ACTUAL_OUTPUT_DIR/stderr-tmp
mv $ACTUAL_OUTPUT_DIR/stderr-tmp $ACTUAL_OUTPUT_DIR/stderr
- if [ $WRITE_IMAGE_FILES != 0 ]; then
- for IMAGEFILE in $(ls $ACTUAL_OUTPUT_DIR/*/*/*.png); do
- SUM=$(sum $IMAGEFILE)
- echo "Replaced image bytes with a checksum, because of https://code.google.com/p/chromium/issues/detail?id=169600 ('gcl/upload.py fail to upload binary files to rietveld')" >$IMAGEFILE
- echo $SUM >> $IMAGEFILE
- done
- for MISMATCHDIR in $(ls -d $ACTUAL_OUTPUT_DIR/mismatchPath/*); do
- echo "Created additional file to make sure directory isn't empty, because self-test cannot handle empty directories." >$MISMATCHDIR/bogusfile
- done
- fi
+ # Replace image file contents with just the filename, for two reasons:
+ # 1. Image file encoding may vary by platform
+ # 2. https://code.google.com/p/chromium/issues/detail?id=169600
+ # ('gcl/upload.py fail to upload binary files to rietveld')
+ for IMAGEFILE in $(ls $ACTUAL_OUTPUT_DIR/*/*/*.png); do
+ echo "[contents of $IMAGEFILE]" >$IMAGEFILE
+ done
+ for MISMATCHDIR in $(ls -d $ACTUAL_OUTPUT_DIR/mismatchPath/*); do
+ echo "Created additional file to make sure directory isn't empty, because self-test cannot handle empty directories." >$MISMATCHDIR/bogusfile
+ done
compare_directories $EXPECTED_OUTPUT_DIR $ACTUAL_OUTPUT_DIR
}