From 4b8bb5ed1e3f03f62a0b1da06acaee5bcecc98e7 Mon Sep 17 00:00:00 2001 From: machenbach Date: Wed, 29 Apr 2015 22:12:33 -0700 Subject: [PATCH] [test-runner] Enable specification of trybots. Now it's possible to specify the desired trybots for perf tries, e.g.: tools/try_perf.py --linux64_haswell octane sunspider BUG=chromium:478460 LOG=n NOTRY=true Review URL: https://codereview.chromium.org/1114913002 Cr-Commit-Position: refs/heads/master@{#28142} --- tools/try_perf.py | 36 ++++++++++++++++++++++++++++-------- 1 file changed, 28 insertions(+), 8 deletions(-) diff --git a/tools/try_perf.py b/tools/try_perf.py index fcd1ddc..58927bd 100755 --- a/tools/try_perf.py +++ b/tools/try_perf.py @@ -3,6 +3,7 @@ # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. +import argparse import find_depot_tools import sys @@ -10,12 +11,29 @@ find_depot_tools.add_depot_tools_to_path() from git_cl import Changelist -BOTS = [ +BOTS = { + '--linux32': 'v8_linux32_perf_try', + '--linux64': 'v8_linux64_perf_try', + '--linux64_haswell': 'v8_linux64_haswell_perf_try', +} + +DEFAULT_BOTS = [ 'v8_linux32_perf_try', - 'v8_linux64_perf_try', + 'v8_linux64_haswell_perf_try', ] -def main(tests): +def main(): + parser = argparse.ArgumentParser(description='') + parser.add_argument("benchmarks", nargs="+", help="The benchmarks to run.") + for option in sorted(BOTS): + parser.add_argument( + option, dest='bots', action='append_const', const=BOTS[option], + help='Add %s trybot.' % BOTS[option]) + options = parser.parse_args() + if not options.bots: + print 'No trybots specified. Using default %s.' % ','.join(DEFAULT_BOTS) + options.bots = DEFAULT_BOTS + cl = Changelist() if not cl.GetIssue(): print 'Need to upload first' @@ -30,15 +48,17 @@ def main(tests): print 'Cannot use trybots with private issue' return 1 - if not tests: + if not options.benchmarks: print 'Please specify the benchmarks to run as arguments.' return 1 - masters = {'internal.client.v8': dict((b, tests) for b in BOTS)} + masters = { + 'internal.client.v8': dict((b, options.benchmarks) for b in options.bots), + } cl.RpcServer().trigger_distributed_try_jobs( - cl.GetIssue(), cl.GetMostRecentPatchset(), cl.GetBranch(), - False, None, masters) + cl.GetIssue(), cl.GetMostRecentPatchset(), cl.GetBranch(), + False, None, masters) return 0 if __name__ == "__main__": # pragma: no cover - sys.exit(main(sys.argv[1:])) + sys.exit(main()) -- 2.7.4