【发布时间】:2022-06-19 07:58:38
【问题描述】:
go 1.18 几天前发布。从 Go 1.18 开始,它在标准工具链中支持模糊测试
但是当我尝试编写我的案例时,它不能在一个包(或一个文件?)中运行多个案例。 代码:
package xxx
func 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)
})
}
然后我运行 cmd:
go test -fuzz .
或
go test -fuzz=Fuzz
但结果是:
testing: will not fuzz, -fuzz matches more than one fuzz test: [FuzzReverse FuzzReverse2]
像这样:
教程没有提示,谢谢帮助。(我在stackoverflow的第一个问题,谢谢!!!!)
我尝试在一个源文件中写入多个模糊案例,然后运行 cmd: go test -fuzz 。 期望它可以进行模糊测试,但出现错误:\
测试:不会模糊,-fuzz 匹配多个模糊测试:[FuzzReverse FuzzReverse2]
【问题讨论】: