diff --git a/autorun_post.py b/autorun_post.py index 0166b56b6..c9cbfd4ad 100755 --- a/autorun_post.py +++ b/autorun_post.py @@ -7,6 +7,7 @@ import shutil import subprocess import argparse +import itertools import os import sys import glob @@ -61,19 +62,23 @@ def generateCoverageReport(output_dir, repo_dir): if len(covfiles) == 0: return lcov_opts = [ - '--rc lcov_branch_coverage=1', - '--rc lcov_function_coverage=1', - '--rc genhtml_branch_coverage=1', - '--rc genhtml_function_coverage=1', - '--rc genhtml_legend=1', - '--rc geninfo_all_blocks=1', + '--rc', 'lcov_branch_coverage=1', + '--rc', 'lcov_function_coverage=1', + '--rc', 'genhtml_branch_coverage=1', + '--rc', 'genhtml_function_coverage=1', + '--rc', 'genhtml_legend=1', + '--rc', 'geninfo_all_blocks=1', ] + + # HACK: This is a workaround for some odd CI assumptions + details = '--show-details' + cov_total = os.path.abspath(os.path.join(output_dir, 'cov_total.info')) coverage = os.path.join(output_dir, 'coverage') - lcov = 'lcov' + ' ' + ' '.join(lcov_opts) + ' -q -a ' + ' -a '.join(covfiles) + ' -o ' + cov_total - genhtml = 'genhtml' + ' ' + ' '.join(lcov_opts) + ' -q ' + cov_total + ' --legend' + ' -t "Combined" --show-details -o ' + coverage + lcov = ['lcov', *lcov_opts, '-q', *itertools.chain(*[('-a', f) for f in covfiles]), '-o', cov_total] + genhtml = ['genhtml', *lcov_opts, '-q', cov_total, '--legend', '-t', 'Combined', *details.split(), '-o', coverage] try: - subprocess.check_call([lcov], shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE) + subprocess.check_call(lcov) except subprocess.CalledProcessError as e: print("lcov failed") print(e) @@ -89,7 +94,7 @@ def generateCoverageReport(output_dir, repo_dir): Line = re.sub("^SF:.*/repo", replacement, Line) file.write(Line + '\n') try: - subprocess.check_call([genhtml], shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE) + subprocess.check_call(genhtml) except subprocess.CalledProcessError as e: print("genhtml failed") print(e)