69 lines
1.9 KiB
Python
Executable File
69 lines
1.9 KiB
Python
Executable File
#!/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:])
|