6

是否可以使用 gcov 对多线程应用程序进行覆盖测试?

我已经对我们的代码库进行了一些简单的测试,但是如果对我们正在实现的覆盖范围有所了解会很好。如果 gcov 不合适,任何人都可以推荐一个替代工具(可能的 oprofile),最好有一些很好的入门文档。

4

3 回答 3

8

我们当然已经使用 gcov 来获取关于我们的多线程应用程序的覆盖率信息。

您想使用 gcc 4.3 进行编译,它可以覆盖动态代码。

您使用-fprofile-arcs -ftest-coverage选项进行编译,代码将生成 gcov 可以处理的 .gcda 文件。

我们对我们的产品进行单独构建,并收集覆盖范围,运行单元测试和回归测试。

最后我们使用 lcov 来生成 HTML 结果页面。

于 2008-09-01T19:19:56.383 回答
1

Gcov 适用于多线程应用程序。仪器架构已正确序列化,因此您将获得保真度良好的覆盖数据。

我建议将 gcov 与lcov结合使用。这将为您提供从完整项目到单个源文件的出色报告。

lcov 还为您提供了一个很好的颜色编码的 HTML 版本的源代码,因此您可以快速评估您的覆盖失误。

于 2009-06-16T11:50:26.073 回答
0

我没有将 gcov 用于多线程覆盖工作。但是,在 MacOS 上,Apple 的 Shark 工具可以处理多个线程。它主要是一个分析器,但也可以提供覆盖信息。

http://developer.apple.com/tools/sharkoptimize.html

于 2008-09-01T19:27:28.737 回答