LCOV 使用文档

单元测试环境gtest,mockcpp,LCOV搭建与使用 单元测试环境gtest,mockcpp,LCOV搭建与使用 1. 环境介绍 本文搭建单元测试环境用上的软件工具有: 1.1 gtest gtest是一个跨平台的(Liunx、Mac OS X、Windows、Cygwin、Windows CE and Symbian)C++单元测试框架,由google公司发布。gtest是为在不同平台上为编写C++测试而生成的。它提供了丰富的断言、致命和非致命判断、参数化、”死亡测试”等等。 1.2 mockcpp Mockcpp是一个面向C/C++的mock框架。其指定( 阅读详情

LCOV 使用文档

摘要

LCOV 是一个用于操作和显示程序在运行特定测试用例或测试用例集时哪些部分被执行(即“覆盖”)的工具。LCOV 由一组 Perl 脚本组成,这些脚本基于各种覆盖率工具(例如 gcov、llvm-cov、Coverage.py、Cobertura、Devel::Cover、Jacoco 等)的文本输出,实现了以下增强功能:

  • HTML 输出:使用条形图和特定颜色在超链接的覆盖率报告中指示覆盖率,旨在使用户能够快速诊断和解决覆盖率问题。
  • 支持大型项目:概览页面允许通过提供分层目录结构视图、项目中所有源文件的平面列表或三级详细视图(目录、文件和源代码视图)快速浏览覆盖率数据。
  • 支持多种语言:包括 C/C++、Perl 和 Python。

LCOV 最初是为支持 Linux 内核覆盖率测量而设计的,但也适用于标准用户空间应用程序的覆盖率测量。

LCOV 支持差异覆盖率,以及日期和所有者分箱。有关概念和几种可能使用模型的详细解释,请参阅:

基本思想的视频演示可以在以下网址找到:

此外,还提供了其他一些功能和能力。有关简要说明,请参阅下面的第 6 节,也可以参阅手册页和测试用例。

目录

  1. 包含的文件
  2. 安装 LCOV
  3. 依赖项
  4. 访问 Linux 内核覆盖率数据的示例
  5. 访问用户空间程序覆盖率数据的示例
  6. LCOV 功能
  7. 问题和评论
  8. 提交新问题

1. 重要文件

  • README:本 README 文件
  • CHANGES:各版本之间的更改列表
  • bin/lcov:用于捕获 LCOV 覆盖率数据的工具
  • bin/genhtml:用于从 LCOV 数据创建 HTML 输出的工具
  • bin/gendesc:用于创建 genhtml 使用的描述文件的工具
  • bin/perl2lcov:用于将 Perl Devel::Cover 数据转换为 lcov 格式的工具
  • bin/llvm2lcov:用于将 LLVM ‘llvm-cov’ JSON 数据转换为 LCOV 格式的工具
  • bin/py2lcov:用于将 Python Coverage.py 数据转换为 lcov 格式的工具
  • bin/xml2lcov:用于将类似 Cobertura 的 XML 覆盖率数据转换为 lcov 格式的工具
  • bin/geninfo:内部工具(创建 LCOV 数据文件)
  • bin/genpng:内部工具(创建源文件的 png 概览)
  • lcovrc:LCOV 配置文件
  • man:包含所包含工具的手册页的目录
  • example:包含演示 LCOV 的示例的目录
  • tests:包含 LCOV 回归测试的目录
  • Makefile:提供 ‘install’ 和 ‘uninstall’ 目标的 Makefile

2. 安装 LCOV

LCOV 包可以从以下网址以 RPM 或 tarball 的形式获得:

要安装 tarball,请将其解压到目录中并运行:

make install

使用 Git 获取最新(但可能不稳定)版本:

git clone https://github.com/linux-test-project/lcov.git

切换到生成的 lcov 目录并输入:

make install

默认安装位置是 /usr/local。请注意,您可能需要具有超级用户权限才能写入系统目录。

要安装在不同位置(例如,您的主目录),请运行:

make PREFIX=$HOME/my_lcov install

您的 PREFIX 应该是绝对路径。

要运行 LCOV 回归测试套件以测试您的安装:

$ cp -r $LCOV_HOME/share/test path/to/myTestDir
$ cd path/to/myTestDir
$ make [COVERAGE=1]

如果需要,您可以通过设置 COVERAGE makefile 变量来收集 LCOV 模块的覆盖率数据。
请注意,如果启用了 COVERAGE 或者您想要使用 perl2lcov 工具,则必须安装 Devel::Cover 包。
要查看收集的覆盖率信息,请在运行测试后将浏览器指向 …/lcov_coverage/index.html。

请注意,测试用例主要是为了测试 LCOV 功能,并不是易于阅读的教程示例。

3. 依赖项

LCOV 模块主要用 Perl 实现,需要一个相对最新的 Perl 安装和多个 Perl 包。

这些 Perl 包包括:

  • Capture::Tiny
  • DateTime
  • Devel::Cover
  • Digest::MD5
  • File::Spec
  • 至少一种 JSON 模块。按性能/偏好的顺序:
    • JSON::XS
    • Cpanel::JSON::XS
    • JSON::PP
    • JSON
  • Memory::Process
  • Module::Load::Conditional
  • Scalar::Util
  • Time::HiRes
  • TimeDate

如果您的系统缺少其中任何一个,您可以通过以下方式安装它们:

$ perl -MCPAN -e 'install(<packageName>)'

您很可能需要超级用户权限才能安装 Perl 模块。

LCOV 模块提供的一些应用程序是用 Python 编写的,可能需要额外的 Python 包。
特别是,要生成任何电子表格报告,需要 ‘xlsxwriter’。

要测量 Python 代码覆盖率,用户需要 Python 包:

  • Coverage.py

此外,贡献者还需要:

  • perltidy

您的平台可能支持其他机制来安装和/或更新所需的包。

4. 访问 Linux 内核覆盖率数据的示例

要求:请按照 Linux 内核覆盖率设置说明操作:

作为 root 用户,请执行以下操作:
a) 重置计数器

