OLD | NEW |
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 179 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
190 self._run_render_pictures([ | 190 self._run_render_pictures([ |
191 '-r', self._input_skp_dir, | 191 '-r', self._input_skp_dir, |
192 '--bbh', 'grid', '256', '256', | 192 '--bbh', 'grid', '256', '256', |
193 '--mode', 'tile', '256', '256', | 193 '--mode', 'tile', '256', '256', |
194 '--readJsonSummaryPath', expectations_path, | 194 '--readJsonSummaryPath', expectations_path, |
195 '--writeJsonSummaryPath', output_json_path, | 195 '--writeJsonSummaryPath', output_json_path, |
196 '--writePath', write_path_dir, | 196 '--writePath', write_path_dir, |
197 '--writeWholeImage']) | 197 '--writeWholeImage']) |
198 expected_summary_dict = { | 198 expected_summary_dict = { |
199 "header" : EXPECTED_HEADER_CONTENTS, | 199 "header" : EXPECTED_HEADER_CONTENTS, |
| 200 "descriptions" : None, |
200 "actual-results" : { | 201 "actual-results" : { |
201 "red.skp": { | 202 "red.skp": { |
202 "tiled-images": RED_TILES, | 203 "tiled-images": RED_TILES, |
203 "whole-image": RED_WHOLEIMAGE, | 204 "whole-image": RED_WHOLEIMAGE, |
204 }, | 205 }, |
205 "green.skp": { | 206 "green.skp": { |
206 "tiled-images": GREEN_TILES, | 207 "tiled-images": GREEN_TILES, |
207 "whole-image": GREEN_WHOLEIMAGE, | 208 "whole-image": GREEN_WHOLEIMAGE, |
208 } | 209 } |
209 } | 210 } |
(...skipping 15 matching lines...) Expand all Loading... |
225 '--bbh', 'grid', '256', '256', | 226 '--bbh', 'grid', '256', '256', |
226 '--mode', 'tile', '256', '256', | 227 '--mode', 'tile', '256', '256', |
227 '--readJsonSummaryPath', expectations_path, | 228 '--readJsonSummaryPath', expectations_path, |
228 '--writeJsonSummaryPath', output_json_path, | 229 '--writeJsonSummaryPath', output_json_path, |
229 '--writePath', write_path_dir, | 230 '--writePath', write_path_dir, |
230 '--writeWholeImage']) | 231 '--writeWholeImage']) |
231 modified_red_tiles = copy.deepcopy(RED_TILES) | 232 modified_red_tiles = copy.deepcopy(RED_TILES) |
232 modified_red_tiles[5]['comparisonResult'] = 'no-comparison' | 233 modified_red_tiles[5]['comparisonResult'] = 'no-comparison' |
233 expected_summary_dict = { | 234 expected_summary_dict = { |
234 "header" : EXPECTED_HEADER_CONTENTS, | 235 "header" : EXPECTED_HEADER_CONTENTS, |
| 236 "descriptions" : None, |
235 "actual-results" : { | 237 "actual-results" : { |
236 "red.skp": { | 238 "red.skp": { |
237 "tiled-images": modified_red_tiles, | 239 "tiled-images": modified_red_tiles, |
238 "whole-image": modified_dict( | 240 "whole-image": modified_dict( |
239 RED_WHOLEIMAGE, {"comparisonResult" : "no-comparison"}), | 241 RED_WHOLEIMAGE, {"comparisonResult" : "no-comparison"}), |
240 }, | 242 }, |
241 "green.skp": { | 243 "green.skp": { |
242 "tiled-images": GREEN_TILES, | 244 "tiled-images": GREEN_TILES, |
243 "whole-image": GREEN_WHOLEIMAGE, | 245 "whole-image": GREEN_WHOLEIMAGE, |
244 } | 246 } |
(...skipping 24 matching lines...) Expand all Loading... |
269 '--readJsonSummaryPath', expectations_path, | 271 '--readJsonSummaryPath', expectations_path, |
270 '--writePath', write_path_dir, | 272 '--writePath', write_path_dir, |
271 '--writeJsonSummaryPath', output_json_path, | 273 '--writeJsonSummaryPath', output_json_path, |
272 ] | 274 ] |
273 if additional_args: | 275 if additional_args: |
274 args.extend(additional_args) | 276 args.extend(additional_args) |
275 self._run_render_pictures(args) | 277 self._run_render_pictures(args) |
276 if expected_summary_dict == None: | 278 if expected_summary_dict == None: |
277 expected_summary_dict = { | 279 expected_summary_dict = { |
278 "header" : EXPECTED_HEADER_CONTENTS, | 280 "header" : EXPECTED_HEADER_CONTENTS, |
| 281 "descriptions" : None, |
279 "actual-results" : { | 282 "actual-results" : { |
280 "red.skp": { | 283 "red.skp": { |
281 "whole-image": RED_WHOLEIMAGE, | 284 "whole-image": RED_WHOLEIMAGE, |
282 }, | 285 }, |
283 "green.skp": { | 286 "green.skp": { |
284 "whole-image": GREEN_WHOLEIMAGE, | 287 "whole-image": GREEN_WHOLEIMAGE, |
285 } | 288 } |
286 } | 289 } |
287 } | 290 } |
288 self._assert_json_contents(output_json_path, expected_summary_dict) | 291 self._assert_json_contents(output_json_path, expected_summary_dict) |
289 self._assert_directory_contents( | 292 self._assert_directory_contents( |
290 write_path_dir, ['red_skp.png', 'green_skp.png']) | 293 write_path_dir, ['red_skp.png', 'green_skp.png']) |
291 | 294 |
292 def test_untiled(self): | 295 def test_untiled(self): |
293 """Basic test without tiles.""" | 296 """Basic test without tiles.""" |
294 self._test_untiled() | 297 self._test_untiled() |
295 | 298 |
296 def test_untiled_empty_expectations_file(self): | 299 def test_untiled_empty_expectations_file(self): |
297 """Same as test_untiled, but with an empty expectations file.""" | 300 """Same as test_untiled, but with an empty expectations file.""" |
298 expectations_path = os.path.join(self._expectations_dir, 'empty') | 301 expectations_path = os.path.join(self._expectations_dir, 'empty') |
299 with open(expectations_path, 'w'): | 302 with open(expectations_path, 'w'): |
300 pass | 303 pass |
301 expected_summary_dict = { | 304 expected_summary_dict = { |
302 "header" : EXPECTED_HEADER_CONTENTS, | 305 "header" : EXPECTED_HEADER_CONTENTS, |
| 306 "descriptions" : None, |
303 "actual-results" : { | 307 "actual-results" : { |
304 "red.skp": { | 308 "red.skp": { |
305 "whole-image": modified_dict( | 309 "whole-image": modified_dict( |
306 RED_WHOLEIMAGE, {"comparisonResult" : "no-comparison"}), | 310 RED_WHOLEIMAGE, {"comparisonResult" : "no-comparison"}), |
307 }, | 311 }, |
308 "green.skp": { | 312 "green.skp": { |
309 "whole-image": modified_dict( | 313 "whole-image": modified_dict( |
310 GREEN_WHOLEIMAGE, {"comparisonResult" : "no-comparison"}), | 314 GREEN_WHOLEIMAGE, {"comparisonResult" : "no-comparison"}), |
311 } | 315 } |
312 } | 316 } |
313 } | 317 } |
314 self._test_untiled(expectations_path=expectations_path, | 318 self._test_untiled(expectations_path=expectations_path, |
315 expected_summary_dict=expected_summary_dict) | 319 expected_summary_dict=expected_summary_dict) |
316 | 320 |
317 def test_untiled_writeChecksumBasedFilenames(self): | 321 def test_untiled_writeChecksumBasedFilenames(self): |
318 """Same as test_untiled, but with --writeChecksumBasedFilenames.""" | 322 """Same as test_untiled, but with --writeChecksumBasedFilenames.""" |
319 output_json_path = os.path.join(self._output_dir, 'actuals.json') | 323 output_json_path = os.path.join(self._output_dir, 'actuals.json') |
320 write_path_dir = self.create_empty_dir( | 324 write_path_dir = self.create_empty_dir( |
321 path=os.path.join(self._output_dir, 'writePath')) | 325 path=os.path.join(self._output_dir, 'writePath')) |
322 self._generate_skps() | 326 self._generate_skps() |
323 self._run_render_pictures(['-r', self._input_skp_dir, | 327 self._run_render_pictures([ |
324 '--writeChecksumBasedFilenames', | 328 '-r', self._input_skp_dir, |
325 '--writePath', write_path_dir, | 329 '--descriptions', 'builder=builderName', 'renderMode=renderModeName', |
326 '--writeJsonSummaryPath', output_json_path]) | 330 '--writeChecksumBasedFilenames', |
| 331 '--writePath', write_path_dir, |
| 332 '--writeJsonSummaryPath', output_json_path, |
| 333 ]) |
327 expected_summary_dict = { | 334 expected_summary_dict = { |
328 "header" : EXPECTED_HEADER_CONTENTS, | 335 "header" : EXPECTED_HEADER_CONTENTS, |
| 336 "descriptions" : { |
| 337 "builder": "builderName", |
| 338 "renderMode": "renderModeName", |
| 339 }, |
329 "actual-results" : { | 340 "actual-results" : { |
330 "red.skp": { | 341 "red.skp": { |
331 # Manually verified: 640x400 red rectangle with black border | 342 # Manually verified: 640x400 red rectangle with black border |
332 "whole-image": { | 343 "whole-image": { |
333 "checksumAlgorithm" : "bitmap-64bitMD5", | 344 "checksumAlgorithm" : "bitmap-64bitMD5", |
334 "checksumValue" : 11092453015575919668, | 345 "checksumValue" : 11092453015575919668, |
335 "comparisonResult" : "no-comparison", | 346 "comparisonResult" : "no-comparison", |
336 "filepath" : | 347 "filepath" : |
337 "red_skp/bitmap-64bitMD5_11092453015575919668.png", | 348 "red_skp/bitmap-64bitMD5_11092453015575919668.png", |
338 }, | 349 }, |
(...skipping 27 matching lines...) Expand all Loading... |
366 """Same as test_untiled, but without --writePath.""" | 377 """Same as test_untiled, but without --writePath.""" |
367 output_json_path = os.path.join(self._output_dir, 'actuals.json') | 378 output_json_path = os.path.join(self._output_dir, 'actuals.json') |
368 self._generate_skps() | 379 self._generate_skps() |
369 expectations_path = self._create_expectations() | 380 expectations_path = self._create_expectations() |
370 self._run_render_pictures([ | 381 self._run_render_pictures([ |
371 '-r', self._input_skp_dir, | 382 '-r', self._input_skp_dir, |
372 '--readJsonSummaryPath', expectations_path, | 383 '--readJsonSummaryPath', expectations_path, |
373 '--writeJsonSummaryPath', output_json_path]) | 384 '--writeJsonSummaryPath', output_json_path]) |
374 expected_summary_dict = { | 385 expected_summary_dict = { |
375 "header" : EXPECTED_HEADER_CONTENTS, | 386 "header" : EXPECTED_HEADER_CONTENTS, |
| 387 "descriptions" : None, |
376 "actual-results" : { | 388 "actual-results" : { |
377 "red.skp": { | 389 "red.skp": { |
378 "whole-image": RED_WHOLEIMAGE, | 390 "whole-image": RED_WHOLEIMAGE, |
379 }, | 391 }, |
380 "green.skp": { | 392 "green.skp": { |
381 "whole-image": GREEN_WHOLEIMAGE, | 393 "whole-image": GREEN_WHOLEIMAGE, |
382 } | 394 } |
383 } | 395 } |
384 } | 396 } |
385 self._assert_json_contents(output_json_path, expected_summary_dict) | 397 self._assert_json_contents(output_json_path, expected_summary_dict) |
386 | 398 |
387 def test_tiled(self): | 399 def test_tiled(self): |
388 """Generate individual tiles.""" | 400 """Generate individual tiles.""" |
389 output_json_path = os.path.join(self._output_dir, 'actuals.json') | 401 output_json_path = os.path.join(self._output_dir, 'actuals.json') |
390 write_path_dir = self.create_empty_dir( | 402 write_path_dir = self.create_empty_dir( |
391 path=os.path.join(self._output_dir, 'writePath')) | 403 path=os.path.join(self._output_dir, 'writePath')) |
392 self._generate_skps() | 404 self._generate_skps() |
393 expectations_path = self._create_expectations() | 405 expectations_path = self._create_expectations() |
394 self._run_render_pictures([ | 406 self._run_render_pictures([ |
395 '-r', self._input_skp_dir, | 407 '-r', self._input_skp_dir, |
396 '--bbh', 'grid', '256', '256', | 408 '--bbh', 'grid', '256', '256', |
397 '--mode', 'tile', '256', '256', | 409 '--mode', 'tile', '256', '256', |
398 '--readJsonSummaryPath', expectations_path, | 410 '--readJsonSummaryPath', expectations_path, |
399 '--writePath', write_path_dir, | 411 '--writePath', write_path_dir, |
400 '--writeJsonSummaryPath', output_json_path]) | 412 '--writeJsonSummaryPath', output_json_path]) |
401 expected_summary_dict = { | 413 expected_summary_dict = { |
402 "header" : EXPECTED_HEADER_CONTENTS, | 414 "header" : EXPECTED_HEADER_CONTENTS, |
| 415 "descriptions" : None, |
403 "actual-results" : { | 416 "actual-results" : { |
404 "red.skp": { | 417 "red.skp": { |
405 "tiled-images": RED_TILES, | 418 "tiled-images": RED_TILES, |
406 }, | 419 }, |
407 "green.skp": { | 420 "green.skp": { |
408 "tiled-images": GREEN_TILES, | 421 "tiled-images": GREEN_TILES, |
409 } | 422 } |
410 } | 423 } |
411 } | 424 } |
412 self._assert_json_contents(output_json_path, expected_summary_dict) | 425 self._assert_json_contents(output_json_path, expected_summary_dict) |
(...skipping 14 matching lines...) Expand all Loading... |
427 expectations_path = self._create_expectations() | 440 expectations_path = self._create_expectations() |
428 self._run_render_pictures([ | 441 self._run_render_pictures([ |
429 '-r', self._input_skp_dir, | 442 '-r', self._input_skp_dir, |
430 '--bbh', 'grid', '256', '256', | 443 '--bbh', 'grid', '256', '256', |
431 '--mode', 'tile', '256', '256', | 444 '--mode', 'tile', '256', '256', |
432 '--readJsonSummaryPath', expectations_path, | 445 '--readJsonSummaryPath', expectations_path, |
433 '--mismatchPath', mismatch_path_dir, | 446 '--mismatchPath', mismatch_path_dir, |
434 '--writeJsonSummaryPath', output_json_path]) | 447 '--writeJsonSummaryPath', output_json_path]) |
435 expected_summary_dict = { | 448 expected_summary_dict = { |
436 "header" : EXPECTED_HEADER_CONTENTS, | 449 "header" : EXPECTED_HEADER_CONTENTS, |
| 450 "descriptions" : None, |
437 "actual-results" : { | 451 "actual-results" : { |
438 "red.skp": { | 452 "red.skp": { |
439 "tiled-images": RED_TILES, | 453 "tiled-images": RED_TILES, |
440 }, | 454 }, |
441 "green.skp": { | 455 "green.skp": { |
442 "tiled-images": GREEN_TILES, | 456 "tiled-images": GREEN_TILES, |
443 } | 457 } |
444 } | 458 } |
445 } | 459 } |
446 self._assert_json_contents(output_json_path, expected_summary_dict) | 460 self._assert_json_contents(output_json_path, expected_summary_dict) |
(...skipping 10 matching lines...) Expand all Loading... |
457 path=os.path.join(self._output_dir, 'writePath')) | 471 path=os.path.join(self._output_dir, 'writePath')) |
458 self._generate_skps() | 472 self._generate_skps() |
459 self._run_render_pictures(['-r', self._input_skp_dir, | 473 self._run_render_pictures(['-r', self._input_skp_dir, |
460 '--bbh', 'grid', '256', '256', | 474 '--bbh', 'grid', '256', '256', |
461 '--mode', 'tile', '256', '256', | 475 '--mode', 'tile', '256', '256', |
462 '--writeChecksumBasedFilenames', | 476 '--writeChecksumBasedFilenames', |
463 '--writePath', write_path_dir, | 477 '--writePath', write_path_dir, |
464 '--writeJsonSummaryPath', output_json_path]) | 478 '--writeJsonSummaryPath', output_json_path]) |
465 expected_summary_dict = { | 479 expected_summary_dict = { |
466 "header" : EXPECTED_HEADER_CONTENTS, | 480 "header" : EXPECTED_HEADER_CONTENTS, |
| 481 "descriptions" : None, |
467 "actual-results" : { | 482 "actual-results" : { |
468 "red.skp": { | 483 "red.skp": { |
469 # Manually verified these 6 images, all 256x256 tiles, | 484 # Manually verified these 6 images, all 256x256 tiles, |
470 # consistent with a tiled version of the 640x400 red rect | 485 # consistent with a tiled version of the 640x400 red rect |
471 # with black borders. | 486 # with black borders. |
472 "tiled-images": [{ | 487 "tiled-images": [{ |
473 "checksumAlgorithm" : "bitmap-64bitMD5", | 488 "checksumAlgorithm" : "bitmap-64bitMD5", |
474 "checksumValue" : 5815827069051002745, | 489 "checksumValue" : 5815827069051002745, |
475 "comparisonResult" : "no-comparison", | 490 "comparisonResult" : "no-comparison", |
476 "filepath" : | 491 "filepath" : |
(...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
582 Args: | 597 Args: |
583 missing_some_images: (bool) whether to remove expectations for a subset | 598 missing_some_images: (bool) whether to remove expectations for a subset |
584 of the images | 599 of the images |
585 rel_path: (string) relative path within self._expectations_dir to write | 600 rel_path: (string) relative path within self._expectations_dir to write |
586 the expectations into | 601 the expectations into |
587 | 602 |
588 Returns: full path to the expectations file created. | 603 Returns: full path to the expectations file created. |
589 """ | 604 """ |
590 expectations_dict = { | 605 expectations_dict = { |
591 "header" : EXPECTED_HEADER_CONTENTS, | 606 "header" : EXPECTED_HEADER_CONTENTS, |
| 607 "descriptions" : None, |
592 "expected-results" : { | 608 "expected-results" : { |
593 # red.skp: these should fail the comparison | 609 # red.skp: these should fail the comparison |
594 "red.skp": { | 610 "red.skp": { |
595 "tiled-images": modified_list_of_dicts( | 611 "tiled-images": modified_list_of_dicts( |
596 RED_TILES, {'checksumValue': 11111}), | 612 RED_TILES, {'checksumValue': 11111}), |
597 "whole-image": modified_dict( | 613 "whole-image": modified_dict( |
598 RED_WHOLEIMAGE, {'checksumValue': 22222}), | 614 RED_WHOLEIMAGE, {'checksumValue': 22222}), |
599 }, | 615 }, |
600 # green.skp: these should pass the comparison | 616 # green.skp: these should pass the comparison |
601 "green.skp": { | 617 "green.skp": { |
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
675 self.assertMultiLineEqual(prettyprinted_expected_dict, | 691 self.assertMultiLineEqual(prettyprinted_expected_dict, |
676 prettyprinted_json_dict) | 692 prettyprinted_json_dict) |
677 | 693 |
678 | 694 |
679 def main(): | 695 def main(): |
680 base_unittest.main(RenderPicturesTest) | 696 base_unittest.main(RenderPicturesTest) |
681 | 697 |
682 | 698 |
683 if __name__ == '__main__': | 699 if __name__ == '__main__': |
684 main() | 700 main() |
OLD | NEW |