C ++整个代码库覆盖w / gcov

时间:2014-01-25 02:13:12

标签: c++ unit-testing gcc gcov lcov

我们有大量的C / C ++代码,这些代码是针对嵌入式Linux目标进行交叉编译的。我们最近开始实现在我们的开发服务器(也是Linux)上运行的单元测试(使用gmock / gtest)。当检测到签到时,我们会自动执行单元测试(我们正在使用Bamboo)。

我们正在使用gcov和lcov来分析&在单元测试期间报告代码覆盖率,这已经相当不错。但是,鉴于我们没有开始单元测试,我们的代码库的很大一部分不在单元测试中。除了“单元测试的那些文件的单元测试覆盖率是多少”之外,一个有趣的指标是“单元测试覆盖了我们整个代码库的多少”,其中包括那些当前未进行单元测试的文件。使用gcov,你需要实际编译&链接给定的源文件,然后执行生成的程序以获取该文件的可能覆盖数据。

为了开发这个“代码库”覆盖率指标,我编写了一些Python脚本来利用MSquared的RSM(我们已经在我们的开发服务器上使用它)来评估代码,然后将该数据与返回的覆盖数据配对。 gcov的。它运行得相当不错,但是在比较RSM和gcov评估的文件的语句和分支之类的标签时,存在足够大的差异,我觉得这不是最终的解决方案。

以下是我的问题:

  1. 是否有其他人试图沿着这些方向做某事?
  2. 有更好的方法吗?
  3. 那里有没有任何工具(最好是免费/开源) 与gcov类似地评估代码,可用于执行此操作 静态覆盖率分析?
  4. 谢谢。

0 个答案:

没有答案