是否可以从gcov覆盖率分析中排除某些功能或代码行.我的代码包含用于调试的某些函数,并且不作为我的测试套件的一部分进行操作.这些功能降低了gcov报告的覆盖率.我想从结果中排除这些功能.如果通过gcov无法实现,也许可以通过lcov,但我无法弄明白.非常感谢您的帮助.
我通过一个简单的awk脚本运行lcov --capture的输出来过滤掉某些源文件.lcov --capture的输出格式非常简单,下面的awk脚本过滤掉与file_pattern匹配的源文件.我认为可以调整脚本以使其过滤函数而不是文件名.
BEGIN {
record=""
}
/^SF/ {
if ( match ($0, "file_pattern" ) ) {
doprint = 0
} else {
doprint = 1
}
}
/^end_of_record$/ {
if ( doprint ) {
print record $0
}
record = ""
next
}
{
record=record $0 "\n"
}
Run Code Online (Sandbox Code Playgroud)