You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
69 lines
1.9 KiB
69 lines
1.9 KiB
4 months ago
|
#!/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:])
|