lcov --zerocounters

b) 将当前覆盖率状态捕获到文件中

lcov --capture --output-file kernel.info

c) 获取 HTML 输出

genhtml kernel.info

将您选择的网页浏览器指向生成的 index.html 文件。

5. 访问用户空间程序覆盖率数据的示例

a) 将当前覆盖率状态捕获到文件中:

i) C/C++ 代码:
使用 GCC 或 LLVM 的 ‘–coverage’ 选项编译您的程序。在链接期间,确保指定 ‘–coverage’:

$ gcc -o myTest --coverage simple.c
  或
$ gcc -c file1.c file2.c ... --coverage
$ gcc -o myOtherTest --coverage file1.o file2.o ....

或者,LLVM 用户可以使用 ‘profdata path’(而不是 ‘gcov path’)来收集 C/C++ 代码的覆盖率数据。有关详细信息,请参阅:

运行您的测试用例至少一次:

$ path/to/my/testcase/myTest

将当前覆盖率状态捕获到文件中:

$ lcov --directory path/to/my/testcase --capture --output-file app.info

(使用 ‘profdata path’ 的 LLVM 用户在此步骤将使用略有不同的命令 - 请参阅上述讨论。)

如果您想要收集修改条件/决策覆盖率(MD/DC)数据,那么:

  • 您必须使用 gcc/14.2(或更新版本),或 LLVM/18(或更新版本)
  • 您的 GCC 编译和链接命令行必须包含标志 ‘-fcondition-coverage’。
  • LLVM 用户必须使用 ‘profdata path’ 来收集覆盖率数据,您的编译命令行必须包含 ‘-fprofile-inst-generate -fcoverage-mapping -fcoverage-mcdc’。请参阅上述讨论以获取详细信息。
  • 您的 lcov 和 genhtml 命令行必须包含标志 ‘–mcdc-coverage’
    请参阅 genhtml 和 geninfo 手册页中的 ‘–mcdc-coverage’ 部分。

请注意,运行时覆盖率数据仅在应用程序启动并停止至少一次后存在。否则,将找不到数据,lcov 将会因提到没有 data/.gcda 文件而中止。

