1*6777b538SAndroid Build Coastguard Worker#!/usr/bin/env python 2*6777b538SAndroid Build Coastguard Worker# Copyright 2014 The Chromium Authors 3*6777b538SAndroid Build Coastguard Worker# Use of this source code is governed by a BSD-style license that can be 4*6777b538SAndroid Build Coastguard Worker# found in the LICENSE file. 5*6777b538SAndroid Build Coastguard Worker 6*6777b538SAndroid Build Coastguard Workerimport argparse 7*6777b538SAndroid Build Coastguard Workerimport json 8*6777b538SAndroid Build Coastguard Workerimport os 9*6777b538SAndroid Build Coastguard Workerimport sys 10*6777b538SAndroid Build Coastguard Worker 11*6777b538SAndroid Build Coastguard Worker# Add src/testing/ into sys.path for importing common without pylint errors. 12*6777b538SAndroid Build Coastguard Workersys.path.append( 13*6777b538SAndroid Build Coastguard Worker os.path.abspath(os.path.join(os.path.dirname(__file__), os.path.pardir))) 14*6777b538SAndroid Build Coastguard Workerfrom scripts import common 15*6777b538SAndroid Build Coastguard Worker 16*6777b538SAndroid Build Coastguard Worker 17*6777b538SAndroid Build Coastguard Workerdef main(argv): 18*6777b538SAndroid Build Coastguard Worker parser = argparse.ArgumentParser() 19*6777b538SAndroid Build Coastguard Worker parser.add_argument('--output', required=True) 20*6777b538SAndroid Build Coastguard Worker parser.add_argument('args', nargs=argparse.REMAINDER) 21*6777b538SAndroid Build Coastguard Worker 22*6777b538SAndroid Build Coastguard Worker args = parser.parse_args(argv) 23*6777b538SAndroid Build Coastguard Worker 24*6777b538SAndroid Build Coastguard Worker passthrough_args = args.args 25*6777b538SAndroid Build Coastguard Worker if passthrough_args[0] == '--': 26*6777b538SAndroid Build Coastguard Worker passthrough_args = passthrough_args[1:] 27*6777b538SAndroid Build Coastguard Worker 28*6777b538SAndroid Build Coastguard Worker results = {} 29*6777b538SAndroid Build Coastguard Worker 30*6777b538SAndroid Build Coastguard Worker for filename in os.listdir(common.SCRIPT_DIR): 31*6777b538SAndroid Build Coastguard Worker if not filename.endswith('.py'): 32*6777b538SAndroid Build Coastguard Worker continue 33*6777b538SAndroid Build Coastguard Worker if filename in ('common.py', 34*6777b538SAndroid Build Coastguard Worker 'get_compile_targets.py', 35*6777b538SAndroid Build Coastguard Worker 'gpu_integration_test_adapter.py', 36*6777b538SAndroid Build Coastguard Worker 'PRESUBMIT.py', 37*6777b538SAndroid Build Coastguard Worker 'sizes_common.py', 38*6777b538SAndroid Build Coastguard Worker 'variations_seed_access_helper.py', 39*6777b538SAndroid Build Coastguard Worker 'run_variations_smoke_tests.py', 40*6777b538SAndroid Build Coastguard Worker 'run_performance_tests_unittest.py'): 41*6777b538SAndroid Build Coastguard Worker continue 42*6777b538SAndroid Build Coastguard Worker 43*6777b538SAndroid Build Coastguard Worker with common.temporary_file() as tempfile_path: 44*6777b538SAndroid Build Coastguard Worker rc = common.run_command( 45*6777b538SAndroid Build Coastguard Worker [sys.executable, os.path.join(common.SCRIPT_DIR, filename)] + 46*6777b538SAndroid Build Coastguard Worker passthrough_args + 47*6777b538SAndroid Build Coastguard Worker [ 48*6777b538SAndroid Build Coastguard Worker 'compile_targets', 49*6777b538SAndroid Build Coastguard Worker '--output', tempfile_path 50*6777b538SAndroid Build Coastguard Worker ] 51*6777b538SAndroid Build Coastguard Worker ) 52*6777b538SAndroid Build Coastguard Worker if rc != 0: 53*6777b538SAndroid Build Coastguard Worker return rc 54*6777b538SAndroid Build Coastguard Worker 55*6777b538SAndroid Build Coastguard Worker with open(tempfile_path) as f: 56*6777b538SAndroid Build Coastguard Worker # json.load() throws a ValueError for empty files 57*6777b538SAndroid Build Coastguard Worker try: 58*6777b538SAndroid Build Coastguard Worker results[filename] = json.load(f) 59*6777b538SAndroid Build Coastguard Worker except ValueError: 60*6777b538SAndroid Build Coastguard Worker pass 61*6777b538SAndroid Build Coastguard Worker 62*6777b538SAndroid Build Coastguard Worker with open(args.output, 'w') as f: 63*6777b538SAndroid Build Coastguard Worker json.dump(results, f) 64*6777b538SAndroid Build Coastguard Worker 65*6777b538SAndroid Build Coastguard Worker return 0 66*6777b538SAndroid Build Coastguard Worker 67*6777b538SAndroid Build Coastguard Worker 68*6777b538SAndroid Build Coastguard Workerif __name__ == '__main__': 69*6777b538SAndroid Build Coastguard Worker sys.exit(main(sys.argv[1:])) 70