c/c++代码覆盖率总结

来源:互联网 发布:nginx lua 编辑:程序博客网 时间:2024/05/29 15:09
c/c++代码覆盖率总结,具体如下
1 安装工具:

    安装lcov   

     wget http://sourceforge.net/projects/ltp/files/Coverage%20Analysis/LCOV-1.12/lcov-1.12.tar.gz

      解压;进入目录;make install即可

    安装grove 

   wget https://github.com/gcovr/gcovr/archive/3.2.tar.gz

      解压;cp */scripts/gcovr /usr/bin即可     

2 配置CMake文件
    在CMakeList.txt增加如下配置

    编译时增加参数

   -DENABLE_COVERAGE=ON

     注意gcda和gcno文件,必要时交叉编译,指定gcda文件路径

   export GCOV_PREFIX="/src/gcov"
3 执行case,生成代码覆盖率文件
    1 编译后拷贝bin文件启动,执行测试用例;
    2 case运行完后,需要执行一次exit,才能生成gcda和gcno文件,如下
    pid=`ps -ef | grep $SERVER_NAME | grep -v "grep" | awk '{print $2}'`    echo $pid    gdb -q attach $pid     p __gcov_flush()
   查看编译时的目录 即可看到gcno和gcda文件,可用来生成覆盖率报告。
4 生成报告
    gcovr生成报告

   xml文件

   gcovr -r .  --output coverage.xml  -xml-pretty

   html文件:

   gcovr -r . --html-details -o coverage.html

    lcov生成报告

   html报告: 

    lcov -c -o result.info  -b . -d .    //生成info文件    genhtml result.info -o Report        //生成报告,在windows下打开里面的index.html文件即可


0 0