一种用户态网络文件系统的单元测试方法及装置制造方法及图纸

技术编号:17485996 阅读:166 留言:0更新日期:2018-03-17 10:23
本发明专利技术公开了一种用户态网络文件系统的单元测试方法及装置,通过预先部署NFS‑Ganesha用户态网络文件系统源码环境和编译工具;在NFS‑Ganesha用户态网络文件系统源代码中引入CUnit测试工具依赖函数库和lib库文件,并编写代码引入开关选项和CUnit库函数、lib库文件;建立单元测试目录,编写单元测试CmakeLists文本文件,引入被测函数代码,编写被测代码测试用例;打开单元测试开关,通过cmake进行NFS‑Ganesha源代码外部编译;在编译完成后,生成单元测试结果。本申请能够提高文件系统服务代码质量,更加高效、易于管理维护,并且可以实现交互式操作。

A unit test method and device for a user state network file system

The invention discloses a method and device for unit testing user network file system, through the pre deployment of NFS Ganesha user network file system source code and compile tools in NFS environment; Ganesha user network file system source code into CUnit testing tool dependent function library and lib library file, and write the code into the switch option and CUnit library and lib library files; establish a unit test directory, writing unit tests CmakeLists text files, the introduction of the measured function code, written test code test cases; open the unit test switch, NFS external Ganesha source code compiled by cmake; after the compilation is done, generating unit test results. This application can improve the quality of the file system service code, is more efficient, easy to manage and maintenance, and can achieve interactive operation.

【技术实现步骤摘要】
一种用户态网络文件系统的单元测试方法及装置
本专利技术涉及网络文件
,特别是涉及一种用户态网络文件系统的单元测试方法及装置。
技术介绍
随着大数据、云计算、海量存储在企业信息系统中的广泛应用和深入发展,用户的核心存储应用数量越来越多,其中通过网络进行文件数据交互,是人们普遍采用的方式。随着企业数据越来越庞大,用户对数据的传输性能和稳定性要求越来越高,存储服务器各个模块软件的代码质量已经成为软件使用者和开发者关注的重点。因此,提供一种快速、可靠、易于实施和维护的网络文件系统代码质量测试方法显得尤为重要。软件测试是一种高效的代码监测和解决功能模块缺陷与故障的重要手段。然而现有技术中针对开源代码NFS-Ganesha用户态网络文件系统的单元测试比较少,代码质量需要进行完善。NFS(NetworkFileSystem)即内核态网络文件系统,是FreeBSD支持的文件系统中的一种,它允许网络中的计算机之间通过TCP/IP网络共享资源。内核态是指CPU可以访问内存所有数据,包括外围设备,例如硬盘、网卡等,CPU也可以将自己从一个程序切换到另一个程序。用户态是指只能受限的访问内存,且不允许访问外围设备,占用CPU的能力被剥夺,CPU资源可以被其他程序获取。在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,就像访问本地文件一样。NFS-Ganesha是用户态网络文件系统,属于开源项目,在系统服务故障场景下,相比于内核态NFS具有较好管理性和可维护性,并且用户态NFS-Ganesha易于实施和维护,因此,目前大数据海量分布式对象存储NFS-Ganesha应用前景很大。目前,由Google公司提供的gtest测试框架已经趋于成熟,主要针对C++测试而生成的。但是在Linux内核系统开发领域,特别是文件系统层,主要以C代码开发,由于文件系统层依赖底层内核系统,并且没有专门针对用户态网络文件系统NFS-Ganesha的单元测试框架,网络文件系统软件在易维护性和易测试性方面都比较欠缺,因而导致了对网络文件系统单元测试的不足,增加了代码维护成本。
技术实现思路
本专利技术的目的是提供一种用户态网络文件系统的单元测试方法及装置,以解决现有对网络系统单元测试匮乏、代码维护成本较高的问题。为解决上述技术问题,本专利技术提供一种用户态网络文件系统的单元测试方法,包括:预先部署NFS-Ganesha用户态网络文件系统源码环境和编译工具;在NFS-Ganesha用户态网络文件系统源代码中引入CUnit测试工具依赖函数库和lib库文件,并编写代码引入开关选项和CUnit库函数、lib库文件,以实现自动化编译部署单元测试套件;建立单元测试目录,编写单元测试CmakeLists文本文件,引入被测函数代码,编写被测代码测试用例;打开单元测试开关,通过cmake进行NFS-Ganesha源代码外部编译,以实现自动化编译NFS-Ganesha源码和单元测试模块编译;在编译完成后,生成单元测试结果。可选地,所述NFS-Ganesha用户态网络文件系统源码环境为CentOS7.2版本环境,所述编译工具采用cmake-2.6.4、make-3.82、automake-1.13.4版本。可选地,引入Cunit测试工具、引入开关选项的位置为NFS-Ganesha源码文件中CMakeLists.txt中,引入CUnit库函数、lib库文件的位置为NFS-Ganesha源码文件中cmake子目录中的单元中。可选地,所述编写被测代码测试用例包括:建立测试用例,编写测试函数代码用例;将功能满足预设条件的测试方法归类为同一个数组里,以便指向同一个测试包;根据功能或模块的不同,建立多个测试包;建立测试方法的总调用方法,以完成被测代码测试用例的编写。可选地,在所述生成单元测试结果之后还包括:对所述单元测试结果进行分析。本专利技术还提供了一种用户态网络文件系统的单元测试装置,包括:部署模块,用于预先部署NFS-Ganesha用户态网络文件系统源码环境和编译工具;第一编译模块,用于在NFS-Ganesha用户态网络文件系统源代码中引入CUnit测试工具依赖函数库和lib库文件,并编写代码引入开关选项和CUnit库函数、lib库文件,以实现自动化编译部署单元测试套件;建立模块,用于建立单元测试目录,编写单元测试CmakeLists文本文件,引入被测函数代码,编写被测代码测试用例;第二编译模块,用于打开单元测试开关,通过cmake进行NFS-Ganesha源代码外部编译,以实现自动化编译NFS-Ganesha源码和单元测试模块编译;生成模块,用于在编译完成后,生成单元测试结果。可选地,所述NFS-Ganesha用户态网络文件系统源码环境为CentOS7.2版本环境,所述编译工具采用cmake-2.6.4、make-3.82、automake-1.13.4版本。可选地,引入Cunit测试工具、引入开关选项的位置为NFS-Ganesha源码文件中CMakeLists.txt中,引入CUnit库函数、lib库文件的位置为NFS-Ganesha源码文件中cmake子目录中的单元中。可选地,所述建立模块具体用于:建立测试用例,编写测试函数代码用例;将功能满足预设条件的测试方法归类为同一个数组里,以便指向同一个测试包;根据功能或模块的不同,建立多个测试包;建立测试方法的总调用方法,以完成被测代码测试用例的编写。可选地,还包括:分析模块,用于在所述生成单元测试结果之后,对所述单元测试结果进行分析。本专利技术所提供的用户态网络文件系统的单元测试方法及装置,通过预先部署NFS-Ganesha用户态网络文件系统源码环境和编译工具;在NFS-Ganesha用户态网络文件系统源代码中引入CUnit测试工具依赖函数库和lib库文件,并编写代码引入开关选项和CUnit库函数、lib库文件,以实现自动化编译部署单元测试套件;建立单元测试目录,编写单元测试CmakeLists文本文件,引入被测函数代码,编写被测代码测试用例;打开单元测试开关,通过cmake进行NFS-Ganesha源代码外部编译,以实现自动化编译NFS-Ganesha源码和单元测试模块编译;在编译完成后,生成单元测试结果。本申请解决了现有单元测试技术中对用户态网络文件系统NFS-Ganesha代码单元测试匮乏的问题,能够提高文件系统服务代码质量,更加高效、易于管理维护,并且可以实现交互式操作。附图说明为了更清楚的说明本专利技术实施例或现有技术的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本专利技术所提供的用户态网络文件系统的单元测试方法的一种具体实施方式的流程图;图2为本专利技术实施例中编写被测代码测试用例的具体实施方式流程图;图3为用户态网络文件系统的单元测试框架示意图;图4为CUnit单元测试框架示意图;图5为本专利技术所提供的用户态网络文件系统的单元测试方法的另一种具体实施方式的流程图;图6为本专利技术实施例提供的用户态网络文件系统的单元测试装置的结构框图。具本文档来自技高网
...
一种用户态网络文件系统的单元测试方法及装置

