]> Cypherpunks.ru repositories - gostls13.git/blobdiff - src/cmd/go/internal/load/test.go
[dev.fuzz] all: merge master into dev.fuzz
[gostls13.git] / src / cmd / go / internal / load / test.go
index d884361aaad0690872ea4d74fe7f3c451fabd19a..5053ad767bc4b63d36c7088156be05a3b55f19c3 100644 (file)
@@ -523,6 +523,7 @@ func formatTestmain(t *testFuncs) ([]byte, error) {
 type testFuncs struct {
        Tests       []testFunc
        Benchmarks  []testFunc
+       FuzzTargets []testFunc
        Examples    []testFunc
        TestMain    *testFunc
        Package     *Package
@@ -615,6 +616,13 @@ func (t *testFuncs) load(filename, pkg string, doImport, seen *bool) error {
                        }
                        t.Benchmarks = append(t.Benchmarks, testFunc{pkg, name, "", false})
                        *doImport, *seen = true, true
+               case isTest(name, "Fuzz"):
+                       err := checkTestFunc(n, "F")
+                       if err != nil {
+                               return err
+                       }
+                       t.FuzzTargets = append(t.FuzzTargets, testFunc{pkg, name, "", false})
+                       *doImport, *seen = true, true
                }
        }
        ex := doc.Examples(f)
@@ -678,6 +686,12 @@ var benchmarks = []testing.InternalBenchmark{
 {{end}}
 }
 
+var fuzzTargets = []testing.InternalFuzzTarget{
+{{range .FuzzTargets}}
+       {"{{.Name}}", {{.Package}}.{{.Name}}},
+{{end}}
+}
+
 var examples = []testing.InternalExample{
 {{range .Examples}}
        {"{{.Name}}", {{.Package}}.{{.Name}}, {{.Output | printf "%q"}}, {{.Unordered}}},
@@ -736,7 +750,7 @@ func main() {
                CoveredPackages: {{printf "%q" .Covered}},
        })
 {{end}}
-       m := testing.MainStart(testdeps.TestDeps{}, tests, benchmarks, examples)
+       m := testing.MainStart(testdeps.TestDeps{}, tests, benchmarks, fuzzTargets, examples)
 {{with .TestMain}}
        {{.Package}}.{{.Name}}(m)
        os.Exit(int(reflect.ValueOf(m).Elem().FieldByName("exitCode").Int()))