File: gen_coverage_report.py

package info (click to toggle)
onnx 1.7.0%2Bdfsg-3
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 28,940 kB
  • sloc: cpp: 29,203; python: 20,948; ansic: 3,441; makefile: 26; sh: 26
file content (83 lines) | stat: -rwxr-xr-x 1,948 bytes parent folder | download
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()