[发明专利]一种代码覆盖率统计方法、系统、装置及计算机存储介质在审
申请号: | 201710936141.8 | 申请日: | 2017-10-10 |
公开(公告)号: | CN107729239A | 公开(公告)日: | 2018-02-23 |
发明(设计)人: | 臧林劼 | 申请(专利权)人: | 郑州云海信息技术有限公司 |
主分类号: | G06F11/36 | 分类号: | G06F11/36;G06F8/41 |
代理公司: | 北京集佳知识产权代理有限公司11227 | 代理人: | 罗满 |
地址: | 450018 河南省郑州市*** | 国省代码: | 河南;41 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 代码 覆盖率 统计 方法 系统 装置 计算机 存储 介质 | ||
技术领域
本发明涉及代码质量测试领域,特别是涉及一种代码覆盖率统计方法、系统、装置及计算机存储介质。
背景技术
NFS-Ganesha(Network File System user-space,用户态网络文件系统)是指只能受限的访问内存,不能访问硬盘、网卡等外围设备,占用CPU(Central Processing Unit,中央处理器)的能力被剥夺,CPU资源可以被其他程序获取的网络文件系统。在系统服务出现故障的场景下,相比于NFS(Network File System,内核态网络文件系统),NFS-Ganesha具有较好管理性和可维护性,从而在大数据海量分布式对象存储的场景中具有广泛的应用前景。
具体地,NFS-Ganesha属于开源项目,其代码属于开源代码,开源代码的质量需要进行不断的完善。现有技术中通常将代码覆盖率作为衡量代码质量的准则,代码覆盖率描述系统中代码被测试的比例和程度,代码覆盖率越高代码的质量越高。然而现有技术中,没有针对NFS-Ganesha的代码覆盖率统计方法,从而无法根据代码覆盖率统计结果来完善NFS-Ganesha的代码质量,使得NFS-Ganesha的易维护性和易测试性较差,增加了代码维护成本。
因此,如何提供一种解决上述技术问题的方案是本领域的技术人员目前需要解决的问题。
发明内容
本发明的目的是提供一种代码覆盖率统计方法、系统、装置及计算机存储介质,实现了编译NFS-Ganesha源码的同时自动化进行代码覆盖率统计,有助于用户根据得到的代码覆盖率统计数据来完善NFS-Ganesha的代码质量,提高了NFS-Ganesha的易维护性和易测试性,降低了代码维护成本。
为解决上述技术问题,本发明提供了一种代码覆盖率统计方法,应用于用户态网络文件系统NFS-Ganesha,包括:
获取编译运行正确的NFS-Ganesha源码,并在所述NFS-Ganesha源码中添加gcov/lcov函数库、genhtml函数库和lib库文件;
在所述NFS-Ganesha源码中添加用于指示编译时自动加载所述函数库和所述lib库文件的开关选项和预先设定的编译参数;
所述开关选项为打开状态且所述编译参数添加完毕后,根据用户的编译命令编译所述NFS-Ganesha源码生成.gcno文件,并运行编译后的所述NFS-Ganesha源码生成.gcda文件。
优选地,所述获取编译运行正确的NFS-Ganesha源码的过程具体为:
接收用户的选择指令,并根据所述选择指令确定NFS-Ganesha源码环境、编译工具和NFS-Ganesha源码;
通过所述编译工具在外部编译目录编译所述NFS-Ganesha源码,根据编译结果获取编译运行正确的NFS-Ganesha源码。
优选地,所述编译工具为cmake;
则所述在所述NFS-Ganesha源码中添加gcov/lcov函数库、genhtml函数库和lib库文件的过程具体为:
在所述NFS-Ganesha源码中的cmake子目录中的modules中添加gcov/lcov函数库、genhtml函数库和lib库文件;
则所述在所述NFS-Ganesha源码中添加用于指示编译时自动加载所述函数库和所述lib库文件的开关选项和预先设定的编译参数的过程具体为:
在所述NFS-Ganesha源码中的CMakeLists.txt文件中添加用于指示编译时自动加载所述函数库和所述lib库文件的开关选项和预先设定的编译参数。
优选地,所述预先设定的编译参数包括编译选项和链接选项。
优选地,所述添加编译选项的过程具体为:
当所述CMakeLists.txt文件为手动编写的CMakeLists.txt文件时,根据用户的添加指令添加所述编译选项;
当所述CMakeLists.txt文件为自动生成的CMakeLists.txt文件时,运行./configure–h,通过设置环境变量添加所述编译选项。
优选地,该方法还包括:
接收用户的lcov命令,并根据所述lcov命令、生成的所述.gcno文件和生成的所述.gcda文件获取所述NFS-Ganesha源码的整体代码覆盖情况。
优选地,该方法还包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于郑州云海信息技术有限公司,未经郑州云海信息技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710936141.8/2.html,转载请声明来源钻瓜专利网。
- 上一篇:高压开关柜局放在线监测装置
- 下一篇:用于直流电气母线的电弧故障检测装备