internal/fuzztest: factor out common fuzzer tests
All the fuzzers have the same test, which runs the fuzzer against every
entry in the corpus. Move the test logic into a separate package.
Change-Id: I3a7e2ca75d20a5ff6d51ed9e6151629e6667684b
Reviewed-on: https://go-review.googlesource.com/c/protobuf/+/212258
Reviewed-by: Joe Tsai <joetsai@google.com>
diff --git a/internal/fuzz/textfuzz/fuzz.go b/internal/fuzz/textfuzz/fuzz.go
index bd89da0..242e4b6 100644
--- a/internal/fuzz/textfuzz/fuzz.go
+++ b/internal/fuzz/textfuzz/fuzz.go
@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
-// Package textfuzz includes a fuzzer for the text marshaler and unmarshaler.
+// Package textfuzz includes fuzzers for prototext.Marshal and prototext.Unmarshal.
package textfuzz
import (
diff --git a/internal/fuzz/textfuzz/fuzz_test.go b/internal/fuzz/textfuzz/fuzz_test.go
index a0e9d0c..af27f06 100644
--- a/internal/fuzz/textfuzz/fuzz_test.go
+++ b/internal/fuzz/textfuzz/fuzz_test.go
@@ -5,30 +5,11 @@
package textfuzz
import (
- "io/ioutil"
- "os"
- "path/filepath"
"testing"
+
+ "google.golang.org/protobuf/internal/fuzztest"
)
func Test(t *testing.T) {
- dir, err := os.Open("corpus")
- if err != nil {
- t.Fatal(err)
- }
- infos, err := dir.Readdir(0)
- if err != nil {
- t.Fatal(err)
-
- }
- for _, info := range infos {
- name := info.Name()
- t.Run(name, func(t *testing.T) {
- b, err := ioutil.ReadFile(filepath.Join("corpus", name))
- if err != nil {
- t.Fatal(err)
- }
- Fuzz(b)
- })
- }
+ fuzztest.Test(t, Fuzz)
}