覆盖率运行时在 atexit 回调中发出数据(.gcda 文件)。如果您的应用程序在回调执行之前异常退出或崩溃,则不会提供覆盖率数据。

有关 gcc 个人资料机制的详细信息,请参阅 gcov 手册页。

有关详细信息,请参阅 ‘man lcov’ - 尤其是如果您的构建/测试环境不简单的话。

ii) Python 代码:

  • 安装 Coverage.py 模块
  • 执行您的测试用例以生成 python 覆盖率数据:
$ COVERAGE_FILE=./pycov.dat coverage run --append --branch \
    myPythonScript [my script args]
  • 将 Python 覆盖率数据转换为 LCOV 格式:
$ py2lcov -o pycov.info [py2lcov_options] pycov.dat [x.dat]+

有关详细信息,请参阅 ‘py2lcov --help’ 和 Coverage.py 文档。

iii) Perl 代码:

  • 安装 Devel::Cover 模块
  • 执行您的测试用例以生成 perl 覆盖率数据:
$ perl -MDevel::Cover=-db,perlcov_db,-coverage,statement,branch,condition,subroutine,-silent,1 myPerlTest.pl [my script args]
  • 将 Perl 覆盖率数据转换为 LCOV 格式:
$ perl2lcov --output perlcov.info perlcov_db [perl2lcov options]

有关详细信息,请参阅 ‘perl2lcov --help’ 和 Devel::Cover 文档。

iv) XML 数据(例如,由 Cobertura 生成):

  • 将 XM 覆盖率数据转换为 LCOV 格式:
$ xml2lcov --output myData.info coverage.xml [xml2lcov options]

有关详细信息,请参阅 ‘xml2lcov --help’ 和 Cobertura 文档。

b) 生成 HTML 覆盖率报告:
生成 HTML 报告,合并所有 LCOV 数据文件:

$ genhtml -o html_report app.info pycov.info perlcov.info

将您选择的网页浏览器指向生成的文件:

html_report/index.html

有关详细信息,请参阅 ‘man genhtml’。

c) 生成差异覆盖率报告:
请参阅 …/example(运行 “make test_differential”)以及 …/tests/gendiffcov 中的示例。

6. LCOV 功能

LCOV 的功能和能力分为 7 个主要类别:

a) 分类
这主要涉及差异覆盖率分类以及日期和所有者分箱。有关概念的详细描述,请参阅:

差异分类和分箱是正交的,这意味着您可以生成差异报告而不进行分箱,也可以生成带有分箱的“普通”覆盖率报告。有关详细信息,请参阅上述论文和 genhtml 手册页。

相关选项:
–baseline-file, --diff-file, --annotate-script, --select-script, --date-bins, --date-labels, --new-file-as-baseline, --elide-path-mismatch

b) 错误处理
lcov 工具套件中添加了一个通用但非常简单的错误处理程序。错误处理程序用于报告异常,并为用户提供一个忽略特定消息的机制。请注意,忽略某些错误可能会导致后续错误和/或导致不一致或令人困惑的覆盖率报告。
有关详细信息,请参阅 genhtml/lcov/geninfo 手册页。

请注意,某些错误是不可恢复的 - 不能被抑制或忽略。

相关选项:
–ignore-error, --expect-message-count, --keep-going, --msg-log

c) 导航和显示
已实现诸如指向第一个未覆盖区域的超链接、指向下一个未覆盖区域的超链接等导航辅助功能。同样,新表格、新列以及表格之间的新链接使用户能够识别特定代码的作者(已覆盖或未覆盖),以及代码编写的时间。

这些功能共同帮助用户快速识别代码覆盖率问题的原因,然后决定如何处理。

还可以生成遵循源代码目录结构的“分层”覆盖率报告或“平面”报告(所有文件位于两级报告的顶层),以及各种其他小功能(工具提示弹出窗口、用户指定的 HTML 标题、页脚和表格标签等)。

有关详细信息,请参阅 genhtml 手册页,以及 ‘gendiffcov/simple’ 测试用例中的示例。

