题
是否可以从GCOV覆盖分析中排除某些功能或代码行。我的代码包含用于调试的某些功能,并且不作为我的测试套件的一部分行使。此类功能降低了GCOV报告的覆盖率。我想从结果中排除这些功能。如果通过GCOV不可能,也许可以通过LCOV,但我无法弄清楚。感谢您的帮助。
解决方案
我通过运行LCOV的输出来滤除某些源文件 - 通过简单的尴尬脚本捕获。 LCOV的输出 - 捕获的格式非常简单,下面的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"
}
不隶属于 StackOverflow