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_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)
 }