如何合并两个或更多运行的分支覆盖率?是否存在任何工具或lcov命令?
假设我有两个测试运行,并希望看到摘要分支覆盖率
gcc -O0 --coverage main.c -o test-coverage
test-coverage param1
lcov --capture --rc lcov_branch_coverage=1 --directory . --config-file ./lcovrc --output coverage1.info
test-coverage param2
lcov --capture --rc lcov_branch_coverage=1 --directory . --config-file ./lcovrc --output coverage2.info看起来需要解析和合并文件coverage1.info和coverage2.info是否已经有解决方案,或者我必须开发自己的解决方案?
发布于 2021-07-14 00:36:04
开发了python脚本,它合并了一个文件列表(这里的行覆盖率并不准确)
def merge(files):
if (len(files) == 0):
return 0
covs = [open(f, "r").readlines() for f in files]
result = []
branch_number = 0
for i, line in enumerate(covs[0]):
if ('end_of_record' in line):
result.append(line)
else:
tmp = line.split(':')
tag = tmp[0]
data = tmp[1]
if (tag == 'BRDA'):
c = data.split(',')[-1]
if (c == '1\n'):
branch_number += 1
result.append(line)
else:
flag = 0
for j in covs[1:]:
if j[i].split(',')[-1] == '1\n':
branch_number += 1
result.append(j[i])
flag = 1
break
if flag == 0:
result.append(line)
elif (tag == 'BRH'):
result.append(tag + ":" + str(branch_number)+'\n')
else:
result.append(line)
return resulthttps://stackoverflow.com/questions/68321640
复制相似问题