相关选项:
–baseline-title, --baseline-date, --current-date, --flat, --hierarchical, --show-owners, --show-noncode, --show-navigation, --show-proportion, --suppress-aliases

d) 数据操作
过滤器用于抑制或删除某些覆盖率伪影 - 例如,编译器生成的分支(例如,用于异常处理)。这些伪影可能会淹没用户代码并掩盖用户感兴趣的覆盖率特征。

其他选项用于关注或排除代码的某些部分,以及进行文件名的正则表达式替换 - 可能使用不区分大小写的比较。(当构建结构与您的修订控制系统中的布局不完全匹配时,路径处理特别有用;这在具有可重用组件的大型项目中很常见。)

在捕获覆盖率数据时,可以使用 --build-directory 选项指定搜索路径,以找到与特定 .gcda(运行时覆盖率数据)文件对应的 .gcno(编译时覆盖率数据)文件。同样,可以使用 --source-directory 选项指定源文件的搜索路径。

有关可用过滤器和操作功能的详细描述,请参阅 lcov/geninfo/genhtml 手册页。

相关选项:
–include, --exclude, --erase-functions, --omit-lines, --substitute, --filter, --build-directory, --source-directory

e) 回调/自定义
用户可以提供回调,用于:
i) 与修订控制系统接口
示例脚本:

  • Perforce:请参阅 ‘p4diff’、‘p4annotate.pm’、‘p4annotate’
  • Git:请参阅 ‘gitdiff’、‘gitblame.pm’、‘gitblame’

ii) 验证源代码版本是否兼容,并
示例脚本:请参阅 ‘get_signature’、‘P4version.pm’、‘getp4version’、‘gitversion’、‘gitversion.pm’ 和 ‘batchGitVersion.pm’

iii) 强制执行所需的代码覆盖率标准
示例脚本:criteria.pm/criteria

iv) 在更复杂的环境中查找源文件 - 在这些环境中,简单的替换变得复杂或笨拙。

v) 选择要显示的覆盖率数据的子集 - 例如,用于仅关注由特定提交或提交范围引起的更改的代码审查,或用于审查特定版本中的更改。
示例脚本:select.pm

vi) 跟踪环境和其他设置 - 以帮助复杂使用案例中的基础设施调试。

回调可以是任何所需的脚本或可执行文件 - 但如果将其编写为 Perl 模块,则可能会有性能优势。

有关详细信息,请参阅 genhtml/lcov/geninfo 手册页。

请注意,各种示例脚本位于源代码的 ‘scripts’ 目录中,但在发布版的 $LCOV_HOME/share/lcov/support-scripts 目录中安装。

相关选项:
–annotate-script, --criteria-script, --version-script, --resolve-script, --select-script, --context-script

f) 性能
lcov/genhtml/geninfo 已重构为在请求时跨多个内核并行计算。通常,这提供了几乎与内核数量成线性的加速。
还有一个选项可以限制并行性以不超过峰值内存消耗限制,以及启用简单的配置文件数据收集的选项 - 这样您可以看到时间花在哪里,从而提示潜在的优化。‘spreadsheet.py’ 脚本可用于查看生成的配置文件数据。

有几个配置文件选项可用于调整某些并行化参数,以优化您的环境的性能,在默认行为不理想的情况下。有关详细信息,请参阅 lcovrc 手册页。

有关详细信息,请参阅 genhtml/lcov/geninfo 手册页。

相关选项:–parallel, --memory, --profile

