| Index: testing/buildbot/manage.py
|
| diff --git a/testing/buildbot/manage.py b/testing/buildbot/manage.py
|
| index b05a1488bff7f8d9c7f908c25c705a59faaf2ea9..0c51aa7039c8c9bc0047026881592463d25e1f1b 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,26 @@ 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 already ran on Swarming' % data['count_run_on_swarming'])
|
| + 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 +305,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:
|
|
|