Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(41)

Side by Side Diff: gm/tests/run.sh

Issue 136883006: make ignored-tests.txt specify full test name, not partial name (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: update real ignored-tests.txt file Created 6 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « gm/tests/outputs/ignoring-one-test/output-expected/writePath/8888/selftest2.png ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 #!/bin/bash 1 #!/bin/bash
2 2
3 # Self-tests for gm, based on tools/tests/run.sh 3 # Self-tests for gm, based on tools/tests/run.sh
4 # 4 #
5 # These tests are run by the Skia_PerCommit_House_Keeping bot at every commit, 5 # These tests are run by the Skia_PerCommit_House_Keeping bot at every commit,
6 # so make sure that they still pass when you make changes to gm! 6 # so make sure that they still pass when you make changes to gm!
7 # 7 #
8 # To generate new baselines when gm behavior changes, run gm/tests/rebaseline.sh 8 # To generate new baselines when gm behavior changes, run gm/tests/rebaseline.sh
9 # 9 #
10 # TODO: because this is written as a shell script (instead of, say, Python) 10 # TODO: because this is written as a shell script (instead of, say, Python)
(...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after
113 done 113 done
114 114
115 # Add a file to any empty subdirectories. 115 # Add a file to any empty subdirectories.
116 for DIR in $(find $ACTUAL_OUTPUT_DIR -mindepth 1 -type d); do 116 for DIR in $(find $ACTUAL_OUTPUT_DIR -mindepth 1 -type d); do
117 echo "Created additional file to make sure directory isn't empty, because se lf-test cannot handle empty directories." >$DIR/bogusfile 117 echo "Created additional file to make sure directory isn't empty, because se lf-test cannot handle empty directories." >$DIR/bogusfile
118 done 118 done
119 119
120 compare_directories $EXPECTED_OUTPUT_DIR $ACTUAL_OUTPUT_DIR 120 compare_directories $EXPECTED_OUTPUT_DIR $ACTUAL_OUTPUT_DIR
121 } 121 }
122 122
123 # Swap contents of two files at paths $1 and $2.
124 function swap_files {
125 if [ $# != 2 ]; then
126 echo "swap_files requires exactly 2 parameters, got $#"
127 exit 1
128 fi
129 mv "$1" "$1.tmp"
130 mv "$2" "$1"
131 mv "$1.tmp" "$2"
132 }
133
123 # Create input dir (at path $1) with expectations (both image and json) 134 # Create input dir (at path $1) with expectations (both image and json)
124 # that gm will match or mismatch as appropriate. 135 # that gm will match or mismatch as appropriate.
125 # 136 #
126 # We used to check these files into SVN, but then we needed to rebaseline them 137 # We used to check these files into SVN, but then we needed to rebaseline them
127 # when our drawing changed at all... so, as proposed in 138 # when our drawing changed at all... so, as proposed in
128 # http://code.google.com/p/skia/issues/detail?id=1068 , we generate them 139 # http://code.google.com/p/skia/issues/detail?id=1068 , we generate them
129 # new each time. 140 # new each time.
130 function create_inputs_dir { 141 function create_inputs_dir {
131 if [ $# != 1 ]; then 142 if [ $# != 1 ]; then
132 echo "create_inputs_dir requires exactly 1 parameter, got $#" 143 echo "create_inputs_dir requires exactly 1 parameter, got $#"
(...skipping 17 matching lines...) Expand all
150 $GM_BINARY --hierarchy --match selftest1 $CONFIGS -w $THIS_IMAGE_DIR 161 $GM_BINARY --hierarchy --match selftest1 $CONFIGS -w $THIS_IMAGE_DIR
151 echo "more bytes that do not change the image pixels" \ 162 echo "more bytes that do not change the image pixels" \
152 >> $THIS_IMAGE_DIR/8888/selftest1.png 163 >> $THIS_IMAGE_DIR/8888/selftest1.png
153 echo "more bytes that do not change the image pixels" \ 164 echo "more bytes that do not change the image pixels" \
154 >> $THIS_IMAGE_DIR/565/selftest1.png 165 >> $THIS_IMAGE_DIR/565/selftest1.png
155 $GM_BINARY --hierarchy --match selftest1 $CONFIGS -r $THIS_IMAGE_DIR \ 166 $GM_BINARY --hierarchy --match selftest1 $CONFIGS -r $THIS_IMAGE_DIR \
156 --writeJsonSummaryPath $JSON_DIR/identical-pixels.json 167 --writeJsonSummaryPath $JSON_DIR/identical-pixels.json
157 168
158 THIS_IMAGE_DIR=$IMAGES_DIR/different-pixels 169 THIS_IMAGE_DIR=$IMAGES_DIR/different-pixels
159 mkdir -p $THIS_IMAGE_DIR 170 mkdir -p $THIS_IMAGE_DIR
160 $GM_BINARY --hierarchy --match selftest2 $CONFIGS -w $THIS_IMAGE_DIR 171 $GM_BINARY --hierarchy --match selftest $CONFIGS -w $THIS_IMAGE_DIR
161 mv $THIS_IMAGE_DIR/8888/selftest2.png $THIS_IMAGE_DIR/8888/selftest1.png 172 swap_files $THIS_IMAGE_DIR/8888/selftest2.png $THIS_IMAGE_DIR/8888/selftest1.p ng
162 mv $THIS_IMAGE_DIR/565/selftest2.png $THIS_IMAGE_DIR/565/selftest1.png 173 swap_files $THIS_IMAGE_DIR/565/selftest2.png $THIS_IMAGE_DIR/565/selftest1.pn g
163 $GM_BINARY --hierarchy --match selftest1 $CONFIGS -r $THIS_IMAGE_DIR \ 174 $GM_BINARY --hierarchy --match selftest $CONFIGS -r $THIS_IMAGE_DIR \
164 --writeJsonSummaryPath $JSON_DIR/different-pixels.json 175 --writeJsonSummaryPath $JSON_DIR/different-pixels.json
165 176
166 # Create another JSON expectations file which is identical to 177 # Create another JSON expectations file which is identical to
167 # different-pixels.json, but in which the *first* ignore-failure is changed 178 # different-pixels.json, but in which the *first* ignore-failure is changed
168 # from false to true. 179 # from false to true.
169 OLD='"ignore-failure" : false' 180 OLD='"ignore-failure" : false'
170 NEW='"ignore-failure" : true' 181 NEW='"ignore-failure" : true'
171 sed -e "0,/$OLD/{s/$OLD/$NEW/}" $JSON_DIR/different-pixels.json \ 182 sed -e "0,/$OLD/{s/$OLD/$NEW/}" $JSON_DIR/different-pixels.json \
172 >$JSON_DIR/different-pixels-ignore-some-failures.json 183 >$JSON_DIR/different-pixels-ignore-some-failures.json
173 184
174 THIS_IMAGE_DIR=$IMAGES_DIR/different-pixels-no-hierarchy 185 THIS_IMAGE_DIR=$IMAGES_DIR/different-pixels-no-hierarchy
175 mkdir -p $THIS_IMAGE_DIR 186 mkdir -p $THIS_IMAGE_DIR
176 $GM_BINARY --match selftest2 $CONFIGS -w $THIS_IMAGE_DIR 187 $GM_BINARY --match selftest2 $CONFIGS -w $THIS_IMAGE_DIR
177 mv $THIS_IMAGE_DIR/selftest2_8888.png $THIS_IMAGE_DIR/selftest1_8888.png 188 mv $THIS_IMAGE_DIR/selftest2_8888.png $THIS_IMAGE_DIR/selftest1_8888.png
178 mv $THIS_IMAGE_DIR/selftest2_565.png $THIS_IMAGE_DIR/selftest1_565.png 189 mv $THIS_IMAGE_DIR/selftest2_565.png $THIS_IMAGE_DIR/selftest1_565.png
179 $GM_BINARY --match selftest1 $CONFIGS -r $THIS_IMAGE_DIR \ 190 $GM_BINARY --match selftest1 $CONFIGS -r $THIS_IMAGE_DIR \
180 --writeJsonSummaryPath $JSON_DIR/different-pixels-no-hierarchy.json 191 --writeJsonSummaryPath $JSON_DIR/different-pixels-no-hierarchy.json
181 192
182 mkdir -p $IMAGES_DIR/empty-dir 193 mkdir -p $IMAGES_DIR/empty-dir
183 194
184 echo "# Comment line" >$GM_IGNORE_FAILURES_FILE 195 echo "# Comment line" >$GM_IGNORE_FAILURES_FILE
185 echo "" >>$GM_IGNORE_FAILURES_FILE 196 echo "" >>$GM_IGNORE_FAILURES_FILE
186 echo "# ignore any test runs whose filename contains '8888/selfte'" >>$GM_IGNO RE_FAILURES_FILE 197 echo "# ignore any runs of the 'selftest1' test" >>$GM_IGNORE_FAILURES_FILE
187 echo "# (in other words, config is 8888 and test name starts with 'selfte')" >>$GM_IGNORE_FAILURES_FILE 198 echo "selftest1" >>$GM_IGNORE_FAILURES_FILE
188 echo "8888/selfte" >>$GM_IGNORE_FAILURES_FILE 199 echo "" >>$GM_IGNORE_FAILURES_FILE
200 echo "# make sure we don't do partial matches (should NOT ignore 'selftest2' r uns)" >>$GM_IGNORE_FAILURES_FILE
201 echo "selftest" >>$GM_IGNORE_FAILURES_FILE
189 } 202 }
190 203
191 GM_TESTDIR=gm/tests 204 GM_TESTDIR=gm/tests
192 GM_INPUTS=$GM_TESTDIR/inputs 205 GM_INPUTS=$GM_TESTDIR/inputs
193 GM_OUTPUTS=$GM_TESTDIR/outputs 206 GM_OUTPUTS=$GM_TESTDIR/outputs
194 GM_TEMPFILES=$GM_TESTDIR/tempfiles 207 GM_TEMPFILES=$GM_TESTDIR/tempfiles
195 GM_IGNORE_FAILURES_FILE=$GM_INPUTS/ignored-tests.txt 208 GM_IGNORE_FAILURES_FILE=$GM_INPUTS/ignored-tests.txt
196 209
197 create_inputs_dir $GM_INPUTS 210 create_inputs_dir $GM_INPUTS
198 211
199 # Compare generated image against an input image file with identical bytes. 212 # Compare generated image against an input image file with identical bytes.
200 gm_test "--verbose --hierarchy --match selftest1 $CONFIGS -r $GM_INPUTS/images/i dentical-bytes" "$GM_OUTPUTS/compared-against-identical-bytes-images" 213 gm_test "--verbose --hierarchy --match selftest1 $CONFIGS -r $GM_INPUTS/images/i dentical-bytes" "$GM_OUTPUTS/compared-against-identical-bytes-images"
201 gm_test "--verbose --hierarchy --match selftest1 $CONFIGS -r $GM_INPUTS/json/ide ntical-bytes.json" "$GM_OUTPUTS/compared-against-identical-bytes-json" 214 gm_test "--verbose --hierarchy --match selftest1 $CONFIGS -r $GM_INPUTS/json/ide ntical-bytes.json" "$GM_OUTPUTS/compared-against-identical-bytes-json"
202 215
203 # Compare generated image against an input image file with identical pixels but different PNG encoding. 216 # Compare generated image against an input image file with identical pixels but different PNG encoding.
204 gm_test "--verbose --hierarchy --match selftest1 $CONFIGS -r $GM_INPUTS/images/i dentical-pixels" "$GM_OUTPUTS/compared-against-identical-pixels-images" 217 gm_test "--verbose --hierarchy --match selftest1 $CONFIGS -r $GM_INPUTS/images/i dentical-pixels" "$GM_OUTPUTS/compared-against-identical-pixels-images"
205 gm_test "--verbose --hierarchy --match selftest1 $CONFIGS -r $GM_INPUTS/json/ide ntical-pixels.json" "$GM_OUTPUTS/compared-against-identical-pixels-json" 218 gm_test "--verbose --hierarchy --match selftest1 $CONFIGS -r $GM_INPUTS/json/ide ntical-pixels.json" "$GM_OUTPUTS/compared-against-identical-pixels-json"
206 219
207 # Compare generated image against an input image file with different pixels. 220 # Compare generated image against an input image file with different pixels.
208 gm_test "--verbose --hierarchy --match selftest1 $CONFIGS -r $GM_INPUTS/images/d ifferent-pixels" "$GM_OUTPUTS/compared-against-different-pixels-images" 221 gm_test "--verbose --hierarchy --match selftest1 $CONFIGS -r $GM_INPUTS/images/d ifferent-pixels" "$GM_OUTPUTS/compared-against-different-pixels-images"
209 gm_test "--verbose --hierarchy --match selftest1 $CONFIGS -r $GM_INPUTS/json/dif ferent-pixels.json" "$GM_OUTPUTS/compared-against-different-pixels-json" 222 gm_test "--verbose --hierarchy --match selftest1 $CONFIGS -r $GM_INPUTS/json/dif ferent-pixels.json" "$GM_OUTPUTS/compared-against-different-pixels-json"
210 223
211 # Exercise --ignoreFailuresFile flag. 224 # Exercise --ignoreFailuresFile flag.
212 gm_test "--verbose --hierarchy --match selftest1 --ignoreFailuresFile $GM_IGNORE _FAILURES_FILE $CONFIGS -r $GM_INPUTS/json/different-pixels.json" "$GM_OUTPUTS/i gnoring-one-test" 225 # This should run two GM tests: selftest1 and selftest2.
226 # Failures in selftest1 should be ignored, but failures in selftest2 should not.
227 gm_test "--verbose --hierarchy --match selftest --ignoreFailuresFile $GM_IGNORE_ FAILURES_FILE $CONFIGS -r $GM_INPUTS/json/different-pixels.json" "$GM_OUTPUTS/ig noring-one-test"
213 228
214 # Compare different pixels, but with a SUBSET of the expectations marked as 229 # Compare different pixels, but with a SUBSET of the expectations marked as
215 # ignore-failure. 230 # ignore-failure.
216 gm_test "--verbose --hierarchy --match selftest1 $CONFIGS -r $GM_INPUTS/json/dif ferent-pixels-ignore-some-failures.json" "$GM_OUTPUTS/ignoring-some-failures" 231 gm_test "--verbose --hierarchy --match selftest1 $CONFIGS -r $GM_INPUTS/json/dif ferent-pixels-ignore-some-failures.json" "$GM_OUTPUTS/ignoring-some-failures"
217 232
218 # Compare generated image against an empty "expected image" dir. 233 # Compare generated image against an empty "expected image" dir.
219 # Even the tests that have been marked as ignore-failure should show up as 234 # Even the tests that have been marked as ignore-failure (selftest1) should
220 # no-comparison. 235 # show up as no-comparison.
221 gm_test "--verbose --hierarchy --match selftest1 --ignoreFailuresFile $GM_IGNORE _FAILURES_FILE $CONFIGS -r $GM_INPUTS/images/empty-dir" "$GM_OUTPUTS/compared-ag ainst-empty-dir" 236 gm_test "--verbose --hierarchy --match selftest --ignoreFailuresFile $GM_IGNORE_ FAILURES_FILE $CONFIGS -r $GM_INPUTS/images/empty-dir" "$GM_OUTPUTS/compared-aga inst-empty-dir"
222 237
223 # Compare generated image against a nonexistent "expected image" dir. 238 # Compare generated image against a nonexistent "expected image" dir.
224 gm_test "--verbose --hierarchy --match selftest1 $CONFIGS -r ../path/to/nowhere" "$GM_OUTPUTS/compared-against-nonexistent-dir" 239 gm_test "--verbose --hierarchy --match selftest1 $CONFIGS -r ../path/to/nowhere" "$GM_OUTPUTS/compared-against-nonexistent-dir"
225 240
226 # Compare generated image against an empty "expected image" dir, but NOT in verb ose mode. 241 # Compare generated image against an empty "expected image" dir, but NOT in verb ose mode.
227 gm_test "--hierarchy --match selftest1 $CONFIGS -r $GM_INPUTS/images/empty-dir" "$GM_OUTPUTS/nonverbose" 242 gm_test "--hierarchy --match selftest1 $CONFIGS -r $GM_INPUTS/images/empty-dir" "$GM_OUTPUTS/nonverbose"
228 243
229 # Add pdf to the list of configs. 244 # Add pdf to the list of configs.
230 gm_test "--verbose --hierarchy --match selftest1 $CONFIGS pdf -r $GM_INPUTS/json /identical-bytes.json" "$GM_OUTPUTS/add-config-pdf" 245 gm_test "--verbose --hierarchy --match selftest1 $CONFIGS pdf -r $GM_INPUTS/json /identical-bytes.json" "$GM_OUTPUTS/add-config-pdf"
231 246
(...skipping 26 matching lines...) Expand all
258 for CASE in $FAILING_CASES; do 273 for CASE in $FAILING_CASES; do
259 assert_fails "python gm/display_json_results.py $GM_OUTPUTS/$CASE/$OUTPUT_EXPE CTED_SUBDIR/json-summary.txt" 274 assert_fails "python gm/display_json_results.py $GM_OUTPUTS/$CASE/$OUTPUT_EXPE CTED_SUBDIR/json-summary.txt"
260 done 275 done
261 276
262 if [ $ENCOUNTERED_ANY_ERRORS == 0 ]; then 277 if [ $ENCOUNTERED_ANY_ERRORS == 0 ]; then
263 echo "All tests passed." 278 echo "All tests passed."
264 exit 0 279 exit 0
265 else 280 else
266 exit 1 281 exit 1
267 fi 282 fi
OLDNEW
« no previous file with comments | « gm/tests/outputs/ignoring-one-test/output-expected/writePath/8888/selftest2.png ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698