g) 语言/工具支持
添加了 ‘llvm2lcov’、‘py2lcov’、‘perl2lcov’ 和 ‘xml2lcov’ 脚本。

  • llvm2lcov:
    将 ‘llvm-cov export -format=text …’ 生成的 JSON 覆盖率数据转换为 lcov 格式。
    有关如何使用转换器的简要说明,请参阅 “llvm2lcov --help”。请注意,llvm2lcov 使用的命令行和配置文件选项与 lcov、genhtml 和 geninfo 类似。

  • py2lcov:
    将 python Coverage.py XML 数据转换为 lcov 格式。
    有关详细信息,请参阅 Coverage.py 文档 ,以及 “…/py2lcov --help”。

  • perl2lcov:
    将 Perl Devel::Cover 数据转换为 lcov 格式。
    有关如何为 Perl 代码生成覆盖率数据,请参阅 Devel::Cover 文档。
    有关如何使用转换器的简要说明,请参阅 “perl2lcov --help”。请注意,perl2lcov 使用的命令行和配置文件选项与 lcov、genhtml 和 geninfo 类似。

  • xml2lcov:
    将 XML 覆盖率数据转换为 lcov 格式。XML 数据可能来自 Cobertura 或类似工具。
    有关如何使用转换器的简要说明,请参阅 “xml2lcov --help”。有关如何生成 XML 数据,请参阅 Cobertura 文档。

可以使用类似的方法集成其他语言。

通常,lcov、genhtml 和 geninfo 中统一实现了新功能和选项。大多数功能可以通过命令行选项或在 ‘lcovrc’ 文件中设置默认值来启用/禁用。有关详细信息,请参阅 lcovrc 手册页。

7. 问题和评论

有关如何使用 LCOV 工具的详细信息,请参阅所包含的手册页。

如有其他问题,请随时在 LCOV 代码库的 issue tracker 上提交新问题或讨论:

8. 提交新问题

在提交新问题之前 - 如果您使用的是 LCOV 发行版(而不是 github 仓库的克隆版) - 请验证该问题是否仍然存在于 LCOV master 版本中。有关如何克隆和安装最新 LCOV 版本的说明,请参阅上面的第 2 节。

如果可能,请在提交问题时包含一个演示问题的测试用例。
请描述您的环境(平台、编译器、perl 和 python 版本等)。请包含对该问题的详细描述:您的目标是什么(您的目标 - 而不是您的操作步骤),您的操作步骤(您的操作步骤),您希望看到的结果与实际发生的结果。
根据问题的不同,您的测试用例可能需要包含源代码和编译/链接命令行、如何运行示例的说明、用于捕获和生成 LCOV 报告的命令行等。
在其他情况下,捕获的 ‘.info’ 文件可能足以重现问题。
如有疑问:多提供信息总比少提供好。

如果您无法包含测试用例 - 例如,因为您认为它是敏感或专有的 - 那么您的详细描述就更加重要。
请注意,如果没有示例,可能很难或无法诊断或解决问题。

请记住,您是在请求志愿者的帮助。您的优先级可能不是他们的优先级。文明、体贴和礼貌非常重要。

请回来看看并验证问题已解决后关闭问题。
再次提醒:您是在请求志愿者的帮助。请确保您尽到了自己的责任。

lcov使用文档 1.安装到usr/local下 git clone https://github.com/linux-test-project/lcov.git cd lcov sudo make install 直接在主目录make。 2. 简易使用 2.1 在待测试覆盖率的项目CmakeLists.txt链接lcov: 添加 set(CMAKE_CXX_FLAGS "-g -O0 -Wall -fprofile-arcs -ftest-coverage") 或 set(CMAKE 阅读详情

相关推荐

Altium Designer操作技巧(1)——原理图中如何批量替换元器件?

《AltiumDesigner批量替换元器件技巧分享》摘要:本文介绍了两种在AltiumDesigner中批量替换元器件的实用方法。方法一通过“查找相似对象”功能,可精准匹配并批量修改器件参数;方法二利用ActiveBOM功能,在BOM表中直观操作器件替换,推荐使用第二种方法可使BOM管理更高效。这些技巧能有效减少物料种类、降低贴装成本,特别适用于电阻电容等常用器件的批量替换。关注公众号获取更多电子设计技巧。

u012526819的博客 2582

代码覆盖率工具lcov

lcov工具使用

Erice_s的博客 1万+

基于Labview2012实现的双通道信号源(课程设计)

双通道信号源,产生8种波形,能进行调制,带信号幅度与频率扫描功能,波形可存储与导入

qq_40617082的博客 1461

【C++】单元测试覆盖率工具lcov的使用

这也是慕雪撰写本文的原因。希望这篇文章能对需要使用lcov工具却又苦于没有引导教程的老哥提供一丝丝帮助。

