欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

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

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

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

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