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

Unified Diff: testing/buildbot/manage.py

Issue 1841863002: Update monet. (Closed) Base URL: https://github.com/domokit/monet.git@master
Patch Set: Created 4 years, 9 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « testing/buildbot/client.v8.fyi.json ('k') | testing/buildbot/trybot_analyze_config.json » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: testing/buildbot/manage.py
diff --git a/testing/buildbot/manage.py b/testing/buildbot/manage.py
deleted file mode 100755
index bc362fd221b1f4578f44b542ba8fb04aff39f8ed..0000000000000000000000000000000000000000
--- a/testing/buildbot/manage.py
+++ /dev/null
@@ -1,193 +0,0 @@
-#!/usr/bin/env python
-# Copyright 2015 The Chromium Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-"""Toolbox to manage all the json files in this directory.
-
-It can reformat them in their canonical format or ensures they are well
-formatted.
-"""
-
-import argparse
-import collections
-import glob
-import json
-import os
-import subprocess
-import sys
-
-
-THIS_DIR = os.path.dirname(os.path.abspath(__file__))
-SRC_DIR = os.path.dirname(os.path.dirname(THIS_DIR))
-sys.path.insert(0, os.path.join(SRC_DIR, 'third_party', 'colorama', 'src'))
-
-import colorama
-
-
-SKIP = {
- # These are not 'builders'.
- 'compile_targets', 'gtest_tests', 'filter_compile_builders',
- 'non_filter_builders', 'non_filter_tests_builders',
-
- # These are not supported on Swarming yet.
- # http://crbug.com/472205
- 'Chromium Mac 10.10',
- # http://crbug.com/441429
- 'Linux Trusty (32)', 'Linux Trusty (dbg)(32)',
-
- # One off builders. Note that Swarming does support ARM.
- 'Linux ARM Cross-Compile',
- 'Site Isolation Linux',
- 'Site Isolation Win',
-}
-
-
-def upgrade_test(test):
- """Converts from old style string to new style dict."""
- if isinstance(test, basestring):
- return {'test': test}
- assert isinstance(test, dict)
- return test
-
-
-def get_isolates():
- """Returns the list of all isolate files."""
- files = subprocess.check_output(['git', 'ls-files'], cwd=SRC_DIR).splitlines()
- return [os.path.basename(f) for f in files if f.endswith('.isolate')]
-
-
-def main():
- colorama.init()
- parser = argparse.ArgumentParser(description=sys.modules[__name__].__doc__)
- group = parser.add_mutually_exclusive_group(required=True)
- group.add_argument(
- '-c', '--check', action='store_true', help='Only check the files')
- group.add_argument(
- '--convert', action='store_true',
- help='Convert a test to run on Swarming everywhere')
- group.add_argument(
- '--remaining', action='store_true',
- help='Count the number of tests not yet running on Swarming')
- group.add_argument(
- '-w', '--write', action='store_true', help='Rewrite the files')
- parser.add_argument(
- 'test_name', nargs='?',
- help='The test name to print which configs to update; only to be used '
- 'with --remaining')
- args = parser.parse_args()
-
- if args.convert or args.remaining:
- isolates = get_isolates()
-
- if args.convert:
- if not args.test_name:
- parser.error('A test name is required with --convert')
- if args.test_name + '.isolate' not in isolates:
- parser.error('Create %s.isolate first' % args.test_name)
-
- # Stats when running in --remaining mode;
- tests_location = collections.defaultdict(
- lambda: {
- 'count_run_local': 0, 'count_run_on_swarming': 0, 'local_configs': {}
- })
-
- result = 0
- for filepath in glob.glob(os.path.join(THIS_DIR, '*.json')):
- filename = os.path.basename(filepath)
- with open(filepath) as f:
- content = f.read()
- try:
- config = json.loads(content)
- except ValueError as e:
- print "Exception raised while checking %s: %s" % (filepath, e)
- raise
- for builder, data in sorted(config.iteritems()):
- if builder in SKIP:
- # Oddities.
- continue
-
- if not isinstance(data, dict):
- print('%s: %s is broken: %s' % (filename, builder, data))
- continue
-
- if 'gtest_tests' in data:
- config[builder]['gtest_tests'] = sorted(
- (upgrade_test(l) for l in data['gtest_tests']),
- key=lambda x: x['test'])
-
- if args.remaining:
- for test in data['gtest_tests']:
- name = test['test']
- if test.get('swarming', {}).get('can_use_on_swarming_builders'):
- tests_location[name]['count_run_on_swarming'] += 1
- else:
- tests_location[name]['count_run_local'] += 1
- tests_location[name]['local_configs'].setdefault(
- filename, []).append(builder)
- elif args.convert:
- for test in data['gtest_tests']:
- if test['test'] != args.test_name:
- continue
- test.setdefault('swarming', {})
- if not test['swarming'].get('can_use_on_swarming_builders'):
- print('- %s: %s' % (filename, builder))
- test['swarming']['can_use_on_swarming_builders'] = True
-
- expected = json.dumps(
- config, sort_keys=True, indent=2, separators=(',', ': ')) + '\n'
- if content != expected:
- result = 1
- if args.write or args.convert:
- with open(filepath, 'wb') as f:
- f.write(expected)
- if args.write:
- print('Updated %s' % filename)
- else:
- print('%s is not in canonical format' % filename)
-
- if args.remaining:
- if args.test_name:
- if args.test_name not in tests_location:
- print('Unknown test %s' % args.test_name)
- return 1
- for config, builders in sorted(
- tests_location[args.test_name]['local_configs'].iteritems()):
- print('%s:' % config)
- for builder in sorted(builders):
- print(' %s' % builder)
- else:
- l = max(map(len, tests_location))
- print('%-*s%sLocal %sSwarming %sMissing isolate' %
- (l, 'Test', colorama.Fore.RED, colorama.Fore.GREEN,
- colorama.Fore.MAGENTA))
- total_local = 0
- total_swarming = 0
- for name, location in sorted(tests_location.iteritems()):
- if not location['count_run_on_swarming']:
- c = colorama.Fore.RED
- elif location['count_run_local']:
- c = colorama.Fore.YELLOW
- else:
- c = colorama.Fore.GREEN
- total_local += location['count_run_local']
- total_swarming += location['count_run_on_swarming']
- missing_isolate = ''
- if name + '.isolate' not in isolates:
- missing_isolate = colorama.Fore.MAGENTA + '*'
- print('%s%-*s %4d %4d %s' %
- (c, l, name, location['count_run_local'],
- location['count_run_on_swarming'], missing_isolate))
-
- total = total_local + total_swarming
- p_local = 100. * total_local / total
- p_swarming = 100. * total_swarming / total
- print('%s%-*s %4d (%4.1f%%) %4d (%4.1f%%)' %
- (colorama.Fore.WHITE, l, 'Total:', total_local, p_local,
- total_swarming, p_swarming))
- print('%-*s %4d' % (l, 'Total executions:', total))
- return result
-
-
-if __name__ == "__main__":
- sys.exit(main())
« no previous file with comments | « testing/buildbot/client.v8.fyi.json ('k') | testing/buildbot/trybot_analyze_config.json » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698