使用gcov,是否可以合并到.gcda文件?

Joe*_*Joe 10 gcc code-coverage gcov lcov

我有相同的源文件(C和Obj-C)被编译成两个目标:单元测试可执行文件和实际产品(然后进行集成测试).这两个目标构建在不同的位置,因此目标文件.gcno和.gcda文件是分开的.并非所有源文件都编译到单元测试中,因此并非所有对象都存在.所有源文件都编译到产品构建中.

有没有办法将两组.gcda文件组合起来,以获得单元测试和集成测试的总覆盖率(因为它们在产品构建中运行)?

我正在使用lcov.

Mac OS X 10.6,GCC 4.0

谢谢!

paf*_*de2 9

最后我设法通过lcov解决了我的问题.

基本上我所做的是以下内容:

  • 使用标志编译应用程序 -fprofile-arcs -ftest-coverage --coverage
  • 将应用程序的副本分发给每个节点.
  • 并行执行每个节点中的应用程序.(此步骤生成访问主机中的应用程序目录中的覆盖信息)
  • 让lcov做他的工作:
    • lcov --directory src/ --capture --output-file coverage_reports/app.info
  • 生成html输出:
    • genhtml -o coverage_reports/ coverage_reports/app.info

我希望这可以对某人有所帮助.


phi*_*ant 6

由于您使用的是lcov,因此您应该能够将gcov .gcda文件转换为lcov文件并将它们与lcov合并--add-tracefile.

从联机帮助页:添加tracefile的内容.使用-a开关指定多个跟踪文件,通过添加用于匹配测试和文件名组合的执行计数来组合这些文件中包含的coverage数据.