[发明专利]一种基于lcov实现增量代码覆盖率的检测方法、装置及设备在审

专利信息
申请号: 201911125848.6 申请日: 2019-11-15
公开(公告)号: CN110928776A 公开(公告)日: 2020-03-27
发明(设计)人: 刘练;陈国庆;谢强 申请(专利权)人: 武汉极意网络科技有限公司
主分类号: G06F11/36 分类号: G06F11/36;G06F8/77;G06F8/41;G06F8/61
代理公司: 武汉知产时代知识产权代理有限公司 42238 代理人: 易滨
地址: 430000 湖北省武汉市东湖开发区大学*** 国省代码: 湖北;42
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 基于 lcov 实现 增量 代码 覆盖率 检测 方法 装置 设备
【权利要求书】:

1.一种基于lcov来实现增量代码覆盖率的检测方法,其特征在于,包括以下步骤:

S1、通过Xcode工具来配置编译选项,进入到编译进程中,生成应用程序安装包;其中,将生成的应用程序安装包推送给前端进行安装和运行;

S2、将编译过程中生成的“.gcno”文件进行打包压缩后上传到服务端;

S3、基于步骤S1,在应用程序的运行过程中,调用覆盖率分发函数,生成对应的“.gcda”文件,在运行结束后,从应用程序的沙盒中获取最终生成的“.gcda”文件,在对其进行压缩后,上传到服务端;

S4、在服务端对接收到的“.gcno”文件和“.gcda”文件进行整合后,通过lcov工具,基于整合后的文件生成“.info”文件;其中,生成的“.info”文件将上传至Git-开源的分布式版本控制系统;

S5、调用Git diff命令,将步骤S4生成“.info”文件与基线版本的“.info”文件进行比较,得到增量“.info”文件;

S6、通过genhtml工具,基于所述增量“.info”文件生成覆盖率报告;根据所述覆盖率报告,得到增量代码覆盖率的检测结果。

2.根据权利要求1所述的实现增量代码覆盖率的检测方法,其特征在于,步骤S2中生成的“.gcno”文件中,保存着计数插桩位置和源文件之间的关系,其中,所述计数插桩位置包括函数入口函数、以及分支函数代码行;在插入计数指令的同时即执行Basic Block-基本程序块,基本程序块内的所有指令将进一步顺序执行,当前由编译器将计数指令和程序块的执行数据写入“.gcno”文件。

3.根据权利要求2所述的实现增量代码覆盖率的检测方法,其特征在于,由编译器将计数指令和程序块的执行数据写入“.gcno”文件的过程为:

首先,基于“.gcno”文件包括的组成部分:文件结构、函数结构、Basic Block结构和Basic Block行结构,写入用于识别“.gcno文件”和“.gcda文件”的标识;然后,根据当前写入的标识遍历写入文件地址、函数名和函数在源文件中的起止行数;最后,标记BasicBlock-基本程序块之间便于后续记录函数执行情况的跳转关系。

4.根据权利要求1所述的实现增量代码覆盖率的检测方法,其特征在于,步骤S3中,覆盖率分发函数的入口分发函数是__gcov_flush(),其中,通过调用__llvm_gcov_flush函数和__llvm_gcov_writeout函数,来向“.gcda”文件中写入覆盖率信息。

5.根据权利要求4所述的实现增量代码覆盖率的检测方法,其特征在于,调用__llvm_gcov_writeout函数来向“.gcda”文件中写入覆盖率信息的过程为:

首先,生成对应源文件的“.gcda”文件;

其次,写入用于识别“.gcno文件”和“.gcda文件”的标识;

其次,循环执行llvm_gcda_emit_function函数向“.gcda”文件写入用来标记文件格式的函数信息;所述函数信息包括函数的入口行、出口行、指令代码行;

其次,循环执行llvm_gcda_emit_arcs命令向“.gcda”文件写入Basic Block的执行信息;

其次,调用llvm_gcda_summary_info命令,向“.gcda”文件中写入校验信息;

最后,调用llvm_gcda_end_file命令,结束当前的运行过程。

6.根据权利要求5所述的实现增量代码覆盖率的检测方法,其特征在于,步骤S3中,在应用程序运行结束后,通过HTTP接口将“.gcda”文件上传到服务端。

7.根据权利要求1所述的实现增量代码覆盖率的检测方法,其特征在于,步骤S4中,通过lcov工具生成“.info”文件中包括最终所需得到的覆盖率检测数据,所述覆盖率检测数据包括源码路径、函数名、函数执行次数、函数总数、函数在源文件的位置、行号、行执行次数和行总数。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于武汉极意网络科技有限公司,未经武汉极意网络科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201911125848.6/1.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top