基于c声源的覆盖:显示无覆盖的文件

问题描述 投票:1回答:1

我正在使用基于clang的基于代码的coverage工具(即-fprofile-instr-generate-fcoverage-mapping)标志来构建一个lib。现在,我正在设置测试和覆盖率报告。

例如,假设我有包含的libfoo

file1.cpp
file2.cpp
file3.cpp

这使用上面的标志进行编译,现在我编写一个测试应用程序testFoo,它链接到libFoo并执行file1.cppfile2.cpp中的代码,但不执行file3.cpp中的代码。当我运行testFoo并打印代码覆盖率llvm-cov report ...时,我只看到file1.cppfile2.cpp的报告。

如何获得报告以显示file3.cpp的覆盖率为零?

c++ code-coverage clang++
1个回答
0
投票

libFoo是静态库吗?如果是这样,当您将程序链接到libFoo.a时,需要在libFoo.a周围放置-Wl,--whole-archive-Wl,--no-whole-archive

否则,您仅将file1.o和file2.o放入最终输出的二进制文件中,并且覆盖率工具将不知道file3.o。

© www.soinside.com 2019 - 2024. All rights reserved.