成人打一炮免费视频,亚洲天堂视频在线观看,97视频久久久,日本japanese护士色高清,五月婷婷丁香,日韩精品一级无码毛片免费,国产欧美日韩精品网红剧情演绎

一種Linux內(nèi)核模塊的單元測(cè)試方法

文檔序號(hào):9349872閱讀:773來(lái)源:國(guó)知局
一種Linux內(nèi)核模塊的單元測(cè)試方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計(jì)算機(jī)系統(tǒng)及存儲(chǔ)技術(shù)領(lǐng)域,更具體地說(shuō),涉及一種Linux內(nèi)核模塊的單元測(cè)試方法。
【背景技術(shù)】
[0002]單元測(cè)試是軟件研發(fā)過(guò)程中的一個(gè)關(guān)鍵步驟,是對(duì)代碼質(zhì)量和產(chǎn)品質(zhì)量檢測(cè)的一個(gè)重要環(huán)節(jié)。
[0003]現(xiàn)有技術(shù)的Linux內(nèi)核模塊的單元測(cè)試方法通常是利用用戶(hù)態(tài)的單元測(cè)試框架完成的,而Linux內(nèi)核模塊是在內(nèi)核空間運(yùn)行的,因此,當(dāng)利用用戶(hù)態(tài)的單元測(cè)試框架對(duì)Linux內(nèi)核模塊進(jìn)行單元測(cè)試時(shí),存在測(cè)試準(zhǔn)確度、可靠性及覆蓋率等較低等一系列問(wèn)題。因此,現(xiàn)有技術(shù)中利用用戶(hù)態(tài)的單元測(cè)試框架實(shí)現(xiàn)的單元測(cè)試方法并不適用于Linux內(nèi)核模塊的單元測(cè)試。
[0004]綜上所述,如何提供一種適用于Linux內(nèi)核模塊的單元測(cè)試方法,是目前本領(lǐng)域技術(shù)人員亟待解決的問(wèn)題。

【發(fā)明內(nèi)容】

