精华内容
下载资源
问答
  • 代码覆盖率工具lcov

    2020-12-25 21:09:23
    lcov工具使用

    代码覆盖率工具lcov

    gcov

    gcov是一个测试代码覆盖率的程序,正确地使用它搭配 gcc 可以分析、帮助你将代码写得更高效。帮助你优化程序。类似于一个profiling tool,使用 gcov 或者 gprof,可以收集到一些基础的性能统计数据。比如:

    1. 每一行代码执行的频度
    2. 每个代码文件中实际被执行到的行数
    3. 每一个代码块执行使用的时间
      gcov创建一个logfile叫做 源文件名称.gcxx (这里的源文件名称指的是.c或者.cc文件的文件名),表示的是这个 源文件.c 中每一行所被执行的次数。这些文件可以配合gprof使用。
      gcov要工作只能用gcc编译这些代码。和其他的profiling 或者 测试代码覆盖率的机制不兼容。

    fprofile-arcs参数使gcc创建一个程序的流图,之后找到适合图的生成树。只有不在生成树中的弧被操纵(instrumented):gcc添加了代码来清点这些弧执行的次数。当这段弧是一个块的唯一出口或入口时,操纵工具代码(instrumentation code)将会添加到块中,否则创建一个基础块来包含操纵工具代码。

    详情请参考这个链接:https://www.cnblogs.com/ChinaHook/p/5508660.html

    lcov

    lcov 是 gcc 测试覆盖率的前端图形展示工具。它通过收集多个源文件的 行、函数和分支的代码覆盖信息(程序执行之后生成gcda、gcno文件,上面的链接有讲) 并且将收集后的信息生成HTML页面。生成HTML需要使用genhtml命令。

    lcov的使用

    首先,在代码编译和链接的时候,需要加上下面两个编译选项。在链接时需要加上gcov链接参数。

    -fprofile-arcs
    -ftest-coverage

    ##############################################
    # COVERAGE (生成覆盖率选项)
    ##############################################
    if (ENABLE_COVERAGE)
        set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -g -O0 -fprofile-arcs -ftest-coverage --coverage")
        set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g -O0 -fprofile-arcs -ftest-coverage --coverage")
    endif()
    

    在lcov目录(我们的这次测试使用的目录)下存在3个文件,test_case.cpp test_case.h test_main.cpp test_case.ccp 文件

    int add (int a , int b ) {
        return a+b ;
    }
    
    int minus(int a , int b ) {
        return a-b ;
    }
    

    test_case.h文件

    int add (int a , int b );
    int minus(int a , int b );
    

    test_main.cpp文件

    #include <iostream>
    
    #include "test_case.h"
    
    int main() {
        std::cout << add(10,20) << std::endl ;
        return 0 ;
    }
    

    这里的a.cpp和a.hpp中定义了两个接口 add 和 minus(暂不考虑溢出问题)。我们在testa.cpp中调用add这个接口。我们的代码覆盖率应该是50%,因为总共两个接口,我们只使用(调用)了其中一个。

    推荐的使用流程如下(最后再详述lcov常用的参数的含义):
    我们使用lcov时需要在项目的根路径。

    # 来自 man lcov
    Recommended procedure when capturing data for a test case:
    
    #1. create baseline coverage data file
    lcov -c -i -d appdir -o app_base.info
    
    #2. perform test
    appdir/test
    
    #3. create test coverage data file
    lcov -c -d appdir -o app_test.info
    
    # 4. combine baseline and test coverage data
    lcov -a app_base.info -a app_test.info -o app_total.info
    

    按照上述流程,我们使用自己的例子来执行

    • 编译程序
    g++ test_main.cpp test_case.cpp -fprofile-arcs -ftest-coverage -lgcov -o test_cover
    

    这步可有可无,即归零所有执行过的产生覆盖率信息的统计文件:
    lcov -d ./ -z

    1. 初始化并创建基准数据文件
    # -c 捕获,-i初始化,-d应用目录,-o输出文件
    lcov -c -i -d ./ -o init.info
    
    1. 执行编译后的测试文件
    ./test_cover
    
    1. 收集测试文件运行后产生的覆盖率文件
    lcov -c -d ./ -o cover.info
    
    1. 合并基准数据和执行测试文件后生成的覆盖率数据
    # -a 合并文件
    lcov -a init.info -a cover.info -o total.info
    
    1. 过滤不需要关注的源文件路径和信息
    # --remove 删除统计信息中如下的代码或文件,支持正则
    lcov --remove total.info '*/usr/include/*' '*/usr/lib/*' '*/usr/lib64/*' '*/usr/local/include/*' '*/usr/local/lib/*' '*/usr/local/lib64/*' '*/third/*' 'test_main.cpp' -o final.info
    
    • 通过final.info生成html文件
    #如果是git目录,可以获取此次版本的commitID,如果不是,忽略此步
    # commitId=$(git log | head -n1 | awk '{print $2}')
    # 这里可以带上项目名称和提交ID,如果没有,忽略此步
    #genhtml -o cover_report --legend --title "${project_name} commit SHA1:${commitId}" --prefix=${curr_path} final.info
    # -o 生成的html及相关文件的目录名称,--legend 简单的统计信息说明
    # --title 项目名称,--prefix 将要生成的html文件的路径 
    genhtml -o cover_report --legend --title "project_name"  --prefix=./ final.info
    

    目录下所有文件

    test_case.gcda、test_case.gcno、test_main.gcda、test_main.gcno就是运行可执行文件后gcov产生的统计信息文件。
    cover_report目录就是生成的html信息目录。

    这样,我们就可以通过firefox或者chrome打开cover_report/index.html来查看我们的代码覆盖率。

    注:如果使用CMake编译和构建的话,可以在指定路径的时候,统一使用项目的编译构建路径,即项目下源文件下创建的build目录作为路径,(运行lcov在项目的根路径)举例如下:

    lcov -c -i -d ./build -o init.info
    lcov -c -d ./build -o cover.info
    ... ... 
    

    lcov常用的参数

    -d 项目路径,即.gcda .gcno所在的路径
    -a 合并(归并)多个lcov生成的info文件
    -c 捕获,也即收集代码运行后所产生的统计计数信息
    --external 捕获其它目录产生的统计计数文件
    -i/--initial 初始化所有的覆盖率信息,作为基准数据
    -o 生成处理后的文件
    -r/--remove 移除不需要关注的覆盖率信息文件
    -z 重置所有执行程序所产生的统计信息为0
    

    生成代码覆盖率脚本

    #!/bin/bash
    
    CUR_DIR=`pwd`
    OLD_DIR="$(cd "$(dirname "$0")" && pwd)"
    
    APP_HOME="OLD_DIR/APP_HOME"
    
    function FnCreateCoverage()
    {
    	echo -e "\033[32mCreator Coverage\033[0m"
    	
    	# 初始化并创建基准数据文件
    	lcov -c -i -d build -o build.info
    	
    	# 执行编译后的测试程序
    	cd ${APP_HOME}/testbin
    	chmod +x gtest_all
    	./gtest_all
    	
    	cd ${OLD_DIR}
    	
    	#收集测试文件运行后的覆盖率文件
    	lcov -c -d build -o cover.info
    	
    	#合并基准数据和执行测试文件后的生成的覆盖率数据
    	lcov -a build.info -a cover.info -o total.info
    	
    	# 过滤不关心的源文件路径
        lcov --remove total.info '*/usr/include/*' '*/usr/lib/*' '*/usr/lib64/*' '*/usr/local/include/*' '*/usr/local/lib/*' '*/usr/local/lib64/*' '*/third/*' 'test_main.cpp' -o final.info
        
        genhtml -o cover_report --legend --title "project_name"  --prefix=./ final.info	
        rm *.info >/del/null 2>&1
    }
    
    function FnDelCoverage()
    {
        echo -e "\033[32mDelete Coverage\033[0m"
        echo ""
        rm -rf cover_report >/del/null 2>&1
        rm *.info >/del/null 2>&1
    }
    
    function Usage()
    {
        echo "Usage:"
    	echo -e "\tsh coverage.sh [option]"
    	echo ""
    	echo -e "\t del     delete coverage"
    	echo -e "\t gen     generate coverage"
    }
    
    function ParseCommandLine()
    {
    	if [ -n "$1" ];then
    	    case "$1" in
    	        "gen")
    	            FnCreateCoverage
    	            ;;
    	        "del")
    	            FnDelCoverage
    	            ;;
    	        *)
    	            FnCreateCoverage
    	            ;;
    	     esac
    	else 
    	    FnCreateCoverage
    	fi
    }
    
    function main()
    {
    	ParseCommandLine "$@"
    }
    
    main $@
    
    cd ${CUR_DIR}
    exit 0
    
    展开全文
  • 代码覆盖工具gcov/lcov使用

    千次阅读 2015-10-22 20:46:03
    参考文献: gcov使用示例 ...lcov使用示例 http://www.linuxidc.com/Linux/2011-05/36544.htm gcov测试内核覆盖率 http://ltp.sourceforge.net/coverage/gcov.php 1.
    参考文献:
    gcov使用示例  http://blog.csdn.net/lishenglong666/article/details/8056777
    lcov使用示例   http://www.linuxidc.com/Linux/2011-05/36544.htm
    gcov测试内核覆盖率 http://ltp.sourceforge.net/coverage/gcov.php

    1.gcov是什么?
    2.gcov使用步骤:编译;运行;报告
    3.lcov是什么?
    4.linux安装lcov
    5.lcov使用步骤:
    6.测试内核覆盖率 gcov-kernel

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

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

    2.gcov使用步骤
    包含3个阶段(以main.c test.c)
    1) 编译

        # gcc -fprofile-arcs -ftest-coverage -o main test.c main.c
        # ls
        main main.c main.gcno  test.c  test.gcno
    -fprofile-arcs -ftest-coverage告诉编译器生成gcov需要的额外信息,并在目标文件中插入gcov需要的extra profiling information。因此,该命令在生成可执行文件test的同时生成test.gcno文件(gcov note文件)。
     
    2) 收集信息

        # ./main
        # ls
        main main.c main.gcda  test.c  test.gcda  test.gcno
    执行该程序,生成test.gcda文件(gcov data文件)。

    (3) 报告

        # gcov main.c test.c
        # ls
        main main.c main.c.gcov main.gcda  test.c  test.c.gcov  test.gcda  test.gcno
    生成test.c.gcov文件,该文件记录了每行代码被执行的次数。

    3.lcov是什么?
        是GCOV图形化的前端工具
        是Linux Test Project维护的开放源代码工具,最初被设计用来支持Linux内核覆盖率的度量
        基于Html输出,并生成一棵完整的HTML树
        输出包括概述、覆盖率百分比、图表,能快速浏览覆盖率数据
        参考 http://ltp.sourceforge.net/coverage/gcov.php

    4.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
        # make install
    不需要编译,直接安装即可,lcov, gendesc, genhtml, geninfo, genpng将被安装到/usr/bin目录。

    5.lcov使用步骤
    以Linux平台代码覆盖率测试工具GCOV简介一文的例子为例。

    1) 使用lcov收集覆盖率数据并写入文件
        # lcov --capture --directory . --output-file main.info
    在arm嵌入式环境下要使用--gcov-tool指向嵌入式环境下的gcov工具,例如:
        #lcov --gcov-tool /home/netbric/smallboard/petalinux-v2014.2-final/tools/linux-i386/arm-xilinx-gnueabi/bin/arm-xilinx-eabi-gcov --capture --directory . --output-file coverage.info

    2) 使用genhtml生成基于HTML的输出
        # genhtml main.info --output-directory main.htmls

    6.gcov-kernel测试内核覆盖率
    About gcov-kernel

    gcov-kernel enables code coverage measurements for the Linux kernel and kernel modules. It is based on GCC's gcov tool. gcov-kernel is available as a set of patches for Linux kernels 2.6.4 to 2.6.30. Starting with Linux kernel 2.6.31, gcov-kernel is part of the Linux kernel and can be used without extra patches.
    Using gcov-kernel (Linux 2.6.31 and above)

    Example: (assumes that Linux source code is installed in directory /tmp/linux)

        Obtain the Linux kernel source code
        Enable the gcov-kernel configuration options:

        CONFIG_GCOV_KERNEL=y
        CONFIG_GCOV_PROFILE_ALL=y

        Compile, install and boot the kernel
        Mount the debugfs file system at mount point /sys/kernel/debug

        [root@host]# mount -t debugfs none /sys/kernel/debug

        Change to the kernel source tree

        [root@host]# cd /tmp/linux

        Run the gcov tool on a source code file

        [root@host]# gcov kernel/gcov/base.c -o /sys/kernel/debug/gcov/tmp/linux/kernel/gcov/
        File 'kernel/gcov/base.c'
        Lines executed:52.17% of 46
        kernel/gcov/base.c:creating 'base.c.gcov'

        Code coverage information for the specified source file can be found in the files created by gcov. Alternatively, use LCOV to obtain the information automatically.

    Using gcov-kernel (Linux 2.6.30 and below)

    Example: (assumes that Linux source code is installed in directory /tmp/linux)

        Obtain the Linux kernel source code
        Obtain and apply the corresponding gcov-kernel patch
        Enable the gcov-kernel configuration options:

        CONFIG_GCOV_PROFILE=y
        CONFIG_GCOV_ALL=y
        CONFIG_GCOV_PROC=y

        Compile, install and boot the kernel
        Change to the kernel source tree

        [root@host]# cd /tmp/linux

        Run the gcov tool on a source code file

        [root@host]# gcov lib/sort.c -o /proc/gcov/module/tmp/linux/lib/
        File '/tmp/linux/lib/sort.c'
        Lines executed:84.85% of 33
        /tmp/linux/lib/sort.c:creating 'sort.c.gcov'

    Code coverage information for the specified source file can be found in the files created by gcov. Alternatively, use LCOV to obtain the information automatically.
    Download

    Source code: gcov-kernel is released under the GPL license. The latest patch versions can be found in the LTP CVS repository.
    展开全文
  • 使用gcov -v 可以查看gcov的版本信息,如下: 2、lcov lcov是gcov的图形化工具,可生成html格式的代码覆盖率报告,提高覆盖率检测结果的可读性。 lcov需要自己下载的开源软件,下载地址如下: ...

    1、gcov

    Linux下代码覆盖率工具,属于gcc工具集之一,随gcc一起发布,不需要独立安装。

    使用gcov -v 可以查看gcov的版本信息,如下:

    2、lcov

    lcov是gcov的图形化工具,可生成html格式的代码覆盖率报告,提高覆盖率检测结果的可读性。

    lcov需要自己下载的开源软件,下载地址如下:

    https://sourceforge.net/projects/ltp/files/Coverage%20Analysis/

    3、lcov的手动安装

    (1)进入到.tar.gz所在的目录;

    (2)执行如下命令:tar -zxvf lcov-1.14.tar.gz

    ==》以lcov-1.14版本安装为例。

    (3)cd  lcov-1.14

    (4)make install

    (5)lcov -v  //查看版本信息

    [root@zxomc lcov-1.14]# lcov -v

    lcov: LCOV version 1.14

    4、使用gcov的方法

    (1)增加编译选项

    #coverage--- gcda file ,arcs---gcdo file

    CFLAGS+=-fprofile-arcs -ftest-coverage

    其中-fprofile-arcs用于生成.gcno文件,-ftest-coverage用于生成.gcda文件

    (2)链接时使用:

    #ld

    LDFLAGS+=-lgcov

    (3)gcc编译成功后会生成对应同名的.gcno文件

    (4)执行生成的可执行文件后生成同名的.gcda文件

    (5)针对特定的源文件,执行gcov命令后生成覆盖率信息文件,即.gcov

    如:针对test.c

    gcov test.c

    则生成test.c.gcov文件,这个就是代码覆盖信息。

     

    5、lcov的使用方法

    (1)我们为了更直观的查看代码覆盖率,可以借助lcov(gcov的可视化工具),针对生成的.gcov文件进行改造,生成最终的test.info文件。

    在.gcov所在的目录下执行如下命令:

    lcov -c -d . -o 'test.info' -b .

    此命令执行成功后会生成对应的info文件(文件名可自定义)。

    (2)通过genhtml工具(lcov工具集中包含)生成result文件,其中包含index.html。

    (3)在windows下可以双击index.html,显示不同目录下的覆盖率统计结果,如下:

    6、工程源码访问链接

     

    7、参考文献

    (1)https://blog.csdn.net/hanlizhong85/article/details/78009819?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.channel_param&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.channel_param

     

    展开全文
  • 需要结合lcov,gcovr等前端图形工具才能实现统计数据图形化。 伴随GCC发布,不需要单独下载gcov工具。配合GCC共同实现对c/c++文件的语句覆盖和分支覆盖测试。 与程序概要分析工具(profiling tool...

     

    官网:

     

    参考:

     

     

    gcov is a test coverage program. Use it in concert with GCC to analyze your programs to help create more efficient, faster running code and to discover untested parts of your program. You can use gcov as a profiling tool to help discover where your optimization efforts will best affect your code. You can also use gcov along with the other profiling tool, gprof, to assess which parts of your code use the greatest amount of computing time.

     

    Profiling tools help you analyze your code’s performance. Using a profiler such as gcov or gprof, you can find out some basic performance statistics, such as:

    • how often each line of code executes

    • what lines of code are actually executed

    • how much computing time each section of code uses

    Once you know these things about how your code works when compiled, you can look at each module to see which modules should be optimized. gcov helps you determine where to work on optimization.

     

     

    gcov是什么:

    • gcov是一个测试代码覆盖率的工具。与GCC一起使用来分析程序,以帮助创建更高效、更快的运行代码,并发现程序的未测试部分。

    • 是一个命令行方式的控制台程序。需要结合lcov,gcovr等前端图形工具才能实现统计数据图形化。

    • 伴随GCC发布,不需要单独下载gcov工具。配合GCC共同实现对c/c++文件的语句覆盖和分支覆盖测试。

    • 与程序概要分析工具(profiling tool,例如gprof)一起工作,可以估计程序中哪段代码最耗时。

     

    gcov能做什么:

    使用象gcov或gprof这样的分析器,您可以找到一些基本的性能统计数据:

    • 每一行代码执行的频率是多少。

    • 实际执行了哪些行代码,配合测试用例达到满意的覆盖率和预期工作。

    • 每段代码使用了多少计算时间,从而找到热点优化代码。

    • gcov创建一个sourcefile.gcov的日志文件,此文件标识源文件sourcefile.c每一行执行的次数,您可以与gprof一起使用这些日志文件来帮助优化程序的性能。gprof提供了您可以使用的时间信息以及从gcov获得的信息。

     

     

    1. 准备代码test.c

    #include <stdio.h>
    
    
    int main(int argc, char** argv)
    {
        int i, total;
    
        total = 0;
    
        for(i = 0; i < 10; i++) {
            total += i;
        }
    
        if(total != 45) {
            printf("fail!\n");
        } else {
            printf("success!\n");
        }
    
        return 0;
    }

     

    2. 编译

    执行:gcc -fprofile-arcs -ftest-coverage test.c -o test

    生成:test.gcno和test,

    baoli@ubuntu:~/tools/gcov$ ls

    test  test.c  test.gcno

     

    -fprofile-arcs -ftest-coverage告诉编译器生成gcov需要的额外信息,并在目标文件中插入gcov需要的extra profiling information。因此,该命令在生成可执行文件test的同时生成test.gcno文件(gcov note文件)。

     

     

    3. 执行test收集信息,产生test.gcda

    baoli@ubuntu:~/tools/gcov$ ls

    test  test.c  test.gcda  test.gcno

     

     

    4. 执行gcov test.c,生成报告test.c.gcov

    baoli@ubuntu:~/tools/gcov$ gcov test.c

    File 'test.c'

    Lines executed:87.50% of 8

    Creating 'test.c.gcov'

     

    baoli@ubuntu:~/tools/gcov$ ls

    test  test.c  test.c.gcov  test.gcda  test.gcno

     

    查看test.c.gcov报告信息:

    baoli@ubuntu:~/tools/gcov$ cat test.c.gcov
            -:    0:Source:test.c
            -:    0:Graph:test.gcno
            -:    0:Data:test.gcda
            -:    0:Runs:1
            -:    0:Programs:1
            -:    1:#include <stdio.h>
            -:    2:
            -:    3:
            1:    4:int main(int argc, char** argv)
            -:    5:{
            -:    6:    int i, total;
            -:    7:
            1:    8:    total = 0;
            -:    9:
           11:   10:    for(i = 0; i < 10; i++) {
           10:   11:        total += i;
            -:   12:    }
            -:   13:
            1:   14:    if(total != 45) {
        #####:   15:        printf("fail!\n");
            -:   16:    } else {
            1:   17:        printf("success!\n");
            -:   18:    }
            -:   19:
            1:   20:    return 0;
            -:   21:}

    其中#####表示未运行的行

    每行前面的数字表示行运行的次数

     

    5. lcov

    上述生成的.c.gcov文件可视化成都较低,需要借助lcov,genhtml工具直接生成html报告。

     

    5.1 安装lcov

    sudo apt-get install lcov

     

    5.2 运行lcov,生成相应信息

    执行:lcov -d . -o test.info -b . -c

    baoli@ubuntu:~/tools/gcov$ lcov -d . -o test.info -b . -c
    Capturing coverage data from .
    Found gcov version: 5.4.0
    Scanning . for .gcda files ...
    Found 1 data files in .
    Processing test.gcda
    Finished .info-file creation
    
    baoli@ubuntu:~/tools/gcov$ ls
    test  test.c  test.gcda  test.gcno  test.info

     

    5.3 生成web可视化信息

    执行:genhtml -o result test.info

    baoli@ubuntu:~/tools/gcov$ genhtml -o result test.info
    Reading data file test.info
    Found 1 entries.
    Found common filename prefix "/home/baoli/tools"
    Writing .css and .png files.
    Generating output.
    Processing file gcov/test.c
    Writing directory view page.
    Overall coverage rate:
      lines......: 87.5% (7 of 8 lines)
      functions..: 100.0% (1 of 1 function)
    
    baoli@ubuntu:~/tools/gcov$ ls
    result  test  test.c  test.gcda  test.gcno  test.info

     

     

    5.4 查看web

    1)打开index.html

    2)详细信息:

     

    上述界面包含:

    • 函数覆盖率(执行率)

    • 代码行数覆盖率(执行率)

    • 语句执行次数

    • 源码级的详细信息

     

     

     

     

     

     

     

     

    展开全文
  • lcov是gcov的图形化前端工具,根据gcov生成的内容,处理成一颗完整的html树,包括概述、覆盖率百分百、图标等轻便直观的内容。在根CMakeList.txt中添加ENABLE_GCOV选项:OPTION(ENABLE_GCOV "Enable gcov ...
  • linux下codecoverage工具gcov/lcov使用

    千次阅读 2015-04-22 17:37:21
    gcov是linux下进行代码覆盖测试的工具,随着gcc一起发布。lcov是gcov的图形化前端工具...下面使用gcov和lcov进行一个简单的demo测试。 1.用gcov选项编译c/c++文件 test.cpp #include using namespace std; int main()
  • lcov:其他博客说是随ltp发布的,结果下载下ltp之后编译了10多分钟,最后也没见lcov,最后到sourceforge下载了lcov单独的代码: 1 wget ...
  • gcov是一个可用于C/C++的代码覆盖工具,是gcc的内建工具。下面介绍一下如何利用gcov来收集代码覆盖信息。 想要用gcov收集代码覆盖信息,需要在gcc编译代码的时候加上这2个选项 “-fprofile-arcs -ftest-coverage
  • 一下文章摘自 http://magustest.com/blog/whiteboxtesting/using-gcov-lcov/<br />  <br />gcov是一个可用于C/C++的代码覆盖工具,是gcc的内建工具。下面介绍一下如何利用gcov来收集代码覆盖信息。...
  • 代码覆盖率——gcov lcov使用

    千次阅读 2013-09-25 17:00:07
    代码覆盖率——gcov lcov使用 分类: linux 2012-06-11 17:55 1284人阅读 评论(0) 收藏 举报 linux内核makefilefilebranch测试gcc 1.GCOV查看arm-linux代码覆盖率 一、 关于gcov工具 gcov...
  • 覆盖率测试工具gcov & lcov使用手册

    千次阅读 2016-03-14 13:32:03
    Gcov: 代码覆盖率工具 1. 编译: 编译时gcc添加编译选项“gcc-fprofile-arcs“和”–ftest-coverage”: e.g:gcc-fprofile-arcs -ftest-coverage -otest test0309.c 编译完后会生成* .gcno文件 2. 执行: 执行...
  • gcov和lcov使用

    千次阅读 2010-09-04 23:36:00
    1、Gcov是进行代码运行的覆盖率统计的工具,它随着gcc的发布一起发布的,它的使用也很简单,需要在编译和链接的时候加上-fprofile-arcs -ftest-coverage生成二进制文件,gcov主要使用.gcno和.gcda两个文件,....
  • 使用gcov和lcov做代码覆盖有一段时间了,期间走了一些弯路,算是一些经验教训。 gcov可以对shared object进行代码覆盖信息收集。 之前的一篇文章说过, gcov不能收集.so的代码覆盖率信息 ,其实这个是错的。 ...
  • 之所以叫温故而知新,是因为将这两个工具结合起来作为单元测试工具的想法在上一个项目中应用了,好像还没有人将这两种工具结合使用,或者没有写成博客供大家参考,现在重新温习下将想法写下来。 gtest单元测试工具...
  • 覆盖率工具gcov,lcov使用记录 背景 本文记录的是gcov和lcov在统计一个分布式数据库的代码覆盖率过程中遇到的问题。 介绍 *gcov是一个测试代码覆盖率的工具,随着gcc一起发布,不需要进行特别安装;而lcov是配合gcov...
  • 参考文献 https://my.oschina.net/alphajay/blog/33725
  • lcov是将gcov产生的报告信息,以更直观的方式显示出来工具 基本的使用方法分为4个阶段: (一)、gcc编译:产生插装后的目标文件test、gcov结点文件 test.gcno #gcc -fprofile-arcs -ftest-coverage -o test test.c ...
  • CUnit和lcov安装和使用

    2020-12-21 15:51:30
    CUnit 系统ubuntu 18.04 版本CUnit-2.1-3 ... 解压缩 tar jxvf CUnit-2.1-3.tar.bz2 ...安装相关工具 sudo apt install libtool root# aclocal warning : aclocal: warning: autoconf input should be named
  • 3. 如何使用Lcov? (1) 使用lcov收集覆盖率数据并写入文件 (2) 使用genhtml生成基于HTML的输出 (3) 该例子的图形显示 4. 编译lcov自带例子 5. 其他相关工具 (1) gcov-dump (2) ggcov     1. Lcov是什么...

空空如也

空空如也

1 2 3 4 5 ... 7
收藏数 122
精华内容 48
关键字:

lcov工具使用