首页 > 解决方案 > 如何测量 C++ 中执行部分的代码覆盖率

问题描述

我有两个 C++ 二进制文件(A 和 B),两个二进制文件之间有套接字连接。
二进制 A 正在监听 B。并且,B 连接到 A。

A 接受 B 的消息并根据消息内容执行一些功能。
我们创建了一种单元测试来测试各种消息类型。

从这些测试中,我想从我们的测试消息中测量 A 的执行行。
我搜索了测量代码覆盖率的工具,发现lcov.

然而,lcov 测量了总执行的代码行数,包括初始化和其他无用的块。
我可能会创建一个新代码来测试没有套接字连接的功能。
但是代码结构复杂,所以实现测试需要很长时间。

所以,我想跳过这些行lcov以获得由我们的测试消息引起的纯粹执行的行

如果不可能并且有更好的工具来解决这种情况,请推荐合适的工具来衡量。

谢谢。

标签: c++code-coveragegcovlcov

解决方案


在测试用例之前调用__gcov_reset以丢弃从初始化收集的数据。


推荐阅读