code coverage

 Requirement:

    gcov, lcov

    lcov需要自己下载:http://ltp.sourceforge.net/coverage/lcov.php

    lcov需要perl模块的支持,如果lcov失败,yum install perl*安装所有的包。

 Usage:

Compile the code for which you want to generate the coverage with the below options: 

CFLAGS: -fprofile-arcs -ftest-coverage

LFLAGS: -lgcov -coverage


userspace app:

        例如fio

        ./configure --extra-cflags="-fprofile-arcs -ftest-coverage"

                收集结构:

                lcov --capture --directory fio --output-file test.info

                生成页面:

                genhtml coverage.info --output-directory out

                例如iozone:

                gcc -O3 iozone_linux-AMD64.o libbif.o libasync.o -lrt -lpthread -lgcov -o iozone

         若生成失败,加上gcov的库-lgcov

        Kernel space:

                continue……

        不同语言的code coverage测试工具和方法,见附件。


如果是demon需要加一些特殊处理,函数exit加入一些东西。


Kernel:

    由于gcc4.8以及以上版本不支持,所以要使用4.7版本的gcc

    step1: 安装4.7 GCC

            ./contrib/download_prerequisites  
            mkdir build_gcc4.7 
            cd build_gcc4.7 
            ../configure --enable-checking=release --enable-languages=c,c++ --disable-multilib 
            make -j32
            make install 


你可能感兴趣的:(code,coverage,US)