作者:蓝白云
说明:本文参考的源代码版本为lcov 1.9
Lcov中的geninfo(Perl脚本)将gCov生成*.bb/bbg(3.4以上版本变成了*.gcno)文件和*.da(3.4以上版本变成了*.gcda)文件转换成*.info文本格式,然后再通过genhtml将*.info生成*.html网页覆盖率报告。本文介绍*.info的文本中的内容代表什么含义。
*.info文件包含一个或多个源文件所对应的覆盖率信息,一个源文件对应一条“记录”,“记录”中的详细格式如下:
TN: <Test name> 表示测试用例名称,即通过geninfo中的--test-name选项来命名的测试用例名称,默认为空;
SF: <File name> 表示带全路径的源代码文件名;
FN: <函数启始行号>, <函数名>; <函数有效行总数>; <函数有效行总数中被执行个数>
FNDA: <函数被执行的次数>, <函数名>; <函数有效行总数>; <函数有效行总数中被执行个数>
FNF: <函数总数>
FNH: <函数总数中被执行到的个数>
BRDA: <分支所在行号>, <对应的代码块编号>, <分支编号>, <执行的次数>
BRF: <分支总数>
BRH: <分支总数中被执行到的个数>
DA: <代码行号>, <当前行被执行到的次数>
LF: < counts> 代码有效行总数
LH: <counts> 代码有效行总数中被执行到的个数
end_of_record 一条“记录”结束符