Kan*_*nak 9 code-coverage gcov
我有一个应用程序的几个单元测试,每个单元测试都能够生成.gcda文件.我希望能够生成统一的.gcda文件,这些文件代表了整个测试套件的覆盖范围.似乎没有一种简单的方法可以做到这一点,但我可能是错的,这就是我要问的原因.
使用gcov,是否可以合并到.gcda文件?之前被问到,解决方案是转换为lcov .info文件并以这种方式合并.如果可能的话,我希望合并操作的输出仍然是单个.gcda文件,这样我就不会被迫使用lcov.
有合并.gcda
文件的代码,但不幸的是它被隐藏在libgcov.a
作为 gcc 的一部分构建的代码中。如果您退出(或以任何方式调用__gcov_flush()
)使用覆盖率编译的程序,它实际上会检测预先存在的.gcda
文件,加载它们,将它们的数据与正在运行的程序的数据聚合,然后将其保存回来。我不知道有任何工具可以在命令行提供该功能。即使libgcov.a
您可能没有有用的钩子来执行您想要的操作,并且必须从 gcc-core 发行版中获取源代码并对其进行修改。
我过去所做的只是将所有数据提取到带注释的源(.gcov
)并在该级别进行聚合。该.gcda
格式能够存储比行覆盖信息(例如分支计数)更多的信息,并且libgcov.a
聚合知道如何组合这些信息(对于某些信息来说,它并不像求和那么简单)。
归档时间: |
|
查看次数: |
5487 次 |
最近记录: |