MCPcopy Create free account
hub / github.com/andreasfertig/cppinsights / main

Function main

scripts/llvm-coverage.py:27–57  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

25#------------------------------------------------------------------------------
26
27def main():
28 parser = argparse.ArgumentParser(description='llvm-coverage')
29 parser.add_argument('--insights', help='C++ Insights binary', required=True)
30 parser.add_argument('--llvm-prof-dir', help='LLVM profiles data dir', default='')
31 parser.add_argument('--llvm-prof', help='llvm-profdata binary', default='llvm-profdata')
32 parser.add_argument('--llvm-cov', help='llvm-cov binary', default='llvm-cov')
33 parser.add_argument('--format', help='Output format: html/text', default='text')
34 parser.add_argument('--output', help='Output filename', required=True)
35 parser.add_argument('args', nargs=argparse.REMAINDER)
36 args = vars(parser.parse_args())
37
38 insightsPath = args['insights']
39 rawProfiles = glob.glob(os.path.join(args['llvm_prof_dir'], "*.profraw"))
40 profilesManifest = os.path.join(args['llvm_prof_dir'], 'profiles.manifest')
41 profilesData = os.path.join(args['llvm_prof_dir'], 'insights.profdata')
42
43 with open(profilesManifest, "w") as manifest:
44 manifest.write("\n".join(rawProfiles))
45
46 cmd = [args['llvm_prof'], 'merge', '-sparse', '-f', profilesManifest, '-o', profilesData]
47 stdout, stderr, returncode = runCmd(cmd)
48 print(stderr)
49
50 action = 'show' if args['format'] != 'lcov' else 'export'
51
52 cmd = [args['llvm_cov'], action, insightsPath, f'-instr-profile={profilesData}', f'--format={args["format"]}', '-ignore-filename-regex=build/']
53
54 stdout, stderr, returncode = runCmd(cmd)
55 print(stderr)
56
57 open(args['output'], 'w').write(stdout)
58#------------------------------------------------------------------------------
59
60

Callers 1

llvm-coverage.pyFile · 0.70

Calls 2

printFunction · 0.85
runCmdFunction · 0.70

Tested by

no test coverage detected