如何用go1.18 运行 在一个源文件中编写多个模糊测试用例?

how to run multi fuzz test cases wirtten in one source file with go1.18?

go 1.18 已发布几天ago.It 从 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)
    })
}

我运行命令:

go test  -fuzz .

go test  -fuzz=Fuzz

但结果是:

testing: will not fuzz, -fuzz matches more than one fuzz test: [FuzzReverse FuzzReverse2]

像这样:

教程没有提示,谢谢帮助。(我在 Whosebug 的第一个问题,非常感谢!!!)

我尝试在一个源文件中编写多个模糊案例,然后 运行 命令:go test -fuzz。 期望它可以进行模糊测试,但出现错误:\

testing: will not fuzz, -fuzz matches more than one fuzz test: [FuzzReverse FuzzReverse2]

好的,我已经阅读了 Go-fuzz 模块的源代码, 事实上,它不支持每次执行的多个案例。

代码在:\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
}

希望以后能支持多case执行