gcov与lcov实现覆盖率测试

1.lcov获取与安装

wget http://downloads.sourceforge.net/ltp/lcov-1.10.tar.gz
tar zxvf lcov-1.10.tar.gz
cd lcov-1.10/
make install

2.测试码

test.c
#include <stdio.h>
int test(int start)
{
    int i,sum=start;
    for( i = 0; i < 45; i++ )
    {   
        sum++;
    }   
    if(sum == 45) 
    {   
        printf("success!\n");
    }   
    else
    {   
        printf("failed!\n");
    }   
    return 0;
}

testgcov.c
#include <stdio.h>
extern int test(int start);
int main()
{
    test(0);
    test(1);
    return 0;
}

3.Makefile文件

testgcov:%:%.c test.c
    gcc -fprofile-arcs -ftest-coverage -o $@ $^

4.用例执行并生成覆盖率文件脚本build.sh

make
./testgcov
gcov test.c
lcov -d . -c -o test.info
genhtml -o output test.info

5.生成覆盖率文件在output目录中,打开index.html即可查看,效果图如下:

6.清除生成文件脚本clean.sh

rm -rf *.gcda
rm -rf *.gcno
rm -rf testgcov
rm -rf test.info
rm -rf output