- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想使用与系统默认设置不同的 gcc 来构建项目。因此我需要为 lcov 提供正确的 gcov-tool 版本。不幸的是,--gcov-tool
标志对我不起作用。即使是 lcov 应该默认的版本也不行。
样本运行:
############## extract test coverage ##############
g++-8 (Debian 8.3.0-6) 8.3.0
Copyright (C) 2018 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
gcov-tool-8 (Debian 8.3.0-6) 8.3.0
Copyright (C) 2018 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE.
+ echo 'will work!'
will work!
+ lcov --capture --directory /data/home/extcpp/repos/extcpp/libext-build/debug --output-file test_coverage.info
Capturing coverage data from /data/home/extcpp/repos/extcpp/libext-build/debug
Found gcov version: 8.3.0
Scanning /data/home/extcpp/repos/extcpp/libext-build/debug for .gcda files ...
Found 25 data files in /data/home/extcpp/repos/extcpp/libext-build/debug
Processing CMakeFiles/ext_shared.dir/src/logging.cpp.gcda
Processing external_libs/googletest/googletest/CMakeFiles/gtest.dir/src/gtest-all.cc.gcda
Processing tests/CMakeFiles/test_libext_shared.dir/logging.cpp.gcda
Processing tests/CMakeFiles/test_libext_shared.dir/gtest.cpp.gcda
Processing tests/CMakeFiles/test_libext.dir/util_cast.cpp.gcda
Processing tests/CMakeFiles/test_libext.dir/math.cpp.gcda
Processing tests/CMakeFiles/test_libext.dir/algorithm_knapsack.cpp.gcda
Processing tests/CMakeFiles/test_libext.dir/util_enum.cpp.gcda
Processing tests/CMakeFiles/test_libext.dir/util_serialization.cpp.gcda
Processing tests/CMakeFiles/test_libext.dir/util_lazy.cpp.gcda
Processing tests/CMakeFiles/test_libext.dir/util_encode.cpp.gcda
Processing tests/CMakeFiles/test_libext.dir/meta_is_one_of.cpp.gcda
Processing tests/CMakeFiles/test_libext.dir/util_endian.cpp.gcda
Processing tests/CMakeFiles/test_libext.dir/util_result.cpp.gcda
Processing tests/CMakeFiles/test_libext.dir/util_scoped_timer.cpp.gcda
Processing tests/CMakeFiles/test_libext.dir/util_except.cpp.gcda
Processing tests/CMakeFiles/test_libext.dir/util_string.cpp.gcda
Processing tests/CMakeFiles/test_libext.dir/algorithm_string_distances.cpp.gcda
Processing tests/CMakeFiles/test_libext.dir/util_any_printable.cpp.gcda
Processing tests/CMakeFiles/test_libext.dir/gtest.cpp.gcda
Processing tests/CMakeFiles/test_libext.dir/meta_if.cpp.gcda
Processing tests/CMakeFiles/test_libext.dir/util_basic.cpp.gcda
Processing tests/CMakeFiles/test_libext.dir/util_windows_strings.cpp.gcda
geninfo: WARNING: gcov did not create any files for /data/home/extcpp/repos/extcpp/libext-build/debug/tests/CMakeFiles/test_libext.dir/util_windows_strings.cpp.gcda!
Processing tests/CMakeFiles/test_libext.dir/algorithm_basic.cpp.gcda
Processing tests/CMakeFiles/test_libext.dir/meta_has_member.cpp.gcda
Finished .info-file creation
+ echo 'will fail!'
will fail!
++ type -p gcov-tool-8
+ lcov --capture --directory /data/home/extcpp/repos/extcpp/libext-build/debug --gcov-tool /usr/bin/gcov-tool-8 --output-file test_coverage.info
Capturing coverage data from /data/home/extcpp/repos/extcpp/libext-build/debug
Found gcov version: 8.3.0
Scanning /data/home/extcpp/repos/extcpp/libext-build/debug for .gcda files ...
Found 25 data files in /data/home/extcpp/repos/extcpp/libext-build/debug
Processing CMakeFiles/ext_shared.dir/src/logging.cpp.gcda
Usage: gcov-tool-8 [OPTION]... SUB_COMMAND [OPTION]...
Offline tool to handle gcda counts
-h, --help Print this help, then exit
-v, --version Print version number, then exit
merge [options] <dir1> <dir2> Merge coverage file contents
-o, --output <dir> Output directory
-v, --verbose Verbose mode
-w, --weight <w1,w2> Set weights (float point values)
rewrite [options] <dir> Rewrite coverage file contents
-n, --normalize <int64_t> Normalize the profile
-o, --output <dir> Output directory
-s, --scale <float or simple-frac> Scale the profile counters
-v, --verbose Verbose mode
overlap [options] <dir1> <dir2> Compute the overlap of two profiles
-f, --function Print function level info
-F, --fullname Print full filename
-h, --hotonly Only print info for hot objects/functions
-o, --object Print object level info
-t <float>, --hot_threshold <float> Set the threshold for hotness
-v, --verbose Verbose mode
For bug reporting instructions, please see:
<file:///usr/share/doc/gcc-8/README.Bugs>.
geninfo: ERROR: GCOV failed for /data/home/extcpp/repos/extcpp/libext-build/debug/CMakeFiles/ext_shared.dir/src/logging.cpp.gcda!
+ ferr 'failed to extract coverage'
+ echo 'failed to extract coverage'
failed to extract coverage
+ exit 1
最佳答案
我认为您混淆了 gcov-tool binary 和 gcov binary。
--lcov 的 gcov-tool 选项,需要 gcov 二进制而不是 gcov-tool 二进制
对于我的系统,gcov 二进制文件与 gcc 存在于同一文件夹中
哪个海合会
/usr/bin/gcc
哪个gcov
/usr/bin/gcov
哪个 gcov 工具
/usr/bin/gcov-tool
对我来说
lcov --capture --directory /home/user/mydir
相当于
lcov --capture --directory /home/user/mydir --gcov-tool /usr/bin/gcov
下面是不正确的(这就是你想要做的)
lcov --capture --directory /home/user/mydir --gcov-tool /usr/bin/gcov-tool
关于c++ - 如何使用带有 `--gcov-tool` 标志的 lcov?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58570285/
我正在使用 Ubuntu 12、g++ 和 lcov,后者安装了 apt-get install lcov . 我正在成功编译,并使用 genhtml 生成 html 报告.行覆盖信息看起来不错,但许
是否可以为单个存储库的前端和后端测试获取单独的覆盖率报告? 似乎一种可能的方法是将 lcov 报告连接成一个,然后发送到工作服,如所述 in this question . 但是,我想知道是否有办法查
我正在尝试使用 gcc 4.8.2 和 lcov 1.10 获取 html 覆盖率以进行测试。我确定我的源文件、对象和 gcov 文件位于同一位置,并且我正在从我运行编译器的目录中运行 lcov。 我
我的工作环境 赛格温 lcov 1.13 海湾合作委员会 5.4.0 问题是 html 中的覆盖率报告告诉我们析构函数中缺少分支,但析构函数是空的。我不知道为什么。任何人都可以帮助我吗?我也尝试使用
我使用 LCOV 作为我的代码覆盖率的图形方式来告诉我我测试了多少代码,但是它包括我不关心的代码文件夹并且它使我的覆盖率低于实际应该的覆盖率是。 有没有办法排除我可以忽略一堆我不关心的 cpp 文件的
我有一个包含静态成员变量的结构。据称此成员变量的析构函数中的一行从未执行过,这是由 lcov 报告的。这一行只应在程序终止时执行。所以我猜它只是 lcov 无法计算它。 Valgrind 可以显示该行
我正在使用 lcov 和 genhtml 生成代码覆盖率报告。使用以下目录结构,我能够获得位于 tests/目录中的源文件的代码覆盖率,但无法获得我的 src/目录中的 my_file.c 文件的代码
我尝试创建覆盖率报告。我用 清除所有并覆盖。 我安装了 Boost 和 lcov。但是,当我尝试 make coverage 时,它失败并显示以下错误消息: Processing components
我正在尝试使用 lcov(v1.13,在 OS X 上,使用 clang 作为编译器)为我的测试套件生成代码覆盖率,但我遇到了一个我不知道如何解决的恼人问题。 SO 上有几个类似的问题,但我找不到这个
这个函数的末尾有哪些分支。我该如何覆盖它们? 最佳答案 您正在观察 gcc 生成的用于销毁静态存储持续时间(全局)变量的代码。 您的覆盖显示函数 foo 已被输入 3 次,但是范围末尾附近的计数器显示
我使用 lcov 在我的项目中创建覆盖率信息。但是我只能得到行覆盖和函数覆盖统计信息。 lcov version:1.10, gcov version:4.4.5 我使用的命令是: lcov -d
我该如何制作 lcov和 genhtml显示未链接/加载的文件?我用它来显示测试覆盖率,我希望看到每个源文件都出现在 HTML 报告中,即使它的覆盖率为零。这样我就可以使用 lcov 来识别缺少测试的
我遇到了 SonarQube 实例的问题。我们正在从 istanbul 打印出 lcov 信息,但是 sonarqube 找不到 lcov 信息来生成代码覆盖率。 project.properties
我开始使用 lcov大约一个月后。覆盖计数似乎不一致。第一次运行报告了大约 75% 的线路覆盖率,而第二次运行仅报告了 19%。两次运行都使用了一些测试套件。我在 lcov --remove 期间看到
什么可能导致此类错误?我目前正在使用 lcov 和 Cygwin,并且在使用 gcc 或任何其他 Linux 命令时访问/读取/写入指定路径时没有遇到任何问题。 只是为了展示我的确切过程......
我不太擅长使用 lcov 和 shell 脚本,所以这对我来说是一个学习过程。我了解制作代码覆盖率报告的基础知识,但我不知道排除某些目录的代码行。在 shell 可执行文件中,我编写了以下代码:
我有行 lcov -c -i -d 。 -o cov_init.info 从目录的零初始点捕获覆盖率数据,但我希望它忽略一些目录。我正在考虑使用条件语句,但我是使用 linux 的新手,不确定如何编写
我试图删除我的测试驱动程序文件“test.c”中的覆盖率数据。以下是我在阅读 SO 中的一些类似问题后使用的内容。 $ lcov --remove test.gcda -c -d . -o a.inf
10 [ + - ][ + - ] : 2 : Conf::~Conf() {} 11 : : 12
我的代码中有一些日志记录宏: #define LOG_MSG (pri, msg, ... ) \ if (pri > PriorityLevel ) \ printf( ms
我是一名优秀的程序员,十分优秀!