什么是最适合模板的C ++代码覆盖工具?

时间:2011-10-10 08:48:01

标签: c++ multithreading templates code-coverage gcov

我已经使用gcov来测试代码覆盖率,但是当涉及模板化的c ++代码时,它不能很好地工作。我广泛使用boost :: spirit,而gcov似乎只是忽略了模板化的精神代码。

此外,我想知道是否有覆盖工具来显示线程如何相互交互,精确定位可能的分支/竞争条件/实际执行的执行流程。

5 个答案:

答案 0 :(得分:2)

TestCocoon是一个很好的工具,比具有良好工具和报告功能的gcov更好。由于模板是编译时的野兽,我不确定你想要获得哪些覆盖信息?

我的两分钱

答案 1 :(得分:1)

我处理大型产品,并使用名为BullsEye的第三方应用进行覆盖测试。它创造了奇迹。

答案 2 :(得分:1)

我们的C++ Test Coverage工具提供了模板正文的测试覆盖率,或者至少是您为其指定的文件中定义的那些模板。

它不区分模板的实例化。

如果您有一个多线程应用程序,该工具将记录所有线程执行的分支,如果您将工具配置为使用可原子写入的标志(通常是CPU的自然字大小[32或64位] 。(如果你不这样做,你最终可能会在更新覆盖标志时遇到线程竞争,你可能会失去一点覆盖率。这不是该工具的缺陷;它是对工具的不同步访问的结果存储保存探针数据。)

对于比赛检测,OP需要找到比赛检测工具;测试覆盖率工具不会这样做。

答案 3 :(得分:1)

C++ Coverage Validator提供模板的覆盖率数据。

跟踪所有线程的代码覆盖率。

答案 4 :(得分:0)

Parasoft CPP测试是各种分析的好工具,包括代码覆盖和静态分析。这对于深入研究多线程也很有用。

http://www.parasoft.com/jsp/products/cpptest.jsp

以下是10个用于代码覆盖的良好开放式工具:

http://open-tube.com/10-code-coverage-tools-c-c/