目前,我们使用gcov与我们的测试对Linux C++应用和不良好的工作,在测量线的复盖范围。

可以gcov生产功能/方法的复盖率报告外线复盖范围吗?

看着参数gcov接受我不认为这是可能的,但是我可能丢失的东西。或者,也许,是否有任何其他工具,可以产生功能/方法的复盖范围的报告的统计数据产生的海湾合作委员会?

更新: 按功能划/方法的复盖我的意思是百分比的功能得到执行过测试。

有帮助吗?

解决方案

我猜你的意思是-f选项,它会给你每个功能覆盖行的百分比。有一个在博士关于gcov的一篇有趣的文章多布的这可能是有益的。如果“人的gcov”不显示-f标志,检查是否有reasobably最近的gcc套件的版本。

编辑:以获得不执行,你可以简单的通过功能覆盖输出解析函数的百分比,0.00%的覆盖率应该是几乎等同于不叫。这个小脚本打印的功能不被执行的百分比:

#!/bin/bash

if test -z "$1"
then
    echo "First argument must be function coverage file"
else
    notExecuted=`cat $1 | grep "^0.00%" | wc -l`
    executed=`cat $1 | grep -v "^0.00%" | wc -l`

    percentage=$(echo "scale=2; $notExecuted / ($notExecuted + $executed) * 100" |bc)

    echo $percentage
fi

其他提示

我们已经开始使用的gcov和 LCOV 在一起。从LCOV这样做的结果包括了为“模块”你在看执行的函数的百分比。

编辑:模块的可从目录再往文件。

我也想补充一点,如果你已经使用GNU编译器工具,然后对gcov / LCOV不会太为难你得到运行,它产生的效果是非常可观的。

该lcov效用是很好的,我们使用它。但我不知道如果你需要为你想要什么。

我们

  1. 使用ctags(维基百科; sourceforge)找到的所有功能宣布在有关标题的文件。

  2. 运行GCOV得到线复盖面中的每个函数的二进制的。

  3. 列表进行比较的职能从1和2生产"的功能称为"/"功能"。

我们叫它"API复盖"由于我们申请的第1步仅给公共API头。但是你可以做到在所有标题或者只有一个子集,作为你选择。我觉得比我们产生以这种方式是比你正在寻找。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top