1*6777b538SAndroid Build Coastguard Worker#!/usr/bin/env vpython3 2*6777b538SAndroid Build Coastguard Worker# Copyright 2021 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 Worker"""Runs //tools/metrics/metrics_python_tests.py as a 'script' test.""" 7*6777b538SAndroid Build Coastguard Worker 8*6777b538SAndroid Build Coastguard Workerimport json 9*6777b538SAndroid Build Coastguard Workerimport os 10*6777b538SAndroid Build Coastguard Workerimport sys 11*6777b538SAndroid Build Coastguard Worker 12*6777b538SAndroid Build Coastguard Worker# Add src/testing/ into sys.path for importing common without pylint errors. 13*6777b538SAndroid Build Coastguard Workersys.path.append( 14*6777b538SAndroid Build Coastguard Worker os.path.abspath(os.path.join(os.path.dirname(__file__), os.path.pardir))) 15*6777b538SAndroid Build Coastguard Workerfrom scripts import common 16*6777b538SAndroid Build Coastguard Worker 17*6777b538SAndroid Build Coastguard Worker 18*6777b538SAndroid Build Coastguard Workerdef main_run(args): 19*6777b538SAndroid Build Coastguard Worker with common.temporary_file() as tempfile_path: 20*6777b538SAndroid Build Coastguard Worker rc = common.run_command(['vpython3', 21*6777b538SAndroid Build Coastguard Worker os.path.join(common.SRC_DIR, 'testing', 'test_env.py'), 22*6777b538SAndroid Build Coastguard Worker os.path.join(common.SRC_DIR, 'tools', 'metrics', 23*6777b538SAndroid Build Coastguard Worker 'metrics_python_tests.py'), 24*6777b538SAndroid Build Coastguard Worker '--isolated-script-test-output', tempfile_path, 25*6777b538SAndroid Build Coastguard Worker '--skip-set-lpac-acls=1', 26*6777b538SAndroid Build Coastguard Worker ], cwd=os.path.join(common.SRC_DIR, 'out', args.build_config_fs)) 27*6777b538SAndroid Build Coastguard Worker 28*6777b538SAndroid Build Coastguard Worker with open(tempfile_path) as f: 29*6777b538SAndroid Build Coastguard Worker isolated_results = json.load(f) 30*6777b538SAndroid Build Coastguard Worker 31*6777b538SAndroid Build Coastguard Worker results = common.parse_common_test_results(isolated_results, 32*6777b538SAndroid Build Coastguard Worker test_separator='.') 33*6777b538SAndroid Build Coastguard Worker 34*6777b538SAndroid Build Coastguard Worker failures = [ 35*6777b538SAndroid Build Coastguard Worker '%s: %s' % (k, v) for k, v in results['unexpected_failures'].items() 36*6777b538SAndroid Build Coastguard Worker ] 37*6777b538SAndroid Build Coastguard Worker common.record_local_script_results( 38*6777b538SAndroid Build Coastguard Worker 'metrics_python_tests', args.output, failures, True) 39*6777b538SAndroid Build Coastguard Worker 40*6777b538SAndroid Build Coastguard Worker return rc 41*6777b538SAndroid Build Coastguard Worker 42*6777b538SAndroid Build Coastguard Worker 43*6777b538SAndroid Build Coastguard Workerdef main_compile_targets(args): 44*6777b538SAndroid Build Coastguard Worker json.dump([], args.output) 45*6777b538SAndroid Build Coastguard Worker 46*6777b538SAndroid Build Coastguard Worker 47*6777b538SAndroid Build Coastguard Workerif __name__ == '__main__': 48*6777b538SAndroid Build Coastguard Worker funcs = { 49*6777b538SAndroid Build Coastguard Worker 'run': main_run, 50*6777b538SAndroid Build Coastguard Worker 'compile_targets': main_compile_targets, 51*6777b538SAndroid Build Coastguard Worker } 52*6777b538SAndroid Build Coastguard Worker sys.exit(common.run_script(sys.argv[1:], funcs)) 53