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

Side by Side Diff: tools/tests/render_pictures_test.py

Issue 289063010: make render_pictures properly handle empty expectations file (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: extract some shared test code Created 6 years, 7 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 | « tools/image_expectations.cpp ('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 #!/usr/bin/python 1 #!/usr/bin/python
2 2
3 """ 3 """
4 Copyright 2014 Google Inc. 4 Copyright 2014 Google Inc.
5 5
6 Use of this source code is governed by a BSD-style license that can be 6 Use of this source code is governed by a BSD-style license that can be
7 found in the LICENSE file. 7 found in the LICENSE file.
8 8
9 Test the render_pictures binary. 9 Test the render_pictures binary.
10 """ 10 """
(...skipping 224 matching lines...) Expand 10 before | Expand all | Expand 10 after
235 RED_WHOLEIMAGE, {"comparisonResult" : "no-comparison"}), 235 RED_WHOLEIMAGE, {"comparisonResult" : "no-comparison"}),
236 }, 236 },
237 "green.skp": { 237 "green.skp": {
238 "tiled-images": GREEN_TILES, 238 "tiled-images": GREEN_TILES,
239 "whole-image": GREEN_WHOLEIMAGE, 239 "whole-image": GREEN_WHOLEIMAGE,
240 } 240 }
241 } 241 }
242 } 242 }
243 self._assert_json_contents(output_json_path, expected_summary_dict) 243 self._assert_json_contents(output_json_path, expected_summary_dict)
244 244
245 def test_untiled(self): 245 def _test_untiled(self, expectations_path=None, expected_summary_dict=None,
246 """Run without tiles.""" 246 additional_args=None):
247 """Base for multiple tests without tiles.
248
249 Args:
250 expectations_path: path we should pass using --readJsonSummaryPath, or
251 None if we should create the default expectations file
252 expected_summary_dict: dict we should compare against the output actual
253 results summary, or None if we should use a default comparison dict
254 additional_args: array of command-line args to add when we run
255 render_pictures
256 """
247 output_json_path = os.path.join(self._output_dir, 'actuals.json') 257 output_json_path = os.path.join(self._output_dir, 'actuals.json')
248 write_path_dir = self.create_empty_dir( 258 write_path_dir = self.create_empty_dir(
249 path=os.path.join(self._output_dir, 'writePath')) 259 path=os.path.join(self._output_dir, 'writePath'))
250 self._generate_skps() 260 self._generate_skps()
251 expectations_path = self._create_expectations() 261 if expectations_path == None:
252 self._run_render_pictures([ 262 expectations_path = self._create_expectations()
263 args = [
253 '-r', self._input_skp_dir, 264 '-r', self._input_skp_dir,
254 '--readJsonSummaryPath', expectations_path, 265 '--readJsonSummaryPath', expectations_path,
255 '--writePath', write_path_dir, 266 '--writePath', write_path_dir,
256 '--writeJsonSummaryPath', output_json_path]) 267 '--writeJsonSummaryPath', output_json_path,
268 ]
269 if additional_args:
270 args.extend(additional_args)
271 self._run_render_pictures(args)
272 if expected_summary_dict == None:
273 expected_summary_dict = {
274 "header" : EXPECTED_HEADER_CONTENTS,
275 "actual-results" : {
276 "red.skp": {
277 "whole-image": RED_WHOLEIMAGE,
278 },
279 "green.skp": {
280 "whole-image": GREEN_WHOLEIMAGE,
281 }
282 }
283 }
284 self._assert_json_contents(output_json_path, expected_summary_dict)
285 self._assert_directory_contents(
286 write_path_dir, ['red_skp.png', 'green_skp.png'])
287
288 def test_untiled(self):
289 """Basic test without tiles."""
290 self._test_untiled()
291
292 def test_untiled_empty_expectations_file(self):
293 """Same as test_untiled, but with an empty expectations file."""
294 expectations_path = os.path.join(self._expectations_dir, 'empty')
295 with open(expectations_path, 'w') as fh:
296 pass
257 expected_summary_dict = { 297 expected_summary_dict = {
258 "header" : EXPECTED_HEADER_CONTENTS, 298 "header" : EXPECTED_HEADER_CONTENTS,
259 "actual-results" : { 299 "actual-results" : {
260 "red.skp": { 300 "red.skp": {
261 "whole-image": RED_WHOLEIMAGE, 301 "whole-image": modified_dict(
302 RED_WHOLEIMAGE, {"comparisonResult" : "no-comparison"}),
262 }, 303 },
263 "green.skp": { 304 "green.skp": {
264 "whole-image": GREEN_WHOLEIMAGE, 305 "whole-image": modified_dict(
306 GREEN_WHOLEIMAGE, {"comparisonResult" : "no-comparison"}),
265 } 307 }
266 } 308 }
267 } 309 }
268 self._assert_json_contents(output_json_path, expected_summary_dict) 310 self._test_untiled(expectations_path=expectations_path,
269 self._assert_directory_contents( 311 expected_summary_dict=expected_summary_dict)
270 write_path_dir, ['red_skp.png', 'green_skp.png'])
271 312
272 def test_untiled_writeChecksumBasedFilenames(self): 313 def test_untiled_writeChecksumBasedFilenames(self):
273 """Same as test_untiled, but with --writeChecksumBasedFilenames.""" 314 """Same as test_untiled, but with --writeChecksumBasedFilenames."""
274 output_json_path = os.path.join(self._output_dir, 'actuals.json') 315 output_json_path = os.path.join(self._output_dir, 'actuals.json')
275 write_path_dir = self.create_empty_dir( 316 write_path_dir = self.create_empty_dir(
276 path=os.path.join(self._output_dir, 'writePath')) 317 path=os.path.join(self._output_dir, 'writePath'))
277 self._generate_skps() 318 self._generate_skps()
278 self._run_render_pictures(['-r', self._input_skp_dir, 319 self._run_render_pictures(['-r', self._input_skp_dir,
279 '--writeChecksumBasedFilenames', 320 '--writeChecksumBasedFilenames',
280 '--writePath', write_path_dir, 321 '--writePath', write_path_dir,
(...skipping 25 matching lines...) Expand all
306 self._assert_directory_contents(write_path_dir, ['red_skp', 'green_skp']) 347 self._assert_directory_contents(write_path_dir, ['red_skp', 'green_skp'])
307 self._assert_directory_contents( 348 self._assert_directory_contents(
308 os.path.join(write_path_dir, 'red_skp'), 349 os.path.join(write_path_dir, 'red_skp'),
309 ['bitmap-64bitMD5_11092453015575919668.png']) 350 ['bitmap-64bitMD5_11092453015575919668.png'])
310 self._assert_directory_contents( 351 self._assert_directory_contents(
311 os.path.join(write_path_dir, 'green_skp'), 352 os.path.join(write_path_dir, 'green_skp'),
312 ['bitmap-64bitMD5_8891695120562235492.png']) 353 ['bitmap-64bitMD5_8891695120562235492.png'])
313 354
314 def test_untiled_validate(self): 355 def test_untiled_validate(self):
315 """Same as test_untiled, but with --validate.""" 356 """Same as test_untiled, but with --validate."""
316 output_json_path = os.path.join(self._output_dir, 'actuals.json') 357 self._test_untiled(additional_args=['--validate'])
317 write_path_dir = self.create_empty_dir(
318 path=os.path.join(self._output_dir, 'writePath'))
319 self._generate_skps()
320 expectations_path = self._create_expectations()
321 self._run_render_pictures([
322 '-r', self._input_skp_dir,
323 '--readJsonSummaryPath', expectations_path,
324 '--validate',
325 '--writePath', write_path_dir,
326 '--writeJsonSummaryPath', output_json_path])
327 expected_summary_dict = {
328 "header" : EXPECTED_HEADER_CONTENTS,
329 "actual-results" : {
330 "red.skp": {
331 "whole-image": RED_WHOLEIMAGE,
332 },
333 "green.skp": {
334 "whole-image": GREEN_WHOLEIMAGE,
335 }
336 }
337 }
338 self._assert_json_contents(output_json_path, expected_summary_dict)
339 self._assert_directory_contents(
340 write_path_dir, ['red_skp.png', 'green_skp.png'])
341 358
342 def test_untiled_without_writePath(self): 359 def test_untiled_without_writePath(self):
343 """Same as test_untiled, but without --writePath.""" 360 """Same as test_untiled, but without --writePath."""
344 output_json_path = os.path.join(self._output_dir, 'actuals.json') 361 output_json_path = os.path.join(self._output_dir, 'actuals.json')
345 self._generate_skps() 362 self._generate_skps()
346 expectations_path = self._create_expectations() 363 expectations_path = self._create_expectations()
347 self._run_render_pictures([ 364 self._run_render_pictures([
348 '-r', self._input_skp_dir, 365 '-r', self._input_skp_dir,
349 '--readJsonSummaryPath', expectations_path, 366 '--readJsonSummaryPath', expectations_path,
350 '--writeJsonSummaryPath', output_json_path]) 367 '--writeJsonSummaryPath', output_json_path])
(...skipping 290 matching lines...) Expand 10 before | Expand all | Expand 10 after
641 self.assertMultiLineEqual(prettyprinted_expected_dict, 658 self.assertMultiLineEqual(prettyprinted_expected_dict,
642 prettyprinted_json_dict) 659 prettyprinted_json_dict)
643 660
644 661
645 def main(): 662 def main():
646 base_unittest.main(RenderPicturesTest) 663 base_unittest.main(RenderPicturesTest)
647 664
648 665
649 if __name__ == '__main__': 666 if __name__ == '__main__':
650 main() 667 main()
OLDNEW
« no previous file with comments | « tools/image_expectations.cpp ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698