【技术保护点】
一种用户态网络文件系统的单元测试方法,其特征在于,包括:预先部署NFS‑Ganesha用户态网络文件系统源码环境和编译工具;在NFS‑Ganesha用户态网络文件系统源代码中引入CUnit测试工具依赖函数库和lib库文件,并编写代码引入开关选项和CUnit库函数、lib库文件,以实现自动化编译部署单元测试套件;建立单元测试目录,编写单元测试CmakeLists文本文件,引入被测函数代码,编写被测代码测试用例;打开单元测试开关,通过cmake进行NFS‑Ganesha源代码外部编译,以实现自动化编译NFS‑Ganesha源码和单元测试模块编译;在编译完成后,生成单元测试结果。

【技术特征摘要】
1.一种用户态网络文件系统的单元测试方法,其特征在于,包括:预先部署NFS-Ganesha用户态网络文件系统源码环境和编译工具;在NFS-Ganesha用户态网络文件系统源代码中引入CUnit测试工具依赖函数库和lib库文件,并编写代码引入开关选项和CUnit库函数、lib库文件,以实现自动化编译部署单元测试套件;建立单元测试目录,编写单元测试CmakeLists文本文件,引入被测函数代码,编写被测代码测试用例;打开单元测试开关,通过cmake进行NFS-Ganesha源代码外部编译,以实现自动化编译NFS-Ganesha源码和单元测试模块编译;在编译完成后,生成单元测试结果。2.如权利要求1所述的用户态网络文件系统的单元测试方法,其特征在于,所述NFS-Ganesha用户态网络文件系统源码环境为CentOS7.2版本环境,所述编译工具采用cmake-2.6.4、make-3.82、automake-1.13.4版本。3.如权利要求1所述的用户态网络文件系统的单元测试方法,其特征在于,引入Cunit测试工具、引入开关选项的位置为NFS-Ganesha源码文件中CMakeLists.txt中,引入CUnit库函数、lib库文件的位置为NFS-Ganesha源码文件中cmake子目录中的单元中。4.如权利要求1至3任一项所述的用户态网络文件系统的单元测试方法,其特征在于,所述编写被测代码测试用例包括:建立测试用例,编写测试函数代码用例;将功能满足预设条件的测试方法归类为同一个数组里,以便指向同一个测试包;根据功能或模块的不同,建立多个测试包;建立测试方法的总调用方法,以完成被测代码测试用例的编写。5.如权利要求4所述的用户态网络文件系统的单元测试方法,其特征在于,在所述生成单元测试结果之后还包括:对所述单元测试结果进行分析。6.一种用户态网络文件系统的单元测试装置,其...

【专利技术属性】
技术研发人员:臧林劼
申请(专利权)人:郑州云海信息技术有限公司
类型:发明
国别省市:河南,41

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1