Chromium Code Reviews| Index: testing/buildbot/manage.py |
| diff --git a/testing/buildbot/manage.py b/testing/buildbot/manage.py |
| index b05a1488bff7f8d9c7f908c25c705a59faaf2ea9..6f4d7f10ef4655a5a3d0d5a55f88eed69847ef55 100755 |
| --- a/testing/buildbot/manage.py |
| +++ b/testing/buildbot/manage.py |
| @@ -93,7 +93,7 @@ def get_isolates(): |
| return [os.path.basename(f) for f in files if f.endswith('.isolate')] |
| -def process_builder_convert(data, filename, builder, test_name): |
| +def process_builder_convert(data, test_name): |
| """Converts 'test_name' to run on Swarming in 'data'. |
| Returns True if 'test_name' was found. |
| @@ -104,7 +104,6 @@ def process_builder_convert(data, filename, builder, 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 |
| result = True |
| return result |
| @@ -124,7 +123,7 @@ def process_builder_remaining(data, filename, builder, tests_location): |
| def process_file(mode, test_name, tests_location, filepath, ninja_targets, |
| ninja_targets_seen): |
| - """Processes a file. |
| + """Processes a json file describing what tests should be run for each recipe. |
| The action depends on mode. Updates tests_location. |
| @@ -163,10 +162,14 @@ def process_file(mode, test_name, tests_location, filepath, ninja_targets, |
| config[builder]['gtest_tests'] = sorted( |
| data['gtest_tests'], key=lambda x: x['test']) |
| - if mode == 'remaining': |
| + |
| + # The trick here is that process_builder_remaining() is called before |
| + # process_builder_convert() so tests_location can be used to know how many |
| + # tests were converted. |
| + if mode in ('convert', 'remaining'): |
| process_builder_remaining(data, filename, builder, tests_location) |
| - elif mode == 'convert': |
| - process_builder_convert(data, filename, builder, test_name) |
| + if mode == 'convert': |
| + process_builder_convert(data, test_name) |
| expected = json.dumps( |
| config, sort_keys=True, indent=2, separators=(',', ': ')) + '\n' |
| @@ -183,7 +186,28 @@ def process_file(mode, test_name, tests_location, filepath, ninja_targets, |
| return True |
| -def print_remaining(test_name,tests_location): |
| +def print_convert(test_name, tests_location): |
| + """Prints statistics for a test being converted for use in a CL description. |
| + """ |
| + data = tests_location[test_name] |
| + print('Convert %s to run exclusively on Swarming' % test_name) |
| + print('') |
| + print( |
| + '%d configs used to already run on Swarming' % |
|
Dirk Pranke
2015/06/23 19:25:41
"%d configs already ran on Swarming" maybe?
M-A Ruel
2015/06/23 19:29:51
Done.
|
| + data['count_run_on_swarming']) |
|
Dirk Pranke
2015/06/23 19:24:39
this formatting is a bit odd; why isn't the string
|
| + print('%d used to run locally and were converted:' % data['count_run_local']) |
| + for master, builders in sorted(data['local_configs'].iteritems()): |
| + for builder in builders: |
| + print('- %s: %s' % (master, builder)) |
| + print('') |
| + print('Ran:') |
| + print(' ./manage.py --convert %s' % test_name) |
| + print('') |
| + print('R=') |
| + print('BUG=98637') |
| + |
| + |
| +def print_remaining(test_name, tests_location): |
| """Prints a visual summary of what tests are yet to be converted to run on |
| Swarming. |
| """ |
| @@ -283,7 +307,9 @@ def main(): |
| raise Error('%s listed in ninja_to_gn.pyl but not in any .json files' % |
| extra_targets_str) |
| - if args.mode == 'remaining': |
| + if args.mode == 'convert': |
| + print_convert(args.test_name, tests_location) |
| + elif args.mode == 'remaining': |
| print_remaining(args.test_name, tests_location) |
| return result |
| except Error as e: |