xref: /aosp_15_r20/external/cronet/testing/scripts/metrics_python_tests.py (revision 6777b5387eb2ff775bb5750e3f5d96f37fb7352b)
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