[0005]本發(fā)明的目的是提供一種Linux內(nèi)核模塊的單元測(cè)試方法,該方法適用于Linux內(nèi)核模塊。
[0006]—種Linux內(nèi)核模塊的單元測(cè)試方法,包括:
[0007]對(duì)被測(cè)模塊及單元測(cè)試模塊進(jìn)行編譯,其中,所述被測(cè)模塊包含所述單元測(cè)試模塊;
[0008]將所述被測(cè)模塊加載至內(nèi)核空間;
[0009]利用所述單元測(cè)試模塊對(duì)所述被測(cè)模塊進(jìn)行測(cè)試,得到測(cè)試結(jié)果。
[0010]優(yōu)選的,所述被測(cè)模塊包含所述單元測(cè)試模塊,包括:
[0011]所述單元測(cè)試模塊的外部接口編寫(xiě)在所述被測(cè)模塊的主函數(shù)流程中;
[0012]利用所述單元測(cè)試模塊對(duì)所述被測(cè)模塊進(jìn)行測(cè)試,包括:
[0013]通過(guò)所述單元測(cè)試模塊的外部接口調(diào)用所述單元測(cè)試模塊,并利用所述單元測(cè)試模塊對(duì)所述被測(cè)模塊進(jìn)行測(cè)試。
[0014]優(yōu)選的,所述單元測(cè)試模塊通過(guò)sysfs的接口方式提供其外部接口。
[0015]優(yōu)選的,利用所述單元測(cè)試模塊對(duì)所述被測(cè)模塊進(jìn)行測(cè)試,得到測(cè)試結(jié)果,包括:
[0016]利用所述單元測(cè)試模塊對(duì)所述被測(cè)模塊的特定模塊接口進(jìn)行測(cè)試,得到測(cè)試結(jié)果;所述測(cè)試結(jié)果包括:所述特定模塊接口的接口函數(shù)名、所述特定模塊接口的功能是否滿(mǎn)足要求以及所述Linux內(nèi)核模塊所屬的Linux內(nèi)核打印出的日志信息。
[0017]優(yōu)選的,利用所述單元測(cè)試模塊對(duì)所述被測(cè)模塊進(jìn)行測(cè)試,得到測(cè)試結(jié)果,包括:
[0018]利用所述單元測(cè)試模塊采用旁路測(cè)試的方法通過(guò)宏定義的方式對(duì)所述被測(cè)模塊進(jìn)行錯(cuò)誤注入,得到測(cè)試結(jié)果。
[0019]優(yōu)選的,得到所述測(cè)試結(jié)果之后,所述方法還包括:
[0020]判斷所述測(cè)試結(jié)果是否符合預(yù)設(shè)結(jié)果,如果符合,則證明所述被測(cè)模塊通過(guò)測(cè)試。
[0021]優(yōu)選的,在對(duì)所述被測(cè)模塊及單元測(cè)試模塊進(jìn)行編譯之前,還包括:
[0022]對(duì)所述被測(cè)模塊進(jìn)行功能初始化。
[0023]優(yōu)選的,所述方法還包括:
[0024]在所述被測(cè)模塊的主函數(shù)流程中加入條件判斷語(yǔ)句;并通過(guò)所述條件判斷語(yǔ)句確定是否需要利用所述單元測(cè)試模塊對(duì)所述被測(cè)模塊進(jìn)行測(cè)試。
[0025]本發(fā)明提供的一種Linux內(nèi)核模塊的單元測(cè)試方法,包括:對(duì)被測(cè)模塊及單元測(cè)試模塊進(jìn)行編譯,其中,所述被測(cè)模塊包含所述單元測(cè)試模塊;將所述被測(cè)模塊加載至內(nèi)核空間;利用所述單元測(cè)試模塊對(duì)所述被測(cè)模塊進(jìn)行測(cè)試,得到測(cè)試結(jié)果。與現(xiàn)有技術(shù)相比,本申請(qǐng)同時(shí)對(duì)被測(cè)模塊及單元測(cè)試模塊進(jìn)行編譯,并且被測(cè)模塊中包含單元測(cè)試模塊,進(jìn)一步將被測(cè)模塊加載至內(nèi)核空間進(jìn)行單元測(cè)試,符合了 Linux內(nèi)核模塊,即被測(cè)模塊是在內(nèi)核空間運(yùn)行的特點(diǎn),從而有效提高了測(cè)試準(zhǔn)確度、可靠性及覆蓋率等。
【附圖說(shuō)明】
[0026]為了更清楚地說(shuō)明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖僅僅是本發(fā)明的實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)提供的附圖獲得其他的附圖。
[0027]圖1為本發(fā)明實(shí)施例提供的本發(fā)明實(shí)施例提供的一種Linux內(nèi)核模塊的單元測(cè)試方法的流程圖。
【具體實(shí)施方式】
[0028]下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
[0029]請(qǐng)參閱圖1,其示出了本發(fā)明實(shí)施例提供的一種Linux內(nèi)核模塊的單元測(cè)試方法的流程圖,包括:
[0030]Sll:對(duì)被測(cè)模塊及單元測(cè)試模塊進(jìn)行編譯,其中,被測(cè)模塊包含單元測(cè)試模塊。
[0031]其中,被測(cè)模塊即為L(zhǎng)inux內(nèi)核模塊;而編譯則是將被測(cè)模塊及單元測(cè)試模塊所包含的代碼翻譯成等價(jià)的另一種語(yǔ)言的程序,以進(jìn)行單元測(cè)試。
[0032]S12:將被測(cè)模塊加載至內(nèi)核空間。
[0033]其中,加載這一動(dòng)作即為將被測(cè)模塊調(diào)到內(nèi)核空間,而內(nèi)核空間的具體概念為:Linux內(nèi)核模塊所屬的系統(tǒng),即Linux系統(tǒng)對(duì)自身進(jìn)行了劃分,一部分核心軟件獨(dú)立于普通應(yīng)用程序,運(yùn)行在較高的特權(quán)級(jí)別上,它們駐留在被保護(hù)的內(nèi)存空間上,擁有訪(fǎng)問(wèn)硬件設(shè)備的所有權(quán)限,Linux系統(tǒng)將此稱(chēng)為內(nèi)核空間。
[0034]S13:利用單元測(cè)試模塊對(duì)被測(cè)模塊進(jìn)行測(cè)試,得到測(cè)試結(jié)果。
[0035]本申請(qǐng)同時(shí)對(duì)被測(cè)模塊及單元測(cè)試模塊進(jìn)行編譯,并且被測(cè)模塊中包含單元測(cè)試模塊,進(jìn)一步將被測(cè)模塊加載至內(nèi)核空間進(jìn)行單元測(cè)試,符合了 Linux內(nèi)核模塊,即被測(cè)模塊是在內(nèi)核空間運(yùn)行的特點(diǎn),從而有效提高了測(cè)試準(zhǔn)確度、可靠性及覆蓋率等。
[0036]上述實(shí)施例提供的一種Linux內(nèi)核模塊的單元測(cè)試方法中,將單元測(cè)試模塊包含于被測(cè)模塊的方式可以根據(jù)實(shí)際需要進(jìn)行設(shè)定,優(yōu)選的一種為將單元測(cè)試模塊的外部接口編寫(xiě)在被測(cè)模塊的主函數(shù)流程中。由此,利用單元測(cè)試模塊對(duì)被測(cè)模塊進(jìn)行測(cè)試,則具體為:通過(guò)單元測(cè)試模塊的外部接口調(diào)用單元測(cè)試模塊,并利用單元測(cè)試模塊對(duì)被測(cè)模塊進(jìn)行測(cè)試。
[0037]本發(fā)明實(shí)施例所提供的一種Linux內(nèi)核模塊的單元測(cè)試方法采用常用的編譯方法,區(qū)別僅僅是,將單元測(cè)試模塊的外部接口編寫(xiě)在被測(cè)模塊的主函數(shù)流程中,由此,能夠在減少工作量的同時(shí)實(shí)現(xiàn)本發(fā)明實(shí)施例所提供的一種Linux內(nèi)核模塊的單元測(cè)試方法所能夠?qū)崿F(xiàn)的有益效果。而當(dāng)利用單元測(cè)試模塊對(duì)被測(cè)模塊進(jìn)行測(cè)試時(shí),只需通過(guò)調(diào)用單元測(cè)試的外部接口調(diào)用單元測(cè)試模塊,簡(jiǎn)便易行。
[0038]上述實(shí)施例提供的一種Linux內(nèi)核模塊的單元測(cè)試方法中,單元測(cè)試模塊可以通過(guò)sysfs的接口方式提供其外部接口。
[0039]其中,sysfs是一種虛擬文件系統(tǒng),這個(gè)文件系統(tǒng)不僅可以把硬件設(shè)備和驅(qū)動(dòng)程序的信息從Linux內(nèi)核輸出至用戶(hù)空間,也可以用來(lái)對(duì)硬件設(shè)備和驅(qū)動(dòng)程序做設(shè)置。與本發(fā)明實(shí)施例提供的上述技術(shù)特征綜合考慮,本發(fā)明實(shí)施例提供的一種Linux內(nèi)核模塊的單元測(cè)試方法能夠在用戶(hù)空間和內(nèi)核空間之間架起一個(gè)測(cè)試橋梁,使得測(cè)試單元模塊對(duì)于被測(cè)模塊的測(cè)試既可以在內(nèi)核態(tài)時(shí)進(jìn)行,也可以通過(guò)sysfs的接口方式提供的外部接口在命令行進(jìn)行。即,能夠通過(guò)多種方式實(shí)現(xiàn)對(duì)于被測(cè)模塊的測(cè)試,而具體通過(guò)哪種方式根據(jù)實(shí)際情況進(jìn)行確定,這使得本發(fā)明實(shí)施例提供的單元測(cè)試方法更加完善。
[0040]上述實(shí)施例提供的一種Linux內(nèi)核模塊的單元測(cè)試方法中,利用單元測(cè)試模塊對(duì)被測(cè)模塊進(jìn)行測(cè)試,得到測(cè)試結(jié)果,可以包括:
[0041]利用單元測(cè)試模塊對(duì)被測(cè)模塊的特定模塊接口進(jìn)行測(cè)試,得到測(cè)試結(jié)果;測(cè)試結(jié)果包括:特定模塊接口的接口函數(shù)名、特定模塊接口的功能是否滿(mǎn)足要求以及Linux內(nèi)核模塊所屬的Linux內(nèi)核打印出的日志信息。
[0042]其中,特定模塊接口是根據(jù)實(shí)際需要進(jìn)行確定的,其與單元測(cè)試模塊的設(shè)置相對(duì)應(yīng);特定模塊接口的數(shù)量可以是一個(gè),也可以是多個(gè)。通過(guò)單元測(cè)試模塊對(duì)被測(cè)模塊
當(dāng)前第1頁(yè)1 2 
網(wǎng)友詢(xún)問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1