go語(yǔ)言目標(biāo)檢測(cè) go語(yǔ)言編譯成目標(biāo)文件命令

微機(jī)test函數(shù)作用

Go語(yǔ)言自帶了 testing 測(cè)試包,可以進(jìn)行自動(dòng)化的單元測(cè)試,輸出結(jié)果驗(yàn)證,并且可以測(cè)試性能。

公司主營(yíng)業(yè)務(wù):成都網(wǎng)站制作、網(wǎng)站建設(shè)、外貿(mào)網(wǎng)站建設(shè)、移動(dòng)網(wǎng)站開發(fā)等業(yè)務(wù)。幫助企業(yè)客戶真正實(shí)現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競(jìng)爭(zhēng)能力。創(chuàng)新互聯(lián)建站是一支青春激揚(yáng)、勤奮敬業(yè)、活力青春激揚(yáng)、勤奮敬業(yè)、活力澎湃、和諧高效的團(tuán)隊(duì)。公司秉承以“開放、自由、嚴(yán)謹(jǐn)、自律”為核心的企業(yè)文化,感謝他們對(duì)我們的高要求,感謝他們從不同領(lǐng)域給我們帶來(lái)的挑戰(zhàn),讓我們激情的團(tuán)隊(duì)有機(jī)會(huì)用頭腦與智慧不斷的給客戶帶來(lái)驚喜。創(chuàng)新互聯(lián)建站推出安寧免費(fèi)做網(wǎng)站回饋大家。

為什么需要測(cè)試

完善的測(cè)試體系,能夠提高開發(fā)的效率,當(dāng)項(xiàng)目足夠復(fù)雜的時(shí)候,想要保證盡可能的減少 bug,有兩種有效的方式分別是代碼審核和測(cè)試,Go語(yǔ)言中提供了 testing 包來(lái)實(shí)現(xiàn)單元測(cè)試功能。

測(cè)試規(guī)則

要開始一個(gè)單元測(cè)試,需要準(zhǔn)備一個(gè) go 源碼文件,在命名文件時(shí)文件名必須以_test.go結(jié)尾,單元測(cè)試源碼文件可以由多個(gè)測(cè)試用例(可以理解為函數(shù))組成,每個(gè)測(cè)試用例的名稱需要以 Test 為前綴,例如:

func TestXxx( t *testing.T ){

//......

}

GO語(yǔ)言(二十九):模糊測(cè)試(下)-

語(yǔ)料庫(kù)文件以特殊格式編碼。這是種子語(yǔ)料庫(kù)和生成語(yǔ)料庫(kù)的相同格式。

下面是一個(gè)語(yǔ)料庫(kù)文件的例子:

第一行用于通知模糊引擎文件的編碼版本。雖然目前沒有計(jì)劃未來(lái)版本的編碼格式,但設(shè)計(jì)必須支持這種可能性。

下面的每一行都是構(gòu)成語(yǔ)料庫(kù)條目的值,如果需要,可以直接復(fù)制到 Go 代碼中。

在上面的示例中,我們?cè)?a []byte后跟一個(gè)int64。這些類型必須按順序與模糊測(cè)試參數(shù)完全匹配。這些類型的模糊目標(biāo)如下所示:

指定您自己的種子語(yǔ)料庫(kù)值的最簡(jiǎn)單方法是使用該 (*testing.F).Add方法。在上面的示例中,它看起來(lái)像這樣:

但是,您可能有較大的二進(jìn)制文件,您不希望將其作為代碼復(fù)制到您的測(cè)試中,而是作為單獨(dú)的種子語(yǔ)料庫(kù)條目保留在 testdata/fuzz/{FuzzTestName} 目錄中。golang.org/x/tools/cmd/file2fuzz 上的file2fuzz工具可用于將這些二進(jìn)制文件轉(zhuǎn)換為為[]byte.

要使用此工具:

語(yǔ)料庫(kù)條目:語(yǔ)料庫(kù) 中的一個(gè)輸入,可以在模糊測(cè)試時(shí)使用。這可以是特殊格式的文件,也可以是對(duì) (*testing.F).Add。

覆蓋指導(dǎo): 一種模糊測(cè)試方法,它使用代碼覆蓋范圍的擴(kuò)展來(lái)確定哪些語(yǔ)料庫(kù)條目值得保留以備將來(lái)使用。

失敗的輸入:失敗的輸入是一個(gè)語(yǔ)料庫(kù)條目,當(dāng)針對(duì) 模糊目標(biāo)運(yùn)行時(shí)會(huì)導(dǎo)致錯(cuò)誤或恐慌。

fuzz target: 模糊測(cè)試的目標(biāo)功能,在模糊測(cè)試時(shí)對(duì)語(yǔ)料庫(kù)條目和生成的值執(zhí)行。它通過將函數(shù)傳遞給 (*testing.F).Fuzz實(shí)現(xiàn)。

fuzz test: 測(cè)試文件中的一個(gè)被命名為func FuzzXxx(*testing.F)的函數(shù),可用于模糊測(cè)試。

