[发明专利]一种Linux内核模块的单元测试方法有效
申请号: | 201510609496.7 | 申请日: | 2015-09-22 |
公开(公告)号: | CN105068937B | 公开(公告)日: | 2018-09-28 |
发明(设计)人: | 蔡丰龙 | 申请(专利权)人: | 浪潮(北京)电子信息产业有限公司 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 北京集佳知识产权代理有限公司 11227 | 代理人: | 罗满 |
地址: | 100085 北京市海*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 linux 内核 模块 单元测试 方法 | ||
本发明公开了一种Linux内核模块的单元测试方法,包括:对被测模块及单元测试模块进行编译,其中,所述被测模块包含所述单元测试模块;将所述被测模块加载至内核空间;利用所述单元测试模块对所述被测模块进行测试,得到测试结果。与现有技术相比,本申请同时对被测模块及单元测试模块进行编译,并且被测模块中包含单元测试模块,进一步将被测模块加载至内核空间进行单元测试,符合了Linux内核模块,即被测模块是在内核空间运行的特点,从而有效提高了测试准确度、可靠性及覆盖率等。
技术领域
本发明涉及计算机系统及存储技术领域,更具体地说,涉及一种Linux内核模块的单元测试方法。
背景技术
单元测试是软件研发过程中的一个关键步骤,是对代码质量和产品质量检测的一个重要环节。
现有技术的Linux内核模块的单元测试方法通常是利用用户态的单元测试框架完成的,而Linux内核模块是在内核空间运行的,因此,当利用用户态的单元测试框架对Linux内核模块进行单元测试时,存在测试准确度、可靠性及覆盖率等较低等一系列问题。因此,现有技术中利用用户态的单元测试框架实现的单元测试方法并不适用于Linux内核模块的单元测试。
综上所述,如何提供一种适用于Linux内核模块的单元测试方法,是目前本领域技术人员亟待解决的问题。
发明内容
本发明的目的是提供一种Linux内核模块的单元测试方法,该方法适用于Linux内核模块。
一种Linux内核模块的单元测试方法,包括:
对被测模块及单元测试模块进行编译,其中,所述被测模块包含所述单元测试模块;
将所述被测模块加载至内核空间;
利用所述单元测试模块对所述被测模块进行测试,得到测试结果。
优选的,所述被测模块包含所述单元测试模块,包括:
所述单元测试模块的外部接口编写在所述被测模块的主函数流程中;
利用所述单元测试模块对所述被测模块进行测试,包括:
通过所述单元测试模块的外部接口调用所述单元测试模块,并利用所述单元测试模块对所述被测模块进行测试。
优选的,所述单元测试模块通过sysfs的接口方式提供其外部接口。
优选的,利用所述单元测试模块对所述被测模块进行测试,得到测试结果,包括:
利用所述单元测试模块对所述被测模块的特定模块接口进行测试,得到测试结果;所述测试结果包括:所述特定模块接口的接口函数名、所述特定模块接口的功能是否满足要求以及所述Linux内核模块所属的Linux内核打印出的日志信息。
优选的,利用所述单元测试模块对所述被测模块进行测试,得到测试结果,包括:
利用所述单元测试模块采用旁路测试的方法通过宏定义的方式对所述被测模块进行错误注入,得到测试结果。
优选的,得到所述测试结果之后,所述方法还包括:
判断所述测试结果是否符合预设结果,如果符合,则证明所述被测模块通过测试。
优选的,在对所述被测模块及单元测试模块进行编译之前,还包括:
对所述被测模块进行功能初始化。
优选的,所述方法还包括:
在所述被测模块的主函数流程中加入条件判断语句;并通过所述条件判断语句确定是否需要利用所述单元测试模块对所述被测模块进行测试。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浪潮(北京)电子信息产业有限公司,未经浪潮(北京)电子信息产业有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510609496.7/2.html,转载请声明来源钻瓜专利网。