#!/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:])