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

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

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


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

我的两分钱


我在一个大型产品上工作,我们使用名为BullsEye的第三方应用进行覆盖测试。 它创造了奇迹。


我们的C ++测试覆盖工具提供了对模板主体的测试覆盖范围,或者至少是那些在您指定的文件中定义的模板。

它不区分模板的实例。

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

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

链接地址: http://www.djcxy.com/p/37965.html

上一篇: What's the best C++ code coverage tool that works with templates?

下一篇: Android Tablet Landscape and Portrait Modes