1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83
|
#!/usr/bin/env python
import argparse
import os
import subprocess
import tempfile
MYPY = False
if MYPY:
from typing import Text
def parse_args(): # type: () -> argparse.Namespace
parser = argparse.ArgumentParser(os.path.basename(__file__))
parser.add_argument('-r', '--root',
default=os.path.dirname(
os.path.dirname(os.path.abspath(__file__))),
help='onnx root directory (default: %(default)s)')
parser.add_argument('-o', '--out', required=True,
help='output directory')
return parser.parse_args()
def gen_trace_file(root_dir, out_path): # type: (Text, Text) -> None
subprocess.check_output([
'lcov',
'-c',
'-d',
root_dir,
'--no-external',
'--path',
root_dir,
'-o',
out_path])
subprocess.check_output([
'lcov',
'-r',
out_path,
os.path.join(root_dir, 'third_party', '*'),
'-o',
out_path])
subprocess.check_output([
'lcov',
'-r',
out_path,
os.path.join(root_dir, '.setuptools-cmake-build', '*'),
'-o',
out_path
])
def gen_html_files(root_dir, trace_path, out_dir): # type: (Text, Text, Text) -> None
subprocess.check_output([
'genhtml',
trace_path,
'-p',
root_dir,
'-o',
out_dir,
])
def main(): # type: () -> None
args = parse_args()
root = os.path.abspath(args.root)
out = os.path.abspath(args.out)
if not os.path.exists(out):
os.makedirs(out)
trace_path = os.path.join(out, 'onnx-coverage.info')
gen_trace_file(root, trace_path)
html_dir = os.path.join(out, 'html')
gen_html_files(root, trace_path, html_dir)
print('Static HTML files have been generated at:\n\t{}'.format(html_dir))
if __name__ == '__main__':
main()
|