第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會有你想問的

如何使用 go1.18 在一個(gè)源文件中運(yùn)行多個(gè)模糊測試用例?

如何使用 go1.18 在一個(gè)源文件中運(yùn)行多個(gè)模糊測試用例?

Go
慕的地6264312 2022-11-23 19:51:17
go 1.18 幾天前發(fā)布了。從 Go 1.18 開始,它在其標(biāo)準(zhǔn)工具鏈中支持模糊測試但是當(dāng)我試圖寫我的案例時(shí),它不能在一個(gè)包(或一個(gè)文件?)中運(yùn)行多個(gè)案例。代碼:package xxxfunc FuzzReverse(f *testing.F) {    testcases := []string{"Hello, world", " ", "!12345"}    for _, tc := range testcases {        f.Add(tc) // Use f.Add to provide a seed corpus    }    f.Fuzz(func(t *testing.T, orig string) {        Reverse(orig)    })}func FuzzReverse2(f *testing.F) {    testcases := []string{"Hello, world", " ", "!12345"}    for _, tc := range testcases {        f.Add(tc) // Use f.Add to provide a seed corpus    }    f.Fuzz(func(t *testing.T, orig string) {        Reverse(orig)    })}然后我運(yùn)行命令:go test  -fuzz .或者go test  -fuzz=Fuzz但結(jié)果是:testing: will not fuzz, -fuzz matches more than one fuzz test: [FuzzReverse FuzzReverse2]像這樣:本教程沒有提示,感謝幫助。(我在 stackoverflow 中的第一個(gè)問題,非常感謝?。。。。┪覈L試在一個(gè)源文件中編寫多個(gè)模糊案例,然后運(yùn)行 cmd: go test -fuzz 。期望它可以進(jìn)行模糊測試,但出現(xiàn)錯(cuò)誤:\測試:不會進(jìn)行模糊測試,-fuzz 匹配多個(gè)模糊測試:[FuzzReverse FuzzReverse2]
查看完整描述

2 回答

?
千萬里不及你

TA貢獻(xiàn)1784條經(jīng)驗(yàn) 獲得超9個(gè)贊

這是一個(gè) quick-n-dirty bash 腳本,它將找到當(dāng)前文件夾中的所有模糊測試并每次運(yùn)行它們 10 秒:


#!/bin/bash


set -e


fuzzTime=${1:-10}


files=$(grep -r --include='**_test.go' --files-with-matches 'func Fuzz' .)


for file in ${files}

do

    funcs=$(grep -oP 'func \K(Fuzz\w*)' $file)

    for func in ${funcs}

    do

        echo "Fuzzing $func in $file"

        parentDir=$(dirname $file)

        go test $parentDir -run=$func -fuzz=$func -fuzztime=${fuzzTime}s

    done

done

要使用此腳本,請創(chuàng)建一個(gè)名為的新文件fuzzAll.sh并將此代碼復(fù)制到其中,然后運(yùn)行./fuzzAll.sh以每次運(yùn)行所有模糊測試 10 秒,或傳遞不同的數(shù)字以運(yùn)行不同的持續(xù)時(shí)間(例如./fuzzAll.sh 30每次運(yùn)行 30 秒)


為了進(jìn)一步參考,存在一個(gè)允許多個(gè)模糊測試目標(biāo)的現(xiàn)有 github 問題,但沒有關(guān)于何時(shí)添加它的 ETA。


查看完整回答
反對 回復(fù) 2022-11-23
?
哆啦的時(shí)光機(jī)

TA貢獻(xiàn)1779條經(jīng)驗(yàn) 獲得超6個(gè)贊

好吧,我已經(jīng)閱讀了 Go-fuzz 模塊的源代碼,事實(shí)是它不支持每次執(zhí)行的多個(gè)案例。


代碼在:\Go\src\testing\fuzz.go


if len(matched) > 1 {

    fmt.Fprintf(os.Stderr, "testing: will not fuzz, -fuzz matches more than one fuzz test: %v\n", matched)

    return false

}

我希望將來可以支持多案例執(zhí)行。


查看完整回答
反對 回復(fù) 2022-11-23
  • 2 回答
  • 0 關(guān)注
  • 143 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號