| 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 195 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 206 "green.skp": { | 206 "green.skp": { |
| 207 "tiled-images": GREEN_TILES, | 207 "tiled-images": GREEN_TILES, |
| 208 "whole-image": GREEN_WHOLEIMAGE, | 208 "whole-image": GREEN_WHOLEIMAGE, |
| 209 } | 209 } |
| 210 } | 210 } |
| 211 } | 211 } |
| 212 self._assert_json_contents(output_json_path, expected_summary_dict) | 212 self._assert_json_contents(output_json_path, expected_summary_dict) |
| 213 self._assert_directory_contents( | 213 self._assert_directory_contents( |
| 214 write_path_dir, ['red_skp.png', 'green_skp.png']) | 214 write_path_dir, ['red_skp.png', 'green_skp.png']) |
| 215 | 215 |
| 216 def test_ignore_some_failures(self): |
| 217 """test_tiled_whole_image, but ignoring some failed tests. |
| 218 """ |
| 219 output_json_path = os.path.join(self._output_dir, 'actuals.json') |
| 220 write_path_dir = self.create_empty_dir( |
| 221 path=os.path.join(self._output_dir, 'writePath')) |
| 222 self._generate_skps() |
| 223 expectations_path = self._create_expectations(ignore_some_failures=True) |
| 224 self._run_render_pictures([ |
| 225 '-r', self._input_skp_dir, |
| 226 '--bbh', 'grid', '256', '256', |
| 227 '--mode', 'tile', '256', '256', |
| 228 '--readJsonSummaryPath', expectations_path, |
| 229 '--writeJsonSummaryPath', output_json_path, |
| 230 '--writePath', write_path_dir, |
| 231 '--writeWholeImage']) |
| 232 modified_red_tiles = copy.deepcopy(RED_TILES) |
| 233 modified_red_tiles[5]['comparisonResult'] = 'failure-ignored' |
| 234 expected_summary_dict = { |
| 235 "header" : EXPECTED_HEADER_CONTENTS, |
| 236 "descriptions" : None, |
| 237 "actual-results" : { |
| 238 "red.skp": { |
| 239 "tiled-images": modified_red_tiles, |
| 240 "whole-image": modified_dict( |
| 241 RED_WHOLEIMAGE, {"comparisonResult" : "failure-ignored"}), |
| 242 }, |
| 243 "green.skp": { |
| 244 "tiled-images": GREEN_TILES, |
| 245 "whole-image": GREEN_WHOLEIMAGE, |
| 246 } |
| 247 } |
| 248 } |
| 249 self._assert_json_contents(output_json_path, expected_summary_dict) |
| 250 self._assert_directory_contents( |
| 251 write_path_dir, ['red_skp.png', 'green_skp.png']) |
| 252 |
| 216 def test_missing_tile_and_whole_image(self): | 253 def test_missing_tile_and_whole_image(self): |
| 217 """test_tiled_whole_image, but missing expectations for some images. | 254 """test_tiled_whole_image, but missing expectations for some images. |
| 218 """ | 255 """ |
| 219 output_json_path = os.path.join(self._output_dir, 'actuals.json') | 256 output_json_path = os.path.join(self._output_dir, 'actuals.json') |
| 220 write_path_dir = self.create_empty_dir( | 257 write_path_dir = self.create_empty_dir( |
| 221 path=os.path.join(self._output_dir, 'writePath')) | 258 path=os.path.join(self._output_dir, 'writePath')) |
| 222 self._generate_skps() | 259 self._generate_skps() |
| 223 expectations_path = self._create_expectations(missing_some_images=True) | 260 expectations_path = self._create_expectations(missing_some_images=True) |
| 224 self._run_render_pictures([ | 261 self._run_render_pictures([ |
| 225 '-r', self._input_skp_dir, | 262 '-r', self._input_skp_dir, |
| (...skipping 358 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 584 'bitmap-64bitMD5_7980646035555096146.png', | 621 'bitmap-64bitMD5_7980646035555096146.png', |
| 585 'bitmap-64bitMD5_17817086664365875131.png', | 622 'bitmap-64bitMD5_17817086664365875131.png', |
| 586 'bitmap-64bitMD5_10673669813016809363.png']) | 623 'bitmap-64bitMD5_10673669813016809363.png']) |
| 587 | 624 |
| 588 def _run_render_pictures(self, args): | 625 def _run_render_pictures(self, args): |
| 589 binary = find_run_binary.find_path_to_program('render_pictures') | 626 binary = find_run_binary.find_path_to_program('render_pictures') |
| 590 return find_run_binary.run_command( | 627 return find_run_binary.run_command( |
| 591 [binary, '--config', '8888'] + args) | 628 [binary, '--config', '8888'] + args) |
| 592 | 629 |
| 593 def _create_expectations(self, missing_some_images=False, | 630 def _create_expectations(self, missing_some_images=False, |
| 631 ignore_some_failures=False, |
| 594 rel_path='expectations.json'): | 632 rel_path='expectations.json'): |
| 595 """Creates expectations JSON file within self._expectations_dir . | 633 """Creates expectations JSON file within self._expectations_dir . |
| 596 | 634 |
| 597 Args: | 635 Args: |
| 598 missing_some_images: (bool) whether to remove expectations for a subset | 636 missing_some_images: (bool) whether to remove expectations for a subset |
| 599 of the images | 637 of the images |
| 638 ignore_some_failures: (bool) whether to ignore some failing tests |
| 600 rel_path: (string) relative path within self._expectations_dir to write | 639 rel_path: (string) relative path within self._expectations_dir to write |
| 601 the expectations into | 640 the expectations into |
| 602 | 641 |
| 603 Returns: full path to the expectations file created. | 642 Returns: full path to the expectations file created. |
| 604 """ | 643 """ |
| 605 expectations_dict = { | 644 expectations_dict = { |
| 606 "header" : EXPECTED_HEADER_CONTENTS, | 645 "header" : EXPECTED_HEADER_CONTENTS, |
| 607 "descriptions" : None, | 646 "descriptions" : None, |
| 608 "expected-results" : { | 647 "expected-results" : { |
| 609 # red.skp: these should fail the comparison | 648 # red.skp: these should fail the comparison |
| 610 "red.skp": { | 649 "red.skp": { |
| 611 "tiled-images": modified_list_of_dicts( | 650 "tiled-images": modified_list_of_dicts( |
| 612 RED_TILES, {'checksumValue': 11111}), | 651 RED_TILES, {'checksumValue': 11111}), |
| 613 "whole-image": modified_dict( | 652 "whole-image": modified_dict( |
| 614 RED_WHOLEIMAGE, {'checksumValue': 22222}), | 653 RED_WHOLEIMAGE, {'checksumValue': 22222}), |
| 615 }, | 654 }, |
| 616 # green.skp: these should pass the comparison | 655 # green.skp: these should pass the comparison |
| 617 "green.skp": { | 656 "green.skp": { |
| 618 "tiled-images": GREEN_TILES, | 657 "tiled-images": GREEN_TILES, |
| 619 "whole-image": GREEN_WHOLEIMAGE, | 658 "whole-image": GREEN_WHOLEIMAGE, |
| 620 } | 659 } |
| 621 } | 660 } |
| 622 } | 661 } |
| 623 if missing_some_images: | 662 if missing_some_images: |
| 624 del expectations_dict['expected-results']['red.skp']['whole-image'] | 663 red_subdict = expectations_dict['expected-results']['red.skp'] |
| 625 del expectations_dict['expected-results']['red.skp']['tiled-images'][-1] | 664 del red_subdict['whole-image'] |
| 665 del red_subdict['tiled-images'][-1] |
| 666 elif ignore_some_failures: |
| 667 red_subdict = expectations_dict['expected-results']['red.skp'] |
| 668 red_subdict['whole-image']['ignoreFailure'] = True |
| 669 red_subdict['tiled-images'][-1]['ignoreFailure'] = True |
| 626 path = os.path.join(self._expectations_dir, rel_path) | 670 path = os.path.join(self._expectations_dir, rel_path) |
| 627 with open(path, 'w') as fh: | 671 with open(path, 'w') as fh: |
| 628 json.dump(expectations_dict, fh) | 672 json.dump(expectations_dict, fh) |
| 629 return path | 673 return path |
| 630 | 674 |
| 631 def _generate_skps(self): | 675 def _generate_skps(self): |
| 632 """Runs the skpmaker binary to generate files in self._input_skp_dir.""" | 676 """Runs the skpmaker binary to generate files in self._input_skp_dir.""" |
| 633 self._run_skpmaker( | 677 self._run_skpmaker( |
| 634 output_path=os.path.join(self._input_skp_dir, 'red.skp'), red=255) | 678 output_path=os.path.join(self._input_skp_dir, 'red.skp'), red=255) |
| 635 self._run_skpmaker( | 679 self._run_skpmaker( |
| (...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 691 self.assertMultiLineEqual(prettyprinted_expected_dict, | 735 self.assertMultiLineEqual(prettyprinted_expected_dict, |
| 692 prettyprinted_json_dict) | 736 prettyprinted_json_dict) |
| 693 | 737 |
| 694 | 738 |
| 695 def main(): | 739 def main(): |
| 696 base_unittest.main(RenderPicturesTest) | 740 base_unittest.main(RenderPicturesTest) |
| 697 | 741 |
| 698 | 742 |
| 699 if __name__ == '__main__': | 743 if __name__ == '__main__': |
| 700 main() | 744 main() |
| OLD | NEW |