clang 基于源的覆盖:显示没有覆盖的文件
clang source-based coverage: show files with no coverage
我正在使用 clang 的基于代码的覆盖检测工具构建一个库,即使用 -fprofile-instr-generate
和 -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 是静态库吗?如果是这样,当您 link 您的程序反对它时,您需要将 -Wl,--whole-archive
和 -Wl,--no-whole-archive
放在 libFoo.a 周围。
否则你只是将 file1.o 和 file2.o 放入最终输出的二进制文件中,覆盖工具将不知道 file3.o.
我正在使用 clang 的基于代码的覆盖检测工具构建一个库,即使用 -fprofile-instr-generate
和 -fcoverage-mapping
标志。现在我正在设置测试和覆盖率报告。
例如,假设我有包含
的 libfoofile1.cpp
file2.cpp
file3.cpp
这用上面的标志编译,现在我写了一个测试应用程序,testFoo
,它链接到 libFoo
并练习来自 file1.cpp
和 file2.cpp
的代码,但没有来自 file3.cpp
。当我 运行 testFoo
并打印代码覆盖率 llvm-cov report ...
时,我只看到 file1.cpp
和 file2.cpp
.
如何让报告显示 file3.cpp
的覆盖率为零?
libFoo 是静态库吗?如果是这样,当您 link 您的程序反对它时,您需要将 -Wl,--whole-archive
和 -Wl,--no-whole-archive
放在 libFoo.a 周围。
否则你只是将 file1.o 和 file2.o 放入最终输出的二进制文件中,覆盖工具将不知道 file3.o.