是否可以从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"
}
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top