慕雪华年的博客 7235

Rust嵌入式开发环境搭建指南(基于Stm32+Vscode)

本文档旨在指导开发者如何搭建基于Rust语言的STM32嵌入式开发环境。相比传统的C/C++开发方式,Rust提供了更强的内存安全保障和现代化的语言特性,非常适合嵌入式系统开发。本指南将详细介绍从环境搭建到项目配置的全过程,特别关注VSCode作为IDE的配置以及STLink和DAPLink调试器的使用。

u014627020的博客 2601

Apollo MPC横纵向耦合控制学习笔记

Apollo MPC横纵向控制原理学习笔记

weixin_39199083的博客 1万+

6 lcov基本使用方法

摘要:本文介绍了使用GTest和LCOV进行C++测试覆盖率统计的轻量级方案。主要步骤包括:1)安装LCOV工具;2)编译测试代码时添加覆盖率参数(-fprofile-arcs -ftest-coverage)生成.gcno文件;3)运行测试生成.gcda文件;4)使用LCOV收集覆盖率数据并生成.info文件;5)通过genhtml生成HTML格式的覆盖率报告。最后可通过GTest的XML输出统计测试用例总数和通过数。该方法为C++项目提供了简单有效的覆盖率统计解决方案。

u012906122的专栏 3300

打通ZYNQ的任督二脉:AXI_FIFO数据交互全解析

FIFO(First In First Out,先进先出)是一种经典的数据缓冲结构,就像排队买票一样,先来的人先得到服务。时钟域交叉(CDC):连接不同时钟频率的模块数据缓冲:平衡生产者和消费者的速度差异流量控制:防止数据丢失或溢出input clk,// 输入AXI4-Stream接口(从PS到PL)// 输出AXI4-Stream接口(从PL到PS)// 状态指示信号// 定义状态机状态// 数据缓存// 8个深度的缓存// 流水线处理寄存器。

QQ_778132974的博客 306

使用gtest和lcov测试代码覆盖率

使用gtest和lcov测试代码覆盖率

lansebingxuan的专栏 5820

CANbus收发器TJA1051T/3/1J应用原理图设计

该收发器是为汽车工业中的高速CAN应用而设计的,为(一个带有)CAN协议控制器的微控制器)提供差分传输和接收能力。它提供了改进的电磁兼容性(EMC)和静电放电(ESD)性能,还具有:当电源电压关闭时,TJA1051T/3和TJA1051TK/3可以直接与电源电压从3V到5V的微控制器接口。这种实现能够在CAN FD快速阶段以高达5 Mbit/s的数据速率进行可靠的通信。TJA1051T/3和TJA1051TK/3上的VIO输入允许直接连接3 V至5 V微控制器(分别提供SO8和极小的HVSON8封装)

zhusl6688的博客 3597

DBeaver配置本地mysql-connector驱动文件

本文摘要:介绍了数据库驱动管理的基本操作步骤:1)新建驱动管理器,填写MySQL驱动名称、类名和类型;2)添加本地MySQL驱动文件;3)创建数据库连接并测试。适用于MySQL5.x和8.x版本,帮助用户快速配置数据库连接。

litlit023的专栏 1689

【亲测免费】 LCOV安装与使用指南

LCOV安装与使用指南 1. 项目目录结构及介绍 本教程基于从GitHub获取的lcov项目,尽管提供的链接可能指向了一个特定用户的fork(请注意,实际中应当直接从Linux Test Project获取最新稳定版或源码),但我们将基于一般LCOV的结构来说明其常规布局。 由于提供的链接并非官方LCOV仓库地址,且原引用内容未提供具体项目的目录结构细节,我们参考典型开源LCOV项目结构进行说明:...

gitblog_00445的博客 705

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

gcov、lcov与genhtml 使用心得

gcc是linux平台下的C、C++ 编译器 gcov是配合gcc产生覆盖信息报告的工具; lcov是将gcov产生的报告信息,以更直观的方式显示出来工具 基本的使用方法分为4个阶段: (一)、gcc编译:产生插装后的目标文件test、gcov结点文件 test.gcno    #gcc -fprofile-arcs -ftest-coverage -o test t

