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

Side by Side Diff: third_party/WebKit/Tools/Scripts/webkitpy/tool/commands/rebaseline.py

Issue 2276713002: Remove Command.bind_to_tool. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 3 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
OLDNEW
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 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
57 57
58 results_directory_option = optparse.make_option("--results-directory", help= "Local results directory to use.") 58 results_directory_option = optparse.make_option("--results-directory", help= "Local results directory to use.")
59 59
60 suffixes_option = optparse.make_option("--suffixes", default=','.join(BASELI NE_SUFFIX_LIST), action="store", 60 suffixes_option = optparse.make_option("--suffixes", default=','.join(BASELI NE_SUFFIX_LIST), action="store",
61 help="Comma-separated-list of file ty pes to rebaseline.") 61 help="Comma-separated-list of file ty pes to rebaseline.")
62 62
63 def __init__(self, options=None): 63 def __init__(self, options=None):
64 super(AbstractRebaseliningCommand, self).__init__(options=options) 64 super(AbstractRebaseliningCommand, self).__init__(options=options)
65 self._baseline_suffix_list = BASELINE_SUFFIX_LIST 65 self._baseline_suffix_list = BASELINE_SUFFIX_LIST
66 self._scm_changes = {'add': [], 'delete': [], 'remove-lines': []} 66 self._scm_changes = {'add': [], 'delete': [], 'remove-lines': []}
67 self._tool = None
67 68
68 def _add_to_scm_later(self, path): 69 def _add_to_scm_later(self, path):
69 self._scm_changes['add'].append(path) 70 self._scm_changes['add'].append(path)
70 71
71 def _delete_from_scm_later(self, path): 72 def _delete_from_scm_later(self, path):
72 self._scm_changes['delete'].append(path) 73 self._scm_changes['delete'].append(path)
73 74
74 def _print_scm_changes(self): 75 def _print_scm_changes(self):
75 print(json.dumps(self._scm_changes)) 76 print(json.dumps(self._scm_changes))
76 77
(...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after
165 old_baseline = old_baselines[i] 166 old_baseline = old_baselines[i]
166 new_baseline = new_baselines[i] 167 new_baseline = new_baselines[i]
167 168
168 _log.debug("Copying baseline from %s to %s.", old_baseline, new_base line) 169 _log.debug("Copying baseline from %s to %s.", old_baseline, new_base line)
169 self._tool.filesystem.maybe_make_directory(self._tool.filesystem.dir name(new_baseline)) 170 self._tool.filesystem.maybe_make_directory(self._tool.filesystem.dir name(new_baseline))
170 self._tool.filesystem.copyfile(old_baseline, new_baseline) 171 self._tool.filesystem.copyfile(old_baseline, new_baseline)
171 if not self._tool.scm().exists(new_baseline): 172 if not self._tool.scm().exists(new_baseline):
172 self._add_to_scm_later(new_baseline) 173 self._add_to_scm_later(new_baseline)
173 174
174 def execute(self, options, args, tool): 175 def execute(self, options, args, tool):
176 self._tool = tool
175 for suffix in options.suffixes.split(','): 177 for suffix in options.suffixes.split(','):
176 self._copy_existing_baseline(options.builder, options.test, suffix) 178 self._copy_existing_baseline(options.builder, options.test, suffix)
177 self._print_scm_changes() 179 self._print_scm_changes()
178 180
179 181
180 class RebaselineTest(BaseInternalRebaselineCommand): 182 class RebaselineTest(BaseInternalRebaselineCommand):
181 name = "rebaseline-test-internal" 183 name = "rebaseline-test-internal"
182 help_text = "Rebaseline a single test from a buildbot. Only intended for use by other webkit-patch commands." 184 help_text = "Rebaseline a single test from a buildbot. Only intended for use by other webkit-patch commands."
183 185
184 def _save_baseline(self, data, target_baseline): 186 def _save_baseline(self, data, target_baseline):
(...skipping 30 matching lines...) Expand all
215 if options.results_directory: 217 if options.results_directory:
216 results_url = 'file://' + options.results_directory 218 results_url = 'file://' + options.results_directory
217 else: 219 else:
218 results_url = self._tool.buildbot.results_url(options.builder, build _number=options.build_number) 220 results_url = self._tool.buildbot.results_url(options.builder, build _number=options.build_number)
219 221
220 for suffix in self._baseline_suffix_list: 222 for suffix in self._baseline_suffix_list:
221 self._rebaseline_test(options.builder, options.test, suffix, results _url) 223 self._rebaseline_test(options.builder, options.test, suffix, results _url)
222 self._scm_changes['remove-lines'].append({'builder': options.builder, 't est': options.test}) 224 self._scm_changes['remove-lines'].append({'builder': options.builder, 't est': options.test})
223 225
224 def execute(self, options, args, tool): 226 def execute(self, options, args, tool):
227 self._tool = tool
225 self._rebaseline_test_and_update_expectations(options) 228 self._rebaseline_test_and_update_expectations(options)
226 self._print_scm_changes() 229 self._print_scm_changes()
227 230
228 231
229 class AbstractParallelRebaselineCommand(AbstractRebaseliningCommand): 232 class AbstractParallelRebaselineCommand(AbstractRebaseliningCommand):
230 """Base class for rebaseline commands that do some tasks in parallel.""" 233 """Base class for rebaseline commands that do some tasks in parallel."""
231 # Not overriding execute() - pylint: disable=abstract-method 234 # Not overriding execute() - pylint: disable=abstract-method
232 235
233 def __init__(self, options=None): 236 def __init__(self, options=None):
234 super(AbstractParallelRebaselineCommand, self).__init__(options=options) 237 super(AbstractParallelRebaselineCommand, self).__init__(options=options)
(...skipping 292 matching lines...) Expand 10 before | Expand all | Expand 10 after
527 name = "rebaseline-json" 530 name = "rebaseline-json"
528 help_text = "Rebaseline based off JSON passed to stdin. Intended to only be called from other scripts." 531 help_text = "Rebaseline based off JSON passed to stdin. Intended to only be called from other scripts."
529 532
530 def __init__(self,): 533 def __init__(self,):
531 super(RebaselineJson, self).__init__(options=[ 534 super(RebaselineJson, self).__init__(options=[
532 self.no_optimize_option, 535 self.no_optimize_option,
533 self.results_directory_option, 536 self.results_directory_option,
534 ]) 537 ])
535 538
536 def execute(self, options, args, tool): 539 def execute(self, options, args, tool):
540 self._tool = tool
537 self._rebaseline(options, json.loads(sys.stdin.read())) 541 self._rebaseline(options, json.loads(sys.stdin.read()))
538 542
539 543
540 class RebaselineExpectations(AbstractParallelRebaselineCommand): 544 class RebaselineExpectations(AbstractParallelRebaselineCommand):
541 name = "rebaseline-expectations" 545 name = "rebaseline-expectations"
542 help_text = "Rebaselines the tests indicated in TestExpectations." 546 help_text = "Rebaselines the tests indicated in TestExpectations."
543 show_in_main_help = True 547 show_in_main_help = True
544 548
545 def __init__(self): 549 def __init__(self):
546 super(RebaselineExpectations, self).__init__(options=[ 550 super(RebaselineExpectations, self).__init__(options=[
(...skipping 20 matching lines...) Expand all
567 if tests: 571 if tests:
568 _log.info("Retrieving results for %s from %s.", port_name, builder_n ame) 572 _log.info("Retrieving results for %s from %s.", port_name, builder_n ame)
569 573
570 for test_name, suffixes in tests: 574 for test_name, suffixes in tests:
571 _log.info(" %s (%s)", test_name, ','.join(suffixes)) 575 _log.info(" %s (%s)", test_name, ','.join(suffixes))
572 if test_name not in self._test_prefix_list: 576 if test_name not in self._test_prefix_list:
573 self._test_prefix_list[test_name] = {} 577 self._test_prefix_list[test_name] = {}
574 self._test_prefix_list[test_name][Build(builder_name)] = suffixes 578 self._test_prefix_list[test_name][Build(builder_name)] = suffixes
575 579
576 def execute(self, options, args, tool): 580 def execute(self, options, args, tool):
581 self._tool = tool
577 options.results_directory = None 582 options.results_directory = None
578 self._test_prefix_list = {} 583 self._test_prefix_list = {}
579 port_names = tool.port_factory.all_port_names(options.platform) 584 port_names = tool.port_factory.all_port_names(options.platform)
580 for port_name in port_names: 585 for port_name in port_names:
581 self._add_tests_to_rebaseline(port_name) 586 self._add_tests_to_rebaseline(port_name)
582 if not self._test_prefix_list: 587 if not self._test_prefix_list:
583 _log.warning("Did not find any tests marked Rebaseline.") 588 _log.warning("Did not find any tests marked Rebaseline.")
584 return 589 return
585 590
586 self._rebaseline(options, self._test_prefix_list) 591 self._rebaseline(options, self._test_prefix_list)
(...skipping 14 matching lines...) Expand all
601 optparse.make_option("--builders", default=None, action="append", 606 optparse.make_option("--builders", default=None, action="append",
602 help=("Comma-separated-list of builders to pull new baselines from " 607 help=("Comma-separated-list of builders to pull new baselines from "
603 "(can also be provided multiple times).") ), 608 "(can also be provided multiple times).") ),
604 ]) 609 ])
605 610
606 def _builders_to_pull_from(self): 611 def _builders_to_pull_from(self):
607 return self._tool.user.prompt_with_list( 612 return self._tool.user.prompt_with_list(
608 "Which builder to pull results from:", self._release_builders(), can _choose_multiple=True) 613 "Which builder to pull results from:", self._release_builders(), can _choose_multiple=True)
609 614
610 def execute(self, options, args, tool): 615 def execute(self, options, args, tool):
616 self._tool = tool
611 if not args: 617 if not args:
612 _log.error("Must list tests to rebaseline.") 618 _log.error("Must list tests to rebaseline.")
613 return 619 return
614 620
615 if options.builders: 621 if options.builders:
616 builders_to_check = [] 622 builders_to_check = []
617 for builder_names in options.builders: 623 for builder_names in options.builders:
618 builders_to_check += builder_names.split(",") 624 builders_to_check += builder_names.split(",")
619 else: 625 else:
620 builders_to_check = self._builders_to_pull_from() 626 builders_to_check = self._builders_to_pull_from()
621 627
622 test_prefix_list = {} 628 test_prefix_list = {}
623 suffixes_to_update = options.suffixes.split(",") 629 suffixes_to_update = options.suffixes.split(",")
624 630
625 for builder in builders_to_check: 631 for builder in builders_to_check:
626 for test in args: 632 for test in args:
627 if test not in test_prefix_list: 633 if test not in test_prefix_list:
628 test_prefix_list[test] = {} 634 test_prefix_list[test] = {}
629 build = Build(builder) 635 build = Build(builder)
630 test_prefix_list[test][build] = suffixes_to_update 636 test_prefix_list[test][build] = suffixes_to_update
631 637
632 if options.verbose: 638 if options.verbose:
633 _log.debug("rebaseline-json: " + str(test_prefix_list)) 639 _log.debug("rebaseline-json: " + str(test_prefix_list))
634 640
635 self._rebaseline(options, test_prefix_list) 641 self._rebaseline(options, test_prefix_list)
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698