覆盖率coverage

覆盖率coveragecpp 覆盖率 optionscompi fprofile arcs ftest coveragelink lgcov 或者 compile coveragelink coverage 详情参见 https gcc gnu org onlinedocs gcc 10 1 0 gcc Instrumentat Options html 编译完后会产生 gcno gcda 文件 lcov 用 lcov 收集数据 gc 数据在 gcda

cpp 覆盖率

options

  • compile: -fprofile-arcs, -ftest-coverage
  • link: -lgcov

或者:

  • compile: –coverage
  • link: –coverage

详情参见:https://gcc.gnu.org/onlinedocs/gcc-10.1.0/gcc/Instrumentation-Options.html

编译完后会产生*.gcno, *.gcda 文件

lcov

用lcov 收集数据

 *.gc?? 数据在gcda_dir下, 源代码路径在 src_dir, gcov_info_file 是gcov数据文件  用--no-external 排除掉不在前二者目录下的数据  lcov --no-external -c -d { 
   gcda_dir} -b { 
   src_dir} -o { 
   gcov_info_file}  --extract 提取匹配 src 的文件  lcov --extract { 
   gcov_info_file} "*src*" -o { 
   gcov_info_file}  --remove 去掉 匹配 unittest, odb 的文件  lcov --remove { 
   gcov_info_file} "*unittest*" "*odb*" -o { 
   gcov_info_file}  在output_dir 下生成html 的报告 
genhtml -o { 
   output_dir} { 
   gcov_info_file} --demangle-cpp 

ref:

  • http://ltp.sourceforge.net/coverage/lcov/lcov.1.php
  • https://wiki.documentfoundation.org/Development/Lcov#Run_lcov_again_after_tests.2Fchecks_complete

scons

有几个用scons 集成gcov的项目

  • https://github.com/ptomulik/scons-tool-gcccov
  • https://github.com/sansajn/test/tree/master/scons/soname
  • https://sansajn.github.io/post/2021/03/17/coverage-report.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/223481.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月17日 下午2:06
下一篇 2026年3月17日 下午2:06


相关推荐

  • mysql 索引使用与优化

    mysql 索引使用与优化mysql 索引使用与优化

    2026年3月17日
    2
  • pytest的使用_调用方法的具体调用格式为

    pytest的使用_调用方法的具体调用格式为Pytest执行用例规则Pytest在命令行中支持多种方式来运行和选择测试用例1.对某个目录下所有的用例pytest2.对模块中进行测试pytesttest_mod.py3.对文件夹进行

    2022年7月31日
    9
  • 网络诊断dns服务器未响应,网络诊断提示DNS服务器未响应解决方法

    网络诊断dns服务器未响应,网络诊断提示DNS服务器未响应解决方法DNS服务器未响应是什么意思DNS服务器是计算机域名系统(DomainNameService)的缩写,它是由域名解析器和域名服务器组成的。域名服务器是指保存有该网络中所有主机的域名和对应IP地址,并具有将域名转换为IP地址功能的服务器。其中域名必须对应一个IP地址,而IP地址不一定有域名。域名系统采用类似目录树的等级结构。域名服务器为客户机/服务器模式中的服务器方,它主要有两种形式:主服务器和转发…

    2022年5月9日
    47
  • centos8安装rabbitmq_rabbitmq镜像集群

    centos8安装rabbitmq_rabbitmq镜像集群rabbitmq集群搭建1分别在3台节点安装rabbitmq-server在3台虚拟机(10.0.11.5410.0.11.5610.0.11.57)分别安装相同版本的rabbitmq-server及erlang,2分别修改三台节点的/etc/hosts文件注意必须修改主机名hostnamectlset-hostnamenode1#node2,3以此类推每台节点hosts文件修改后如下3将三台节点的.erlang.cookie内容修改一致(不一致创建集群会报错

    2025年10月24日
    4
  • AngularJS笔记「建议收藏」

    AngularJS笔记「建议收藏」1.   AngularJS通过ng-directives扩展了HTML。  ng-app指令定义一个AngularJS应用程序。  ng-model指令把元素值(比如输入域的值)绑定到应用程序。  ng-bind指令把应用程序数据绑定到HTML视图。2.  HTML5允许扩展的(自制的)属性,以data-开头。  AngularJS属性以n…

    2022年7月25日
    16
  • TTL与RS-485电平转换芯片MAX485/MAX3485「建议收藏」

    TTL与RS-485电平转换芯片MAX485/MAX3485「建议收藏」常用的转换芯片是MAX485(5V),MAX3485(3.3V),它们都是半双工的。     A端和B端分别为接收和发送的差分信号端,当A引脚的电平高于B时,代表发送的数据为1;当A的电平低于B端时,代表发送的数据为0。下图是485抗干扰的原理:

    2022年8月10日
    14

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号