origin_lee的专栏 2695

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

gcov、lcov与genhtml

gcc是linux平台下的C、C++ 编译器 gcov是配合gcc产生覆盖信息报告的工具; lcov是将gcov产生的报告信息,以更直观的方式显示出来工具 基本的使用方法分为4个阶段: (一)、gcc编译:产生插装后的目标文件test、gcov结点文件 test.gcno    #gcc -fprofile-arcs -ftest-coverage -o test t

simple 1717

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

原创:gcov、lcov与genhtml 使用心得

http://blog.sina.com.cn/s/blog_7e4ac8b501018b27.html gcc是linux平台下的C、C++ 编译器 gcov是配合gcc产生覆盖信息报告的工具; lcov是将gcov产生的报告信息,以更直观的方式显示出来工具 基本的使用方法分为4个阶段: (一)、gcc编译:产生插装后的目标文件test、gcov结点文件 test.gcno

2170

lcov solution on linux

0. Make sure you have built\installed gcov\lcov\genhtml on your linux machine

Tony's Log 852

Lcov工具分支覆盖率统计不一致问题分析与修复

在软件测试领域,代码覆盖率是衡量测试完整性的重要指标之一。Lcov作为Linux Test Project下的一个覆盖率统计工具,被广泛应用于C/C++项目的覆盖率分析。近期发现Lcov在特定场景下存在分支覆盖率统计不一致的问题,本文将深入分析该问题及其解决方案。 ## 问题现象 当使用Lcov工具统计以下测试代码的分支覆盖率时,出现了前后统计结果不一致的情况: ```cpp #includ

gitblog_07648的博客 626

Ubuntu14.04 gtest+gcov+lcov/gcovr简单使用

单元测试 gtest、gcov、lcov/gcovr的简单使用介绍

vivisoul的专栏 1479

lcov覆盖率工具官方地址

http://ltp.sourceforge.net/coverage/lcov.php

weixin_42472034的博客 770

(转)gcov、lcov与genhtml 使用心得

gcc是linux平台下的C、C++ 编译器 gcov是配合gcc产生覆盖信息报告的工具; lcov是将gcov产生的报告信息,以更直观的方式显示出来工具 基本的使用方法分为4个阶段: (一)、gcc编译:产生插装后的目标文件test、gcov结点文件test.gcno #gcc -fprofile-arcs-ftest-coverage-o test test.c ...

weixin_30532369的博客 168

gcov、lcov生成代码覆盖率的过程

高大上的代码覆盖率图表生成过程 安装解析工具(此处以mac下安装lcov为例) brew install lcovgcc编译:产生插装后的目标文件test、gcov结点文件 test.gcno #gcc -fprofile-arcs -ftest-coverage -o test test.c # ls test test.c test.gcno 说明:参数 fpr

xiaokaige198747的专栏 1153

LCOV 使用指南

LCOV 使用指南 项目介绍 LCOV 是一个基于 Python 的图形前端工具,专门用于展示 GCC 覆盖测试工具 gcov 的结果。它扩展了 GCOV 的功能,提供了丰富的HTML报告,包括覆盖率条形图和彩色编码以直观显示代码覆盖情况。设计之初是为了支持Linux内核的覆盖率测量,但其实它同样适用于常规的用户空间应用程序的覆盖率分析。 该项目的这个特定分支或fork(https://githu...

gitblog_01159的博客 505

CANN/HCOMM CheckerL2单元测试脚本说明

`run_ut.sh` 是 CheckerL2 项目的单元测试执行脚本,用于自动化编译和执行测试用例。 ## 三步流程 脚本执行时自动完成以下三步: | 步骤 | 说明 | 日志输出 | |------|------|----------| | 第一步 | CMake 配置 + make 编译 | `build.log` | | 第二步 | 生成可执行文件 | 列出所有二进制及大小/时间 |

gitblog_00307的博客 778
上一篇: GoogleTest 使用文档
下一篇: genhtml 工具使用说明
未来创世纪
博客等级 码龄18年 960粉丝 209原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值