ARM-linux下的代码覆盖率报告生成

        最近做arm-linux 下的项目,需要生成单元测试代码覆盖率报告。百度查到的基本都是x86架构下的生成方式,编译添加gcc的-g -Wall --coverage选项,并使用lcov,genhtml配合生成html格式的代码测试覆盖率报告,这里就不多说了,大家问度娘都可以找到。但是在把代码用交叉编译工具编译后,放到ARM-linux下运行后,出现一些问题。下面简单介绍一下。

       1. 在把可执行文件下载到ARM-linux上执行程序后没有生成*.gcda文件,后来经过研究,程序生成了对应的*.cda文件,生成路径和在x86宿主机的文件路径完全一样,这块需要注意。举例说明一下,比如:宿主机的源代码在/root/Desktop/test/目录下,编译后的可执行文件下载到ARM-linux后,执行测试后,生成的*.gcda文件就在ARM-linux下的/root/Desktop/test/目录下,如果该目录不存在,会自动创建该目录,并把生成的文件存放到该目录。

       2. 测试完成后,需要把*.gcda文件回传到宿主机,并和编译是的源代码放在同一个目录下,便于和编译时生成的*.gcno文件一起生成报告,这时如果宿主机的x86的gcc编译器版本和arm-linux-gcc的版本不一致的话,会出现一些麻烦,使用宿主机测试程序可以使用lcov的报告生成命令就会报错,报版本错误,比如:version ‘405*’ perfer '504*',这是由于我的宿主机的gcc版本是5.4而arm-linux-gcc的版本是4.5导致的,这时可以使用lcov的命令选项--gcov-tool 添加arm-linux-gcov的完整路径来指定要求使用的gcov工具,这样报错问题就可以解决问题,命令如:lcov -c -d . --gcov-tool /usr/local/bin/arm-linux-gcov -o app.info。

      注意:在安装lcov后,默认是不打开分支覆盖率统计功能的,需要自己去修改配置文件打开,配置文件为/etc/lcovrc,打开文件后把lcov_branch_coverage改为1.

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值