| #!/usr/bin/env python2 |
| # |
| # Copyright 2017 The Chromium OS Authors. All rights reserved. |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| # |
| # pylint: disable=cros-logging-import |
| |
| """Script to re-format json result to one with branch_name and build_id""" |
| from __future__ import print_function |
| |
| import argparse |
| import config |
| import json |
| import logging |
| import os |
| import subprocess |
| import sys |
| |
| # Turn the logging level to INFO before importing other autotest |
| # code, to avoid having failed import logging messages confuse the |
| # test_droid user. |
| logging.basicConfig(level=logging.INFO) |
| |
| |
| def _parse_arguments_internal(argv): |
| parser = argparse.ArgumentParser(description='Convert result to JSON' |
| 'format') |
| parser.add_argument( |
| '-b', '--bench', help='Generate JSON format file for which benchmark.') |
| return parser.parse_args(argv) |
| |
| def fix_json(bench): |
| # Set environment variable for crosperf |
| os.environ['PYTHONPATH'] = os.path.dirname(config.toolchain_utils) |
| |
| logging.info('Generating Crosperf Report...') |
| json_path = os.path.join(config.bench_suite_dir, bench + '_refined') |
| crosperf_cmd = [ |
| os.path.join(config.toolchain_utils, 'generate_report.py'), '--json', |
| '-i=' + os.path.join(config.bench_suite_dir, bench + '.json'), |
| '-o=' + json_path, '-f' |
| ] |
| |
| # Run crosperf generate_report.py |
| logging.info('Command: %s', crosperf_cmd) |
| subprocess.call(crosperf_cmd) |
| |
| json_path += '.json' |
| with open(json_path) as fout: |
| objs = json.load(fout) |
| for obj in objs: |
| obj['branch_name'] = 'aosp/master' |
| obj['build_id'] = 0 |
| with open(json_path, 'w') as fout: |
| json.dump(objs, fout) |
| |
| logging.info('JSON file fixed successfully!') |
| |
| def main(argv): |
| arguments = _parse_arguments_internal(argv) |
| |
| bench = arguments.bench |
| |
| fix_json(bench) |
| |
| if __name__ == '__main__': |
| main(sys.argv[1:]) |