fuzzing: 一種自動(dòng)化測(cè)試,它不斷地操縱程序的輸入,以發(fā)現(xiàn)代碼可能容易受到的錯(cuò)誤或漏洞等問題。

fuzzing arguments: 將傳遞給 模糊測(cè)試目標(biāo)的參數(shù),并由mutator進(jìn)行變異。

fuzzing engine: 一個(gè)管理fuzzing的工具,包括維護(hù)語(yǔ)料庫(kù)、調(diào)用mutator、識(shí)別新的覆蓋率和報(bào)告失敗。

生成的語(yǔ)料庫(kù): 由模糊引擎隨時(shí)間維護(hù)的語(yǔ)料庫(kù),同時(shí)模糊測(cè)試以跟蹤進(jìn)度。它存儲(chǔ)在$GOCACHE/fuzz 中。這些條目?jī)H在模糊測(cè)試時(shí)使用。

mutator: 一種在模糊測(cè)試時(shí)使用的工具,它在將語(yǔ)料庫(kù)條目傳遞給模糊目標(biāo)之前隨機(jī)操作它們。

package: 同一目錄下編譯在一起的源文件的集合。

種子語(yǔ)料庫(kù): 用戶提供的用于模糊測(cè)試的語(yǔ)料庫(kù),可用于指導(dǎo)模糊引擎。它由 f.Add 在模糊測(cè)試中調(diào)用提供的語(yǔ)料庫(kù)條目以及包內(nèi) testdata/fuzz/{FuzzTestName} 目錄中的文件組成。這些條目默認(rèn)使用go test運(yùn)行,無(wú)論是否進(jìn)行模糊測(cè)試。

測(cè)試文件: 格式為 xxx_test.go 的文件,可能包含測(cè)試、基準(zhǔn)、示例和模糊測(cè)試。

漏洞: 代碼中的安全敏感漏洞,可以被攻擊者利用。

go語(yǔ)言可以做什么

1、服務(wù)器編程:以前你如果使用C或者C++做的那些事情,用Go來(lái)做很合適,例如處理日志、數(shù)據(jù)打包、虛擬機(jī)處理、文件系統(tǒng)等。

2、分布式系統(tǒng)、數(shù)據(jù)庫(kù)代理器、中間件:例如Etcd。

3、網(wǎng)絡(luò)編程:這一塊目前應(yīng)用最廣,包括Web應(yīng)用、API應(yīng)用、下載應(yīng)用,而且Go內(nèi)置的net/http包基本上把我們平常用到的網(wǎng)絡(luò)功能都實(shí)現(xiàn)了。

4、開發(fā)云平臺(tái):目前國(guó)外很多云平臺(tái)在采用Go開發(fā),我們所熟知的七牛云、華為云等等都有使用Go進(jìn)行開發(fā)并且開源的成型的產(chǎn)品。

5、區(qū)塊鏈:目前有一種說(shuō)法,技術(shù)從業(yè)人員把Go語(yǔ)言稱作為區(qū)塊鏈行業(yè)的開發(fā)語(yǔ)言。如果大家學(xué)習(xí)區(qū)塊鏈技術(shù)的話,就會(huì)發(fā)現(xiàn)現(xiàn)在有很多很多的區(qū)塊鏈的系統(tǒng)和應(yīng)用都是采用Go進(jìn)行開發(fā)的,比如ehtereum是目前知名度最大的公鏈,再比如fabric是目前最知名的聯(lián)盟鏈,兩者都有g(shù)o語(yǔ)言的版本,且go-ehtereum還是以太坊官方推薦的版本。

自1.0版發(fā)布以來(lái),go語(yǔ)言引起了眾多開發(fā)者的關(guān)注,并得到了廣泛的應(yīng)用。go語(yǔ)言簡(jiǎn)單、高效、并發(fā)的特點(diǎn)吸引了許多傳統(tǒng)的語(yǔ)言開發(fā)人員,其數(shù)量也在不斷增加。

使用 Go 語(yǔ)言開發(fā)的開源項(xiàng)目非常多。早期的 Go 語(yǔ)言開源項(xiàng)目只是通過 Go 語(yǔ)言與傳統(tǒng)項(xiàng)目進(jìn)行C語(yǔ)言庫(kù)綁定實(shí)現(xiàn),例如 Qt、Sqlite 等。

后期的很多項(xiàng)目都使用 Go 語(yǔ)言進(jìn)行重新原生實(shí)現(xiàn),這個(gè)過程相對(duì)于其他語(yǔ)言要簡(jiǎn)單一些,這也促成了大量使用 Go 語(yǔ)言原生開發(fā)項(xiàng)目的出現(xiàn)。

本文標(biāo)題:go語(yǔ)言目標(biāo)檢測(cè) go語(yǔ)言編譯成目標(biāo)文件命令
分享URL:http://muchs.cn/article4/ddcgioe.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供做網(wǎng)站ChatGPT、搜索引擎優(yōu)化網(wǎng)站收錄、網(wǎng)站策劃、外貿(mào)建站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

微信小程序開發(fā)