c++ - 基于clang源的覆盖:显示没有覆盖的文件
问题描述
我正在使用 clang 的基于代码的覆盖率工具构建一个库,即带有-fprofile-instr-generate
and-fcoverage-mapping
标志。现在我正在设置测试和覆盖率报告。
例如,假设我有 libfoo 包含
file1.cpp
file2.cpp
file3.cpp
这使用上述标志编译,现在我编写了一个测试应用程序,testFoo
它链接libFoo
并练习来自 的代码file1.cpp
,file2.cpp
但没有来自file3.cpp
. 当我运行testFoo
并打印代码覆盖率时llvm-cov report ...
,我只看到file1.cpp
和的报告file2.cpp
。
如何让报告显示file3.cpp
覆盖率为零?
解决方案
libFoo 是静态库吗?如果是这样,当您将程序链接到它时,您需要在 libFoo.a 周围放置-Wl,--whole-archive
和放置。-Wl,--no-whole-archive
否则,您只需将 file1.o 和 file2.o 放入最终输出的二进制文件中,覆盖工具将不知道 file3.o。
推荐阅读
- ffmpeg - 为什么 ffmpeg 在接收 MPEG TS 格式的流时显示损坏的视频?
- php - REST服务中Solr PHP客户端配置管理的有效方法
- google-cloud-platform - 视频智能错误:gs://samplevideo.mp4 无法解析为 CSV
- java - 为什么 if (arg0.length > 0 && arg0[0].equals("exitcode"))?
- php - 无法在 for 循环中为 ImageMagick 运行 PHP exec 命令
- javascript - 在没有 ID 和类的 jquery/Javascript 中包含文件
- java - 通过启用 Google 登录,我收到此错误 com.google.android.gms.common.api.ApiException: 10:
- firebase - TypeError:无法读取未定义的属性“本机”
- mysql - 请帮助识别我在 mysql 查询中的错误
- nativescript - Nativescript Camera Plus photoCapturedEvent 未调用且图像未保存到库 nativescript+vue