精华内容
下载资源
问答
  • lcov

    2019-09-25 16:41:01
    http://ltp.sourceforge.net/coverage/lcov.php 转载于:https://www.cnblogs.com/mangoczp/p/11431828.html

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

    转载于:https://www.cnblogs.com/mangoczp/p/11431828.html

    展开全文
  • Converting lcov

    2020-12-25 21:18:25
    <div><p>We are working on a project with python and JS and the workflow for merging seems like a good idea except the workflow for transforming a lcov to a coveralls file seems unnecessarily ...
  • 工作服:: LcovLCOV生成的覆盖率信息上载到Coveralls.io。 Coveralls-lcov支持travis-ci.org和travis-ci.com(通过--service-name开关)。 安装 将此行添加到您的应用程序的Gemfile中: gem 'coveralls-lcov' ...
  • lcov report

    2020-12-27 20:44:41
    <p>I would love to use this tool with codecov.io but I think I will need a lcov report, can you tell me what needs to be done than I will try to have a look into it 👍 </p><p>该提问来源于开源...
  • lcov.sh:around围绕BASH项目的最佳LCOV框架
  • lcov-server [ ] [] :bullseye: 一个简单的lcov服务器和CLI解析器 服务器 这是什么? 这是一台lcov服务器! 它存储lcov报告,并根据其原始存储库对其进行分类。 先决条件 安装了postgres 安装了nodejs 安装 ...
  • Mocha-Blanket-lcov-reporter 将毯子覆盖率格式转换为lcov。 基于mocha json记者和mocha-lcov-reporter进行了一些小的修改。 注意:没有测试:)
  • lcov integration.

    2021-01-09 21:45:43
    x86-64 profile-build lcov=yes optimize=no firefox coveragedir/index.html </code></pre> <p>This requires lcov to be installed, as well as a build based on gcc. <pre><code>optimize=no...
  • lcov-1.14 tools

    2020-10-15 19:28:43
    /=========================/ linux下配合gcov使用的可视化工具lcov
  • gvocr vs lcov

    2020-12-25 22:25:38
    <div><p>Could someone give a quick rundown of gcovr vs lcov? From what I can see, the XML output seems to be the largest distinguishing feature of gcovr. The HTML output (which is probably more ...
  • Integrate LCOV reporter

    2020-12-05 13:16:08
    As this plugin provides the possibility to create xunit reports (which is awesome), it would be even more awesome to be able to generate LCOV reports for test coverage as well. There is a ...
  • Fix LCOV parsing

    2020-12-28 01:39:20
    <div><p>This commit fixed parsing lcov files generated by istanbul (https://github.com/gotwarlost/istanbul).</p><p>该提问来源于开源项目:SonarSource/SonarJS</p></div>
  • lcov使用方法

    千次阅读 2019-09-26 14:13:17
    lcov统计结果示例:http://ltp.sourceforge.net/coverage/lcov/output/index.html lcov的具体功能和使用,在linux(如ubuntu)中使用命令即可看到,如下: deliadong@deliadong-virtual-machine:~$ lcov --...

    lcov统计结果示例:http://ltp.sourceforge.net/coverage/lcov/output/index.html

     

    lcov的具体功能和使用,在linux(如ubuntu)中使用命令即可看到,如下:

    deliadong@deliadong-virtual-machine:~$ lcov --help
    Usage: lcov [OPTIONS]

    Use lcov to collect coverage data from either the currently running Linux
    kernel or from a user space application. Specify the --directory option to
    get coverage data for a user space program.

    Misc:
      -h, --help                      Print this help, then exit
      -v, --version                   Print version number, then exit
      -q, --quiet                     Do not print progress messages

    Operation:
      -z, --zerocounters              Reset all execution counts to zero
      -c, --capture                   Capture coverage data
      -a, --add-tracefile FILE        Add contents of tracefiles
      -e, --extract FILE PATTERN      Extract files matching PATTERN from FILE
      -r, --remove FILE PATTERN       Remove files matching PATTERN from FILE
      -l, --list FILE                 List contents of tracefile FILE
          --diff FILE DIFF            Transform tracefile FILE according to DIFF
          --summary FILE              Show summary coverage data for tracefiles

    Options:
      -i, --initial                   Capture initial zero coverage data
      -t, --test-name NAME            Specify test name to be stored with data
      -o, --output-file FILENAME      Write data to FILENAME instead of stdout
      -d, --directory DIR             Use .da files in DIR instead of kernel
      -f, --follow                    Follow links when searching .da files
      -k, --kernel-directory KDIR     Capture kernel coverage data only from KDIR
      -b, --base-directory DIR        Use DIR as base directory for relative paths
          --convert-filenames         Convert filenames when applying diff
          --strip DEPTH               Strip initial DEPTH directory levels in diff
          --path PATH                 Strip PATH from tracefile when applying diff
          --(no-)checksum             Enable (disable) line checksumming
          --(no-)compat-libtool       Enable (disable) libtool compatibility mode
          --gcov-tool TOOL            Specify gcov tool location
          --ignore-errors ERRORS      Continue after ERRORS (gcov, source, graph)
          --no-recursion              Exclude subdirectories from processing
          --to-package FILENAME       Store unprocessed coverage data in FILENAME
          --from-package FILENAME     Capture from unprocessed data in FILENAME
          --no-markers                Ignore exclusion markers in source code
          --derive-func-data          Generate function data from line data
          --list-full-path            Print full path during a list operation
          --(no-)external             Include (ignore) data for external files
          --config-file FILENAME      Specify configuration file location
          --rc SETTING=VALUE          Override configuration file setting
          --compat MODE=on|off|auto   Set compat MODE (libtool, hammer, split_crc)

    For more information see: http://ltp.sourceforge.net/coverage/lcov.php
    deliadong@deliadong-virtual-machine:~$ 

     

     

    我这里针对两个方面做一下笔记:

    (1)设置lcov统计“branch coverage”的方法

        Lcov1.10及往后)默认是关闭 分支覆盖率的。 
    需要将/etc/lcovrc~/.lcovrc文件修改为:

    # Include branch coverage data display (can be disabled by the
    # --no-branch-coverage option of genhtml)
    genhtml_branch_coverage = 1

    # Specify if branch coverage data should be collected and processed.
    lcov_branch_coverage = 1

    (2)设置文件过滤的方法

    在某些情况下,比如三方库不需要统计覆盖率信息,则需要屏蔽,或者只需要某些文件的覆盖率,就需要对文件进行筛选。

    A) 正向提取需要的文件:

    lcov --capture --directory ${COV_BINARY_DIR} -o ${COV_TEST}
    lcov -a ${COV_BASE} -a ${COV_TEST} -o ${COV_TOTAL}

    //把source相关的路径提取出来

    lcov --extract ${COV_TOTAL} "*/source/*" --output-file ${COV_TOTAL}

    //产生的xml就包含所有source相关的文件

    genhtml -o ./${COV_PROJECT} -t "${PROJECT} coverage" --num-spaces 4 ${COV_TOTAL}

     

    B) 反向去除不需要的文件:

    //比如希望去除test和3rdparty相关文件:

    lcov --remove ${COV_TOTAL} "*/test/*" --output-file ${COV_TOTAL}

    lcov --remove ${COV_TOTAL} "*/3rdparty/*" --output-file ${COV_TOTAL}

    //产生的xml就去除了test和/3rdparty/相关的文件

    genhtml -o ./${COV_PROJECT} -t "${PROJECT} coverage" --num-spaces 4 ${COV_TOTAL}

     

    注意:lcov 不允许同时使用--extract  和  --remove
     

     

     

    展开全文
  • Lcov coverage report

    2020-12-01 22:28:02
    <p>This pull request adds coverage reports as a list in the build output if lcov tool is installed <p>It also publishes data to the server at ...
  • Relative paths lcov

    2021-01-03 03:31:52
    I changed it so that we can enable relative directory option for all report formats but only changed it for lcov for now. </p><p>该提问来源于开源项目:coverlet-coverage/coverlet</p></div>
  • <p>There is an issue introduced in lcov 1.11 that fails on some virtual destructors. Attached below: 1. sample code 2. output from 1.11 (error) 3. output form 1.10 (no error) I tested this with GCC ...
  • lcov至cobertura XML转换器 这个项目顾名思义就是:将格式的代码覆盖率报告文件转换为的XML报告格式,以便像这样的CI服务器可以汇总结果并确定构建稳定性等。 支持的覆盖率指标: 包装/文件夹的整体生产线和分支...
  • Support lcov.info format

    2020-12-05 11:33:15
    One thing that would be nice is to support lcov-style output files (e.g. lcov.info), so that tools like https://atom.io/packages/lcov-info would work out of the box.</p><p>该提问来源于开源项目:...
  • gcov 和 lcov

    2015-12-09 10:48:35
    gcov lcov

    1. gcov是什么?

    Gcov is GCC Coverage;
    是一个测试代码覆盖率的工具;
    是一个命令行方式的控制台程序;
    伴随GCC发布,配合GCC共同实现对C/C++文件的语句覆盖和分支覆盖测试;
    与程序概要分析工具(profiling tool,例如gprof)一起工作,可以估计程序中哪一段代码最耗时。

    2. gcov能做什么?

    统计每一行代码的执行频率;
    实际上哪些代码确实被执行了;
    每一段代码(section code)的耗时(执行时间);
    因此,gcov可以帮你优化代码,当然这个优化动作还是应该有开发者完成。

    3. 使用gcov的3个阶段

    (1) 编译

    gcov的使用修改编译选项,加入-fprofile-arcs -ftest-coverage,或者简单点直接用–coverage,等同于前者,生成二进制文件。
    -fprofile-arcs生成.gcda文件一个包含每一个指令分支的执行计数,这些文件会在执行以后与源码文件一起使用,来标识源码的执行行为。
    -ftest-coverage生成.gcno文件用来重组每一个可执行程序的程序流图,并在目标文件中插入gcov需要的extra profiling information。因此编译过程中的链接库需要加上-lgcov。

    (2) 收集信息

    执行该程序,生成.gcda文件(gcov data文件)。

    (3) 报告

    gcov -a xxx.cpp
    gcov -b xxx.cpp
    gcov -f xxx.cpp
    生成xxx.cpp.gcov 文件用vi打开就可以查看覆盖率。

    4. gcov help

    gcov [options] sourcefile
    其可用的选项如下:
    选项 目的
    -v,-version 打印版本信息
    -h,-help 打印帮助信息
    -b,-branch-probabilities向输出文件输出分支频度
    -c,-branch-counts打印分支计数而不是分支频度
    -n,-no-output 不创建gcov输出文件
    -l,-long-file-names创建长文件名
    -f,-function-summaries打印每一个函数的概要
    -o,-object-directory.gcno .gcda文件存放的目录

    5. 参考

    http://blog.chinaunix.net/uid-13182088-id-2904573.html

    1. Lcov是什么?

    是GCOV图形化的前端工具
    是Linux Test Project维护的开放源代码工具,最初被设计用来支持Linux内核覆盖率的度量
    基于Html输出,并生成一棵完整的HTML树
    输出包括概述、覆盖率百分比、图表,能快速浏览覆盖率数据
    支持大项目,提供三个级别的视图:目录视图、文件视图、源码视图

    2. 如何在Linux平台安装Lcov?

    # wget http://downloads.sourceforge.net/ltp/lcov-1.9.tar.gz
    # tar -zxvf lcov-1.9.tar.gz
    # cd lcov-1.9
    # ls
    bin contrib descriptions.tests lcovrc man rpm
    CHANGES COPYING example Makefile README
    # make install
    不需要编译,直接安装即可,lcov, gendesc, genhtml, geninfo, genpng将被安装到/usr/bin目录。

    3. 如何使用Lcov?

    以Linux平台代码覆盖率测试工具GCOV简介一文的例子为例。

    (1) 使用lcov收集覆盖率数据并写入文件

    # lcov –capture –directory . –output-file test.info –test-name test
    Capturing coverage data from .
    Found gcov version: 4.1.2
    Scanning . for .gcda files …
    Found 1 data files in .
    Processing test.gcda
    Finished .info-file creation
    .表示当前目录,收集coverage data,即.gcda文件中的信息,并写入test.info文件,且取名为test。其他选项请参考man lcov

    (2) 使用genhtml生成基于HTML的输出

    # genhtml test.info –output-directory output –title “a simple test” –show-details –legend
    Reading data file test.info
    Found 1 entries.
    Found common filename prefix “/home/zubo”
    Writing .css and .png files.
    Generating output.
    Processing file gcc/2011-04-10.sample/test.c
    Writing directory view page.
    Overall coverage rate:
    lines……: 87.5% (7 of 8 lines)
    functions..: 100.0% (1 of 1 function)
    branches…: 75.0% (3 of 4 branches)

    (3) 打开index文件 查看覆盖率

    4. 参考

    http://my.oschina.net/alphajay/blog/33725

    展开全文
  • gcov_lcov 演练工程源码

    2020-10-16 09:18:34
    一个gcov和lcov使用和练习的源码,仅用来记录自我学习和使用gcov的过程和经验,以便后续开发中可以借鉴。
  • <p>If lcov file does not have an extension (for example if its name is just <code>lcov, insted of <code>lcov.info), the plugin is not able to find it</p><p>该提问来源于开源项目:ryanluker/vscode...
  • Cannot get the hacked lcov

    2020-12-26 01:24:53
    <div><p>When I tried to fetch the hacked lcov through: svn co svn+ssh://shell.cs.utah.edu/uusoc/res/embed/users/regehr/embedded_code_repo/yang/coverage/lcov-1.8 lcov-1.8 it requires authorization....
  • Lcov file not found

    2020-12-09 00:41:05
    https://github.com/ibakshay/cla-assistant/blob/master/.github/workflows/nodejs.yml . We are using <code>mocha_istanbul</code> for generating the Lcov file and I can see from the logs that It is ...
  • pipe the lcov output

    2020-11-25 20:59:57
    <p>Once your app is instrumented for coverage, and building, you need to pipe the lcov output to ./node_modules/coveralls/bin/coveralls.js. <p>Would be awesome if you could share an example.</p><p>该...
  • lcov是建立在gcov之上的一个可以生成html代码覆盖率报告的工具,最近公司开始尝试引入代码覆盖来提高产品质量,lcov很好地满足了我们的需求,虽然lcov本身支持生成代码覆盖率的diff报告,但是跟我们的需求不太符合。...
  • gcov和lcov

    千次阅读 2017-10-16 15:28:54
    gcov是什么 gcov能做什么 如何使用 编译生成gcno与gcda ...lcov lcov是什么 安装 使用lcov Reference gcov是什么? 测试代码覆盖率的工具 命令行方式控制台程序 GCC自带,伴随GCC一起发布 可以和gprof一起工作估算

    gcov是什么?

    • 测试代码覆盖率的工具
    • 命令行方式控制台程序
    • GCC自带,伴随GCC一起发布
    • 可以和gprof一起工作估算代码执行时间

    gcov能做什么?

    • 每一行代码的执行效率
    • 哪些代码确实被执行了
    • 每一段代码的耗时

    如何使用?

    1.编译生成.gcno与.gcda

    大部分博客和老的官方manual会告诉你在编译的时候加两个参数 (包括man)-ftest-coverage -fprofile-arcs

    但是在g++中会出现(gcc也会出现这种问题)

    ```
    undefined reference to `__gcov_init'
    
    ```
    

    因为作者在新版本中更改了编译选项,只需要从

    ```
     gcc xxx.o -o xxx --coverage
     gcc xxx.o -o xxx -lgcov
     gcc xxx.o -o xxx -fprofile-arcs
    ```
    

    选一个就行,我选择的是–coverage, 记得要在编译以及链接的时候加,仅在链接的时候加不会生成相关的文件。编译后会生成.gcno文件,运行后会生成.gcda文件,这些是生成分析文件的源文件

    .gcno包含了重建基本块图和相应的块的源码的行号的信息。
    .gcda由编译后的文件运行所产生的,它包含了弧跳变的次数和其他的概要信息。

    2. 生成报告

    基本命令

    gcov xxx.cc
    生成 .cov文件,使用vim打开即可查看
    

    选项

    -b 分支覆盖
    -a 所有block覆盖
    -f 函数覆盖
    
            -:    0:Source:test.c
            -:    0:Graph:test.gcno
            -:    0:Data:test.gcda
            -:    0:Runs:1
            -:    0:Programs:1
            -:    1:#include
            -:    2:
            -:    3:int main (void)
            1:    4:{
            -:    5:    int i, total;
            -:    6:
            1:    7:    total = 0;
            -:    8:
           11:    9:    for (i = 0; i < 10; i++)
            1:    9-block  0
           10:    9-block  1
           11:    9-block  2
           10:   10:        total += i;
            -:   11:
            1:   12:    if (total != 45)
            1:   12-block  0
        #####:   13:        printf ("Failure/n");

    代码来源于官方manual
    -代表不必执行
    数字n代表执行的次数

    代表没有被执行过

    3.可能的问题

    生成文件失败

    profiling:Cannot create directory
    profiling:Selection.pb.gcda:Skip

    Running the program will cause profile output to be generated. For each source file compiled with -fprofile-arcs, an accompanying .gcda file will be placed in the object file directory. That implicitly requires running the program on the same system as it was built or having the same absolute directory structure on the target system. The program will try to create the needed directory structure, if it is not already present.

    在运行环境中没有相应的目录,所以不能生成.gcda文件,只要设一下GCOV_PREFIX和GCOV_PREFIX_STRIP环境变量。

    GCOV_PREFIX:就是制定生成数据文件的前缀

    GCOV_PREFIX_STRIP:就是需要在原来的路径上去掉多少层目录

    假设执行路径“/home/a/b/c/d/”,

    现在的运行路径是“/home/e/f/g/h/p/l”,那么执行如下命令即可
    export GCOV_PREFIX=”/home/e/f/g/h/p/l”
    export GCOV_PREFIX_STRIP=4
    执行完这两行命令,就可以开始运行被测程序,然后正常退出,就会看到.gcda文件生成出来了。

    .gcda文件生成了就可以用lcov直接处理它们,但是在处理的过程中遇到以下错误:

    文件时间戳不一致

    “stamp mismatch with graph file”
    Processing Ads_Request.gcda
    xxx.gcda:stamp mismatch with graph file
    geninfo: WARNING: gcov did not create any files for xxx.gcda!

    导致出现这个错误的原因是.gcda和.gcno文件并不是同一次build出来的,它们2个文件的时间戳就不一样,更新所有的.gcno文件即可。

    Using gcov with GCC Optimization

    https://gcc.gnu.org/onlinedocs/gcc/Gcov-and-Optimization.html#Gcov-and-Optimization

    4.缺陷

    gcov的每个源码的分析分散在对应的 .cov 文件中,
    如果有N个源文件,基本上就很难快速分析处理了,最关键的是文本,也没有图表什么的

    lcov

    lcov是什么

    • 是GCOV图形化的前端工具
    • 是Linux Test Project维护的开放源代码工具,最初被设计用来支持Linux内核覆盖率的度量
    • 基于Html输出,并生成一棵完整的HTML树
    • 输出包括概述、覆盖率百分比、图表,能快速浏览覆盖率数据
    • 支持大项目,提供三个级别的视图:目录视图、文件视图、源码视图

    安装

        sudo yun install lcov

    使用lcov

    lcov -t "xxx" -o xxx.info -c -d filepath
    -t sets a test name
    -o to specify the output file
    -c to capture the coverage data
    -d to specify the directory where the data files needs to be searched
    
    生成前端显示
    genhtml -o res xxx.info
    
    res :生成的文件名
    xxx.info : 上一步生成的信息文件
    
    之后打开res下的index.html就可以浏览了
    

    Reference

    gcov—a Test Coverage Program

    USING GCOV AND LCOV TO GENERATE BEAUTIFUL C++ CODE COVERAGE STATISTICS

    C++ code coverage profiling with GCC/GCOV

    展开全文
  • <p>Problem during processing LCOV report: can't save DA data for line 0 (Line with number 0 doesn't belong to file path/to/file.ts) <p>This happens also in the tests if you change the content...
  • 代码覆盖率工具lcov

    2020-12-25 21:09:23
    lcov工具使用
  • <div><p>The <code>flutter test --coverage</code> command produces an <code>coverage/lcov.info</code> file that contains information about the line coverage of your tests. We should be able to ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,155
精华内容 462
关键字:

lcov