| #!/usr/bin/env vpython3 | |
| # Copyright 2021 The Chromium Authors | |
| # Use of this source code is governed by a BSD-style license that can be | |
| # found in the LICENSE file. | |
| """Runs //tools/metrics/metrics_python_tests.py as a 'script' test.""" | |
| import json | |
| import os | |
| import sys | |
| import common | |
| def main_run(args): | |
| with common.temporary_file() as tempfile_path: | |
| rc = common.run_command( | |
| [ | |
| 'vpython3', | |
| os.path.join(common.SRC_DIR, 'testing', 'test_env.py'), | |
| os.path.join( | |
| common.SRC_DIR, 'tools', 'metrics', 'metrics_python_tests.py' | |
| ), | |
| '--isolated-script-test-output', | |
| tempfile_path, | |
| '--skip-set-lpac-acls=1', | |
| ], | |
| cwd=args.build_dir, | |
| ) | |
| with open(tempfile_path) as f: | |
| isolated_results = json.load(f) | |
| results = common.parse_common_test_results( | |
| isolated_results, test_separator='.' | |
| ) | |
| failures = [ | |
| '%s: %s' % (k, v) for k, v in results['unexpected_failures'].items() | |
| ] | |
| # No need to call common.record_local_script_results() since this test | |
| # uploads individual results to RDB itself. | |
| local_script_results = {'valid': True, 'failures': failures} | |
| with open(args.output.name, 'w') as fd: | |
| json.dump(local_script_results, fd) | |
| return rc | |
| def main_compile_targets(args): | |
| json.dump([], args.output) | |
| if __name__ == '__main__': | |
| funcs = { | |
| 'run': main_run, | |
| 'compile_targets': main_compile_targets, | |
| } | |
| sys.exit(common.run_script(sys.argv[1:], funcs)) |