| OLD | NEW |
| 1 # Copyright (c) 2010 Google Inc. All rights reserved. | 1 # Copyright (c) 2010 Google Inc. All rights reserved. |
| 2 # | 2 # |
| 3 # Redistribution and use in source and binary forms, with or without | 3 # Redistribution and use in source and binary forms, with or without |
| 4 # modification, are permitted provided that the following conditions are | 4 # modification, are permitted provided that the following conditions are |
| 5 # met: | 5 # met: |
| 6 # | 6 # |
| 7 # * Redistributions of source code must retain the above copyright | 7 # * Redistributions of source code must retain the above copyright |
| 8 # notice, this list of conditions and the following disclaimer. | 8 # notice, this list of conditions and the following disclaimer. |
| 9 # * Redistributions in binary form must reproduce the above | 9 # * Redistributions in binary form must reproduce the above |
| 10 # copyright notice, this list of conditions and the following disclaimer | 10 # copyright notice, this list of conditions and the following disclaimer |
| (...skipping 12 matching lines...) Expand all Loading... |
| 23 # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, | 23 # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |
| 24 # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY | 24 # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |
| 25 # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | 25 # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
| 26 # (INCLUDING NEGLIGENCE OR/ OTHERWISE) ARISING IN ANY WAY OUT OF THE USE | 26 # (INCLUDING NEGLIGENCE OR/ OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
| 27 # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | 27 # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
| 28 | 28 |
| 29 from __future__ import print_function | 29 from __future__ import print_function |
| 30 import json | 30 import json |
| 31 import logging | 31 import logging |
| 32 import optparse | 32 import optparse |
| 33 import re |
| 33 import sys | 34 import sys |
| 34 import traceback | 35 import traceback |
| 35 | 36 |
| 36 from webkitpy.common.memoized import memoized | 37 from webkitpy.common.memoized import memoized |
| 37 from webkitpy.common.net.buildbot import Build | 38 from webkitpy.common.net.buildbot import Build |
| 38 from webkitpy.common.system.executive import ScriptError | 39 from webkitpy.common.system.executive import ScriptError |
| 39 from webkitpy.layout_tests.models.testharness_results import is_all_pass_testhar
ness_result | 40 from webkitpy.layout_tests.models.testharness_results import is_all_pass_testhar
ness_result |
| 40 from webkitpy.layout_tests.models.test_expectations import TestExpectations, BAS
ELINE_SUFFIX_LIST, SKIP | 41 from webkitpy.layout_tests.models.test_expectations import TestExpectations, BAS
ELINE_SUFFIX_LIST, SKIP |
| 41 from webkitpy.layout_tests.port import factory | 42 from webkitpy.layout_tests.port import factory |
| 42 from webkitpy.tool.commands.command import Command | 43 from webkitpy.tool.commands.command import Command |
| (...skipping 473 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 516 self._update_expectations_files(lines_to_remove) | 517 self._update_expectations_files(lines_to_remove) |
| 517 | 518 |
| 518 if options.optimize: | 519 if options.optimize: |
| 519 # TODO(wkorman): Consider changing temporary branch to base off of H
EAD rather than | 520 # TODO(wkorman): Consider changing temporary branch to base off of H
EAD rather than |
| 520 # origin/master to ensure we run baseline optimization processes wit
h the same code as | 521 # origin/master to ensure we run baseline optimization processes wit
h the same code as |
| 521 # auto-rebaseline itself. | 522 # auto-rebaseline itself. |
| 522 self._run_in_parallel(self._optimize_baselines(test_prefix_list, opt
ions.verbose)) | 523 self._run_in_parallel(self._optimize_baselines(test_prefix_list, opt
ions.verbose)) |
| 523 | 524 |
| 524 self._remove_all_pass_testharness_baselines(test_prefix_list) | 525 self._remove_all_pass_testharness_baselines(test_prefix_list) |
| 525 | 526 |
| 526 self._tool.scm().add_all(pathspec=self._layout_tests_dir()) | 527 self._tool.scm().add_list(self.unstaged_baselines()) |
| 528 |
| 529 def unstaged_baselines(self): |
| 530 """Returns absolute paths for unstaged (including untracked) baselines."
"" |
| 531 baseline_re = re.compile(r'.*[\\/]LayoutTests[\\/].*-expected\.(txt|png|
wav)$') |
| 532 unstaged_changes = self._tool.scm().unstaged_changes() |
| 533 return sorted(self._tool.scm().absolute_path(path) for path in unstaged_
changes if re.match(baseline_re, path)) |
| 527 | 534 |
| 528 def _remove_all_pass_testharness_baselines(self, test_prefix_list): | 535 def _remove_all_pass_testharness_baselines(self, test_prefix_list): |
| 529 """Removes all of the all-PASS baselines for the given builders and test
s. | 536 """Removes all of the all-PASS baselines for the given builders and test
s. |
| 530 | 537 |
| 531 In general, for testharness.js tests, the absence of a baseline | 538 In general, for testharness.js tests, the absence of a baseline |
| 532 indicates that the test is expected to pass. When rebaselining, | 539 indicates that the test is expected to pass. When rebaselining, |
| 533 new all-PASS baselines may be downloaded, but they should not be kept. | 540 new all-PASS baselines may be downloaded, but they should not be kept. |
| 534 """ | 541 """ |
| 535 filesystem = self._tool.filesystem | 542 filesystem = self._tool.filesystem |
| 536 baseline_paths = self._all_baseline_paths(test_prefix_list) | 543 baseline_paths = self._all_baseline_paths(test_prefix_list) |
| (...skipping 173 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 710 for test in args: | 717 for test in args: |
| 711 if test not in test_prefix_list: | 718 if test not in test_prefix_list: |
| 712 test_prefix_list[test] = {} | 719 test_prefix_list[test] = {} |
| 713 build = Build(builder) | 720 build = Build(builder) |
| 714 test_prefix_list[test][build] = suffixes_to_update | 721 test_prefix_list[test][build] = suffixes_to_update |
| 715 | 722 |
| 716 if options.verbose: | 723 if options.verbose: |
| 717 _log.debug("rebaseline-json: " + str(test_prefix_list)) | 724 _log.debug("rebaseline-json: " + str(test_prefix_list)) |
| 718 | 725 |
| 719 self.rebaseline(options, test_prefix_list) | 726 self.rebaseline(options, test_prefix_list) |
| OLD | NEW |