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

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

Issue 397103003: combine base_unittest.py modules from gm and tools (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: pylint Created 6 years, 5 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
« tools/tests/base_unittest.py ('K') | « tools/tests/fix_pythonpath.py ('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 """
11 11
12 # System-level imports 12 # System-level imports
13 import copy 13 import copy
14 import json 14 import json
15 import os 15 import os
16 import shutil 16 import shutil
17 import tempfile 17 import tempfile
18 18
19 # Must fix up PYTHONPATH before importing from within Skia
20 import fix_pythonpath # pylint: disable=W0611
21
19 # Imports from within Skia 22 # Imports from within Skia
20 import base_unittest 23 import base_unittest
24 import find_run_binary
21 25
22 # Maximum length of text diffs to show when tests fail 26 # Maximum length of text diffs to show when tests fail
23 MAX_DIFF_LENGTH = 30000 27 MAX_DIFF_LENGTH = 30000
24 28
25 EXPECTED_HEADER_CONTENTS = { 29 EXPECTED_HEADER_CONTENTS = {
26 "type" : "ChecksummedImages", 30 "type" : "ChecksummedImages",
27 "revision" : 1, 31 "revision" : 1,
28 } 32 }
29 33
30 # Manually verified: 640x400 red rectangle with black border 34 # Manually verified: 640x400 red rectangle with black border
(...skipping 254 matching lines...) Expand 10 before | Expand all | Expand 10 after
285 self._assert_directory_contents( 289 self._assert_directory_contents(
286 write_path_dir, ['red_skp.png', 'green_skp.png']) 290 write_path_dir, ['red_skp.png', 'green_skp.png'])
287 291
288 def test_untiled(self): 292 def test_untiled(self):
289 """Basic test without tiles.""" 293 """Basic test without tiles."""
290 self._test_untiled() 294 self._test_untiled()
291 295
292 def test_untiled_empty_expectations_file(self): 296 def test_untiled_empty_expectations_file(self):
293 """Same as test_untiled, but with an empty expectations file.""" 297 """Same as test_untiled, but with an empty expectations file."""
294 expectations_path = os.path.join(self._expectations_dir, 'empty') 298 expectations_path = os.path.join(self._expectations_dir, 'empty')
295 with open(expectations_path, 'w') as fh: 299 with open(expectations_path, 'w'):
296 pass 300 pass
297 expected_summary_dict = { 301 expected_summary_dict = {
298 "header" : EXPECTED_HEADER_CONTENTS, 302 "header" : EXPECTED_HEADER_CONTENTS,
299 "actual-results" : { 303 "actual-results" : {
300 "red.skp": { 304 "red.skp": {
301 "whole-image": modified_dict( 305 "whole-image": modified_dict(
302 RED_WHOLEIMAGE, {"comparisonResult" : "no-comparison"}), 306 RED_WHOLEIMAGE, {"comparisonResult" : "no-comparison"}),
303 }, 307 },
304 "green.skp": { 308 "green.skp": {
305 "whole-image": modified_dict( 309 "whole-image": modified_dict(
(...skipping 16 matching lines...) Expand all
322 '--writeJsonSummaryPath', output_json_path]) 326 '--writeJsonSummaryPath', output_json_path])
323 expected_summary_dict = { 327 expected_summary_dict = {
324 "header" : EXPECTED_HEADER_CONTENTS, 328 "header" : EXPECTED_HEADER_CONTENTS,
325 "actual-results" : { 329 "actual-results" : {
326 "red.skp": { 330 "red.skp": {
327 # Manually verified: 640x400 red rectangle with black border 331 # Manually verified: 640x400 red rectangle with black border
328 "whole-image": { 332 "whole-image": {
329 "checksumAlgorithm" : "bitmap-64bitMD5", 333 "checksumAlgorithm" : "bitmap-64bitMD5",
330 "checksumValue" : 11092453015575919668, 334 "checksumValue" : 11092453015575919668,
331 "comparisonResult" : "no-comparison", 335 "comparisonResult" : "no-comparison",
332 "filepath" : "red_skp/bitmap-64bitMD5_11092453015575919668.p ng", 336 "filepath" :
337 "red_skp/bitmap-64bitMD5_11092453015575919668.png",
333 }, 338 },
334 }, 339 },
335 "green.skp": { 340 "green.skp": {
336 # Manually verified: 640x400 green rectangle with black border 341 # Manually verified: 640x400 green rectangle with black border
337 "whole-image": { 342 "whole-image": {
338 "checksumAlgorithm" : "bitmap-64bitMD5", 343 "checksumAlgorithm" : "bitmap-64bitMD5",
339 "checksumValue" : 8891695120562235492, 344 "checksumValue" : 8891695120562235492,
340 "comparisonResult" : "no-comparison", 345 "comparisonResult" : "no-comparison",
341 "filepath" : "green_skp/bitmap-64bitMD5_8891695120562235492. png", 346 "filepath" :
347 "green_skp/bitmap-64bitMD5_8891695120562235492.png",
342 }, 348 },
343 } 349 }
344 } 350 }
345 } 351 }
346 self._assert_json_contents(output_json_path, expected_summary_dict) 352 self._assert_json_contents(output_json_path, expected_summary_dict)
347 self._assert_directory_contents(write_path_dir, ['red_skp', 'green_skp']) 353 self._assert_directory_contents(write_path_dir, ['red_skp', 'green_skp'])
348 self._assert_directory_contents( 354 self._assert_directory_contents(
349 os.path.join(write_path_dir, 'red_skp'), 355 os.path.join(write_path_dir, 'red_skp'),
350 ['bitmap-64bitMD5_11092453015575919668.png']) 356 ['bitmap-64bitMD5_11092453015575919668.png'])
351 self._assert_directory_contents( 357 self._assert_directory_contents(
(...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after
460 "header" : EXPECTED_HEADER_CONTENTS, 466 "header" : EXPECTED_HEADER_CONTENTS,
461 "actual-results" : { 467 "actual-results" : {
462 "red.skp": { 468 "red.skp": {
463 # Manually verified these 6 images, all 256x256 tiles, 469 # Manually verified these 6 images, all 256x256 tiles,
464 # consistent with a tiled version of the 640x400 red rect 470 # consistent with a tiled version of the 640x400 red rect
465 # with black borders. 471 # with black borders.
466 "tiled-images": [{ 472 "tiled-images": [{
467 "checksumAlgorithm" : "bitmap-64bitMD5", 473 "checksumAlgorithm" : "bitmap-64bitMD5",
468 "checksumValue" : 5815827069051002745, 474 "checksumValue" : 5815827069051002745,
469 "comparisonResult" : "no-comparison", 475 "comparisonResult" : "no-comparison",
470 "filepath" : "red_skp/bitmap-64bitMD5_5815827069051002745.pn g", 476 "filepath" :
477 "red_skp/bitmap-64bitMD5_5815827069051002745.png",
471 }, { 478 }, {
472 "checksumAlgorithm" : "bitmap-64bitMD5", 479 "checksumAlgorithm" : "bitmap-64bitMD5",
473 "checksumValue" : 9323613075234140270, 480 "checksumValue" : 9323613075234140270,
474 "comparisonResult" : "no-comparison", 481 "comparisonResult" : "no-comparison",
475 "filepath" : "red_skp/bitmap-64bitMD5_9323613075234140270.pn g", 482 "filepath" :
483 "red_skp/bitmap-64bitMD5_9323613075234140270.png",
476 }, { 484 }, {
477 "checksumAlgorithm" : "bitmap-64bitMD5", 485 "checksumAlgorithm" : "bitmap-64bitMD5",
478 "checksumValue" : 16670399404877552232, 486 "checksumValue" : 16670399404877552232,
479 "comparisonResult" : "no-comparison", 487 "comparisonResult" : "no-comparison",
480 "filepath" : "red_skp/bitmap-64bitMD5_16670399404877552232.p ng", 488 "filepath" :
489 "red_skp/bitmap-64bitMD5_16670399404877552232.png",
481 }, { 490 }, {
482 "checksumAlgorithm" : "bitmap-64bitMD5", 491 "checksumAlgorithm" : "bitmap-64bitMD5",
483 "checksumValue" : 2507897274083364964, 492 "checksumValue" : 2507897274083364964,
484 "comparisonResult" : "no-comparison", 493 "comparisonResult" : "no-comparison",
485 "filepath" : "red_skp/bitmap-64bitMD5_2507897274083364964.pn g", 494 "filepath" :
495 "red_skp/bitmap-64bitMD5_2507897274083364964.png",
486 }, { 496 }, {
487 "checksumAlgorithm" : "bitmap-64bitMD5", 497 "checksumAlgorithm" : "bitmap-64bitMD5",
488 "checksumValue" : 7325267995523877959, 498 "checksumValue" : 7325267995523877959,
489 "comparisonResult" : "no-comparison", 499 "comparisonResult" : "no-comparison",
490 "filepath" : "red_skp/bitmap-64bitMD5_7325267995523877959.pn g", 500 "filepath" :
501 "red_skp/bitmap-64bitMD5_7325267995523877959.png",
491 }, { 502 }, {
492 "checksumAlgorithm" : "bitmap-64bitMD5", 503 "checksumAlgorithm" : "bitmap-64bitMD5",
493 "checksumValue" : 2181381724594493116, 504 "checksumValue" : 2181381724594493116,
494 "comparisonResult" : "no-comparison", 505 "comparisonResult" : "no-comparison",
495 "filepath" : "red_skp/bitmap-64bitMD5_2181381724594493116.pn g", 506 "filepath" :
507 "red_skp/bitmap-64bitMD5_2181381724594493116.png",
496 }], 508 }],
497 }, 509 },
498 "green.skp": { 510 "green.skp": {
499 # Manually verified these 6 images, all 256x256 tiles, 511 # Manually verified these 6 images, all 256x256 tiles,
500 # consistent with a tiled version of the 640x400 green rect 512 # consistent with a tiled version of the 640x400 green rect
501 # with black borders. 513 # with black borders.
502 "tiled-images": [{ 514 "tiled-images": [{
503 "checksumAlgorithm" : "bitmap-64bitMD5", 515 "checksumAlgorithm" : "bitmap-64bitMD5",
504 "checksumValue" : 12587324416545178013, 516 "checksumValue" : 12587324416545178013,
505 "comparisonResult" : "no-comparison", 517 "comparisonResult" : "no-comparison",
506 "filepath" : "green_skp/bitmap-64bitMD5_12587324416545178013 .png", 518 "filepath" :
519 "green_skp/bitmap-64bitMD5_12587324416545178013.png",
507 }, { 520 }, {
508 "checksumAlgorithm" : "bitmap-64bitMD5", 521 "checksumAlgorithm" : "bitmap-64bitMD5",
509 "checksumValue" : 7624374914829746293, 522 "checksumValue" : 7624374914829746293,
510 "comparisonResult" : "no-comparison", 523 "comparisonResult" : "no-comparison",
511 "filepath" : "green_skp/bitmap-64bitMD5_7624374914829746293. png", 524 "filepath" :
525 "green_skp/bitmap-64bitMD5_7624374914829746293.png",
512 }, { 526 }, {
513 "checksumAlgorithm" : "bitmap-64bitMD5", 527 "checksumAlgorithm" : "bitmap-64bitMD5",
514 "checksumValue" : 5686489729535631913, 528 "checksumValue" : 5686489729535631913,
515 "comparisonResult" : "no-comparison", 529 "comparisonResult" : "no-comparison",
516 "filepath" : "green_skp/bitmap-64bitMD5_5686489729535631913. png", 530 "filepath" :
531 "green_skp/bitmap-64bitMD5_5686489729535631913.png",
517 }, { 532 }, {
518 "checksumAlgorithm" : "bitmap-64bitMD5", 533 "checksumAlgorithm" : "bitmap-64bitMD5",
519 "checksumValue" : 7980646035555096146, 534 "checksumValue" : 7980646035555096146,
520 "comparisonResult" : "no-comparison", 535 "comparisonResult" : "no-comparison",
521 "filepath" : "green_skp/bitmap-64bitMD5_7980646035555096146. png", 536 "filepath" :
537 "green_skp/bitmap-64bitMD5_7980646035555096146.png",
522 }, { 538 }, {
523 "checksumAlgorithm" : "bitmap-64bitMD5", 539 "checksumAlgorithm" : "bitmap-64bitMD5",
524 "checksumValue" : 17817086664365875131, 540 "checksumValue" : 17817086664365875131,
525 "comparisonResult" : "no-comparison", 541 "comparisonResult" : "no-comparison",
526 "filepath" : "green_skp/bitmap-64bitMD5_17817086664365875131 .png", 542 "filepath" :
543 "green_skp/bitmap-64bitMD5_17817086664365875131.png",
527 }, { 544 }, {
528 "checksumAlgorithm" : "bitmap-64bitMD5", 545 "checksumAlgorithm" : "bitmap-64bitMD5",
529 "checksumValue" : 10673669813016809363, 546 "checksumValue" : 10673669813016809363,
530 "comparisonResult" : "no-comparison", 547 "comparisonResult" : "no-comparison",
531 "filepath" : "green_skp/bitmap-64bitMD5_10673669813016809363 .png", 548 "filepath" :
549 "green_skp/bitmap-64bitMD5_10673669813016809363.png",
532 }], 550 }],
533 } 551 }
534 } 552 }
535 } 553 }
536 self._assert_json_contents(output_json_path, expected_summary_dict) 554 self._assert_json_contents(output_json_path, expected_summary_dict)
537 self._assert_directory_contents(write_path_dir, ['red_skp', 'green_skp']) 555 self._assert_directory_contents(write_path_dir, ['red_skp', 'green_skp'])
538 self._assert_directory_contents( 556 self._assert_directory_contents(
539 os.path.join(write_path_dir, 'red_skp'), 557 os.path.join(write_path_dir, 'red_skp'),
540 ['bitmap-64bitMD5_5815827069051002745.png', 558 ['bitmap-64bitMD5_5815827069051002745.png',
541 'bitmap-64bitMD5_9323613075234140270.png', 559 'bitmap-64bitMD5_9323613075234140270.png',
542 'bitmap-64bitMD5_16670399404877552232.png', 560 'bitmap-64bitMD5_16670399404877552232.png',
543 'bitmap-64bitMD5_2507897274083364964.png', 561 'bitmap-64bitMD5_2507897274083364964.png',
544 'bitmap-64bitMD5_7325267995523877959.png', 562 'bitmap-64bitMD5_7325267995523877959.png',
545 'bitmap-64bitMD5_2181381724594493116.png']) 563 'bitmap-64bitMD5_2181381724594493116.png'])
546 self._assert_directory_contents( 564 self._assert_directory_contents(
547 os.path.join(write_path_dir, 'green_skp'), 565 os.path.join(write_path_dir, 'green_skp'),
548 ['bitmap-64bitMD5_12587324416545178013.png', 566 ['bitmap-64bitMD5_12587324416545178013.png',
549 'bitmap-64bitMD5_7624374914829746293.png', 567 'bitmap-64bitMD5_7624374914829746293.png',
550 'bitmap-64bitMD5_5686489729535631913.png', 568 'bitmap-64bitMD5_5686489729535631913.png',
551 'bitmap-64bitMD5_7980646035555096146.png', 569 'bitmap-64bitMD5_7980646035555096146.png',
552 'bitmap-64bitMD5_17817086664365875131.png', 570 'bitmap-64bitMD5_17817086664365875131.png',
553 'bitmap-64bitMD5_10673669813016809363.png']) 571 'bitmap-64bitMD5_10673669813016809363.png'])
554 572
555 def _run_render_pictures(self, args): 573 def _run_render_pictures(self, args):
556 binary = self.find_path_to_program('render_pictures') 574 binary = find_run_binary.find_path_to_program('render_pictures')
557 return self.run_command([binary, 575 return find_run_binary.run_command(
558 '--config', '8888', 576 [binary, '--config', '8888'] + args)
559 ] + args)
560 577
561 def _create_expectations(self, missing_some_images=False, 578 def _create_expectations(self, missing_some_images=False,
562 rel_path='expectations.json'): 579 rel_path='expectations.json'):
563 """Creates expectations JSON file within self._expectations_dir . 580 """Creates expectations JSON file within self._expectations_dir .
564 581
565 Args: 582 Args:
566 missing_some_images: (bool) whether to remove expectations for a subset 583 missing_some_images: (bool) whether to remove expectations for a subset
567 of the images 584 of the images
568 rel_path: (string) relative path within self._expectations_dir to write 585 rel_path: (string) relative path within self._expectations_dir to write
569 the expectations into 586 the expectations into
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
607 """Runs the skpmaker binary to generate SKP with known characteristics. 624 """Runs the skpmaker binary to generate SKP with known characteristics.
608 625
609 Args: 626 Args:
610 output_path: Filepath to write the SKP into. 627 output_path: Filepath to write the SKP into.
611 red: Value of red color channel in image, 0-255. 628 red: Value of red color channel in image, 0-255.
612 green: Value of green color channel in image, 0-255. 629 green: Value of green color channel in image, 0-255.
613 blue: Value of blue color channel in image, 0-255. 630 blue: Value of blue color channel in image, 0-255.
614 width: Width of canvas to create. 631 width: Width of canvas to create.
615 height: Height of canvas to create. 632 height: Height of canvas to create.
616 """ 633 """
617 binary = self.find_path_to_program('skpmaker') 634 binary = find_run_binary.find_path_to_program('skpmaker')
618 return self.run_command([binary, 635 return find_run_binary.run_command([
619 '--red', str(red), 636 binary,
620 '--green', str(green), 637 '--red', str(red),
621 '--blue', str(blue), 638 '--green', str(green),
622 '--width', str(width), 639 '--blue', str(blue),
623 '--height', str(height), 640 '--width', str(width),
624 '--writePath', str(output_path), 641 '--height', str(height),
625 ]) 642 '--writePath', str(output_path),
643 ])
626 644
627 def _assert_directory_contents(self, dir_path, expected_filenames): 645 def _assert_directory_contents(self, dir_path, expected_filenames):
628 """Asserts that files found in a dir are identical to expected_filenames. 646 """Asserts that files found in a dir are identical to expected_filenames.
629 647
630 Args: 648 Args:
631 dir_path: Path to a directory on local disk. 649 dir_path: Path to a directory on local disk.
632 expected_filenames: Set containing the expected filenames within the dir. 650 expected_filenames: Set containing the expected filenames within the dir.
633 651
634 Raises: 652 Raises:
635 AssertionError: contents of the directory are not identical to 653 AssertionError: contents of the directory are not identical to
(...skipping 21 matching lines...) Expand all
657 self.assertMultiLineEqual(prettyprinted_expected_dict, 675 self.assertMultiLineEqual(prettyprinted_expected_dict,
658 prettyprinted_json_dict) 676 prettyprinted_json_dict)
659 677
660 678
661 def main(): 679 def main():
662 base_unittest.main(RenderPicturesTest) 680 base_unittest.main(RenderPicturesTest)
663 681
664 682
665 if __name__ == '__main__': 683 if __name__ == '__main__':
666 main() 684 main()
OLDNEW
« tools/tests/base_unittest.py ('K') | « tools/tests/fix_pythonpath.py ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698