all: remove APIv1 dependency

Remove support for running benchmarks with APIv1.

The comparisons have served their purpose, and this removes the last
dependency on the github.com/golang/protobuf module.

Fixes golang/protobuf#962.

Change-Id: I55758e19451fcd16ab1a5d66244eb8214ceb9fa7
Reviewed-on: https://go-review.googlesource.com/c/protobuf/+/214040
Reviewed-by: Joe Tsai <[email protected]>
diff --git a/benchmarks/bench_test.go b/benchmarks/bench_test.go
index 25d4b30..9335dbd 100644
--- a/benchmarks/bench_test.go
+++ b/benchmarks/bench_test.go
@@ -5,7 +5,6 @@
 package bench_test
 
 import (
-	"bytes"
 	"flag"
 	"fmt"
 	"io/ioutil"
@@ -16,8 +15,6 @@
 	"testing"
 	"time"
 
-	"github.com/golang/protobuf/jsonpb"
-	protoV1 "github.com/golang/protobuf/proto"
 	"google.golang.org/protobuf/encoding/protojson"
 	"google.golang.org/protobuf/encoding/prototext"
 	"google.golang.org/protobuf/proto"
@@ -32,16 +29,12 @@
 	_ "google.golang.org/protobuf/internal/testprotos/benchmarks/datasets/google_message4"
 )
 
-var (
-	benchV1 = flag.Bool("v1", false, "benchmark the v1 implementation")
-)
-
 func BenchmarkWire(b *testing.B) {
 	bench(b, "Unmarshal", func(ds dataset, pb *testing.PB) {
 		for pb.Next() {
 			for _, p := range ds.wire {
 				m := ds.messageType.New().Interface()
-				if err := Unmarshal(p, m); err != nil {
+				if err := proto.Unmarshal(p, m); err != nil {
 					b.Fatal(err)
 				}
 			}
@@ -50,7 +43,7 @@
 	bench(b, "Marshal", func(ds dataset, pb *testing.PB) {
 		for pb.Next() {
 			for _, m := range ds.messages {
-				if _, err := Marshal(m); err != nil {
+				if _, err := proto.Marshal(m); err != nil {
 					b.Fatal(err)
 				}
 			}
@@ -59,7 +52,7 @@
 	bench(b, "Size", func(ds dataset, pb *testing.PB) {
 		for pb.Next() {
 			for _, m := range ds.messages {
-				Size(m)
+				proto.Size(m)
 			}
 		}
 	})
@@ -70,7 +63,7 @@
 		for pb.Next() {
 			for _, p := range ds.text {
 				m := ds.messageType.New().Interface()
-				if err := UnmarshalText(p, m); err != nil {
+				if err := prototext.Unmarshal(p, m); err != nil {
 					b.Fatal(err)
 				}
 			}
@@ -79,7 +72,7 @@
 	bench(b, "Marshal", func(ds dataset, pb *testing.PB) {
 		for pb.Next() {
 			for _, m := range ds.messages {
-				if _, err := MarshalText(m); err != nil {
+				if _, err := prototext.Marshal(m); err != nil {
 					b.Fatal(err)
 				}
 			}
@@ -92,7 +85,7 @@
 		for pb.Next() {
 			for _, p := range ds.json {
 				m := ds.messageType.New().Interface()
-				if err := UnmarshalJSON(p, m); err != nil {
+				if err := protojson.Unmarshal(p, m); err != nil {
 					b.Fatal(err)
 				}
 			}
@@ -101,7 +94,7 @@
 	bench(b, "Marshal", func(ds dataset, pb *testing.PB) {
 		for pb.Next() {
 			for _, m := range ds.messages {
-				if _, err := MarshalJSON(m); err != nil {
+				if _, err := protojson.Marshal(m); err != nil {
 					b.Fatal(err)
 				}
 			}
@@ -211,57 +204,3 @@
 	})
 	os.Exit(m.Run())
 }
-
-func Unmarshal(b []byte, m proto.Message) error {
-	if *benchV1 {
-		return protoV1.Unmarshal(b, m.(protoV1.Message))
-	}
-	return proto.Unmarshal(b, m)
-}
-
-func Marshal(m proto.Message) ([]byte, error) {
-	if *benchV1 {
-		return protoV1.Marshal(m.(protoV1.Message))
-	}
-	return proto.Marshal(m)
-}
-
-func Size(m proto.Message) int {
-	if *benchV1 {
-		return protoV1.Size(m.(protoV1.Message))
-	}
-	return proto.Size(m)
-}
-
-func UnmarshalText(b []byte, m proto.Message) error {
-	if *benchV1 {
-		// Extra string conversion makes this not quite right.
-		return protoV1.UnmarshalText(string(b), m.(protoV1.Message))
-	}
-	return prototext.Unmarshal(b, m)
-}
-
-func MarshalText(m proto.Message) ([]byte, error) {
-	if *benchV1 {
-		var b bytes.Buffer
-		err := protoV1.MarshalText(&b, m.(protoV1.Message))
-		return b.Bytes(), err
-	}
-	return prototext.Marshal(m)
-}
-
-func UnmarshalJSON(b []byte, m proto.Message) error {
-	if *benchV1 {
-		return jsonpb.Unmarshal(bytes.NewBuffer(b), m.(protoV1.Message))
-	}
-	return protojson.Unmarshal(b, m)
-}
-
-func MarshalJSON(m proto.Message) ([]byte, error) {
-	if *benchV1 {
-		var b bytes.Buffer
-		err := (&jsonpb.Marshaler{}).Marshal(&b, m.(protoV1.Message))
-		return b.Bytes(), err
-	}
-	return protojson.Marshal(m)
-}
diff --git a/encoding/bench_test.go b/encoding/bench_test.go
index d5ac0c3..d181085 100644
--- a/encoding/bench_test.go
+++ b/encoding/bench_test.go
@@ -9,8 +9,6 @@
 	"fmt"
 	"testing"
 
-	jsonpbV1 "github.com/golang/protobuf/jsonpb"
-	protoV1 "github.com/golang/protobuf/proto"
 	"google.golang.org/protobuf/encoding/protojson"
 	"google.golang.org/protobuf/encoding/prototext"
 	pref "google.golang.org/protobuf/reflect/protoreflect"
@@ -132,13 +130,9 @@
 func BenchmarkTextEncode(b *testing.B) {
 	m := makeProto()
 	for i := 0; i < b.N; i++ {
-		if *benchV1 {
-			protoV1.MarshalTextString(m)
-		} else {
-			_, err := prototext.MarshalOptions{Indent: "  "}.Marshal(m)
-			if err != nil {
-				b.Fatal(err)
-			}
+		_, err := prototext.MarshalOptions{Indent: "  "}.Marshal(m)
+		if err != nil {
+			b.Fatal(err)
 		}
 	}
 }
@@ -152,13 +146,7 @@
 
 	for i := 0; i < b.N; i++ {
 		m := &tpb.TestAllTypes{}
-		var err error
-		if *benchV1 {
-			err = protoV1.UnmarshalText(string(in), m)
-		} else {
-			err = prototext.Unmarshal(in, m)
-		}
-		if err != nil {
+		if err := prototext.Unmarshal(in, m); err != nil {
 			b.Fatal(err)
 		}
 	}
@@ -167,13 +155,7 @@
 func BenchmarkJSONEncode(b *testing.B) {
 	m := makeProto()
 	for i := 0; i < b.N; i++ {
-		var err error
-		if *benchV1 {
-			jsm := &jsonpbV1.Marshaler{Indent: "  "}
-			_, err = jsm.MarshalToString(m)
-		} else {
-			_, err = protojson.MarshalOptions{Indent: "  "}.Marshal(m)
-		}
+		_, err := protojson.MarshalOptions{Indent: "  "}.Marshal(m)
 		if err != nil {
 			b.Fatal(err)
 		}
@@ -189,13 +171,7 @@
 
 	for i := 0; i < b.N; i++ {
 		m := &tpb.TestAllTypes{}
-		var err error
-		if *benchV1 {
-			err = jsonpbV1.UnmarshalString(string(out), m)
-		} else {
-			err = protojson.Unmarshal(out, m)
-		}
-		if err != nil {
+		if err := protojson.Unmarshal(out, m); err != nil {
 			b.Fatal(err)
 		}
 	}
diff --git a/go.mod b/go.mod
index 754c67c..74f9af0 100644
--- a/go.mod
+++ b/go.mod
@@ -2,7 +2,4 @@
 
 go 1.9
 
-require (
-	github.com/golang/protobuf v1.2.1-0.20191106221148-0fd87f0c3acd
-	github.com/google/go-cmp v0.3.0
-)
+require github.com/google/go-cmp v0.3.0
diff --git a/go.sum b/go.sum
index 03be2ec..7e5f1f7 100644
--- a/go.sum
+++ b/go.sum
@@ -1,33 +1,2 @@
-github.com/golang/protobuf v1.2.1-0.20190514181236-7800af189d76/go.mod h1:Zfz6qcDoDBESdv6JsKsGpgNHnkvwJAJwcA9eL+mOkgc=
-github.com/golang/protobuf v1.2.1-0.20190515194842-7574ba03306e/go.mod h1:GjgUz9uwrRQmdPBBrFqiVbojAmlpy6ryM6DCzC+20rE=
-github.com/golang/protobuf v1.2.1-0.20190516201927-a2cd3ac1b343/go.mod h1:PScGDF2x230A126tLt9Ol9RjhXzbiPJrt/CogooD2mE=
-github.com/golang/protobuf v1.2.1-0.20190516215712-ae2eaafab405/go.mod h1:UmP8hhPKR5WWIjbT9v0JEVT+U0DBSjbW8KaZVeyFfRE=
-github.com/golang/protobuf v1.2.1-0.20190523175523-a1331f0b4ab4/go.mod h1:G+fNMoyvKWZDB7PCDHF+dXbH9OeE3+JoozCd9V7i66U=
-github.com/golang/protobuf v1.2.1-0.20190605195750-76c9e09470ba/go.mod h1:S1YIJXvYHGRCG2UmZsOcElkAYfvZLg2sDRr9+Xu8JXU=
-github.com/golang/protobuf v1.2.1-0.20190617175902-f94016f5239f/go.mod h1:G+HpKX7pYZAVkElkAWZkr08MToW6pTp/vs+E9osFfbg=
-github.com/golang/protobuf v1.2.1-0.20190620192300-1ee46dfd80dd/go.mod h1:+CMAsi9jpYf/wAltLUKlg++CWXqxCJyD8iLDbQONsJs=
-github.com/golang/protobuf v1.2.1-0.20190806214225-7037721e6de0 h1:a3hJDGxxWRbPxfOMiV6aG8pb0I+8RdgICRdXjXjiKzY=
-github.com/golang/protobuf v1.2.1-0.20190806214225-7037721e6de0/go.mod h1:tDQPRlaHYu9yt1wPgdx85inRiLvUCuJZXsYjC0mwc1c=
-github.com/golang/protobuf v1.2.1-0.20190820204156-2da1b93405dd h1:KtPU12Q37ryZW+7L97q/3GAhHtFXRjEkulcRj4dnSvA=
-github.com/golang/protobuf v1.2.1-0.20190820204156-2da1b93405dd/go.mod h1:x87I3ou7ehf/yR6iQ88MkyDogdxXN04TELJ7HVy7V7I=
-github.com/golang/protobuf v1.2.1-0.20190820213554-ae1d65bc5435 h1:mh1ym3CXIEzWTZlfDucUHHIbroKZ8ri4E3dbxu80las=
-github.com/golang/protobuf v1.2.1-0.20190820213554-ae1d65bc5435/go.mod h1:k7dGkiTZ3rjVDhKSpGt+x1zDzAePJk4jdhoBwIkQgBo=
-github.com/golang/protobuf v1.2.1-0.20191004062209-62f67f1ea9df h1:EXfvyTCV8/aeUp9mwwpgEDbIiiRci9e2PRaV0twjhBM=
-github.com/golang/protobuf v1.2.1-0.20191004062209-62f67f1ea9df/go.mod h1:o4el5ABfDjqFlwwvAq2OIgAPeNXQYUkhtrjNPXy6T6I=
-github.com/golang/protobuf v1.2.1-0.20191106221148-0fd87f0c3acd h1:HRAeHeNJbefBqWooTOEznG0HunlCcAOzNACnJDu+UAw=
-github.com/golang/protobuf v1.2.1-0.20191106221148-0fd87f0c3acd/go.mod h1:DtQPFud7lSZSAIWTr1L3itZzoZ2qEjuLgjbcxvO1ZiU=
 github.com/google/go-cmp v0.3.0 h1:crn/baboCvb5fXaQ0IJ1SGTsTVrWpDsCWC8EGETZijY=
 github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
-google.golang.org/protobuf v0.0.0-20190514172829-e89e6244e0e8/go.mod h1:791zQGC15vDqjpmPRn1uGPu5oHy/Jzw/Q1n5JsgIIcY=
-google.golang.org/protobuf v0.0.0-20190514231807-cdb777356907/go.mod h1:HeRLsKXv4+wE27dOIGwnqcOgq6a1O/GJ7mGhiEPnBrU=
-google.golang.org/protobuf v0.0.0-20190516201745-40b83d67fc75/go.mod h1:jf+u8AHuKtkib+0J4/bQXPNzCmT3V9a02hVzYKtatuw=
-google.golang.org/protobuf v0.0.0-20190516215540-a95b29fbf623/go.mod h1:cWWmz5lsCWIcqGLROrKq5Lu231IJw2PzqOZ8cgspbfY=
-google.golang.org/protobuf v0.0.0-20190522194032-21ade498bd69/go.mod h1:cJytyYi/6qdwy/+gD49hmgHcwD7zhWxE/1KPEslaZ3M=
-google.golang.org/protobuf v0.0.0-20190605195314-89d49632e5cf/go.mod h1:Btug4TBaP5wNYcb2zGKDTS7WMcaPPLuqEAKfEAZWYbo=
-google.golang.org/protobuf v0.0.0-20190617175724-bd7b7a9e0c26/go.mod h1:+FOB8T5/Yw4ywwdyeun9/KlDeuwFYBkNQ+kVuwj9C94=
-google.golang.org/protobuf v0.0.0-20190620020611-d888139e7b59/go.mod h1:of3pt14Y+dOxz2tBOHXEoapPpKFC15/0zWhPAddkfsU=
-google.golang.org/protobuf v0.0.0-20190717230113-f647c82cc3c7/go.mod h1:yGm7aNHn9Bp1NIvj6+CVUkcJshu+Usshfd3A+YxEuI8=
-google.golang.org/protobuf v0.0.0-20190820203659-c0f8c0a24ece/go.mod h1:tRqhEyKwbKqwt5CQZAuOtj09RfhLNklDOhndhYA9blU=
-google.golang.org/protobuf v0.0.0-20190820213257-f1e905b04207/go.mod h1:UJqt2ZERO8/qk5A9t8Ujq6OJ+MNvOQpg9X4RKyYz9Ho=
-google.golang.org/protobuf v0.0.0-20190828183429-79bfdbe45be2/go.mod h1:fYMzYhnMXLj/kGDPzNOptS3IFFlQjWTlu2j3ZPET2lw=
-google.golang.org/protobuf v0.0.0-20191031162342-c826885a2abe/go.mod h1:qKrTvhhUFcTIUF6KuejTfRdHXKeBPoa4mtynR6usTss=
diff --git a/proto/bench_test.go b/proto/bench_test.go
index 99693e6..55bce59 100644
--- a/proto/bench_test.go
+++ b/proto/bench_test.go
@@ -10,7 +10,6 @@
 	"reflect"
 	"testing"
 
-	protoV1 "github.com/golang/protobuf/proto"
 	"google.golang.org/protobuf/proto"
 )
 
@@ -19,7 +18,6 @@
 // detect unexpected regressions and for profiling specific cases.
 
 var (
-	benchV1      = flag.Bool("v1", false, "benchmark the v1 implementation")
 	allowPartial = flag.Bool("allow_partial", false, "set AllowPartial")
 )
 
@@ -27,17 +25,11 @@
 func BenchmarkEncode(b *testing.B) {
 	for _, test := range testValidMessages {
 		for _, want := range test.decodeTo {
-			v1 := want.(protoV1.Message)
 			opts := proto.MarshalOptions{AllowPartial: *allowPartial}
 			b.Run(fmt.Sprintf("%s (%T)", test.desc, want), func(b *testing.B) {
 				b.RunParallel(func(pb *testing.PB) {
 					for pb.Next() {
-						var err error
-						if *benchV1 {
-							_, err = protoV1.Marshal(v1)
-						} else {
-							_, err = opts.Marshal(want)
-						}
+						_, err := opts.Marshal(want)
 						if err != nil && !test.partial {
 							b.Fatal(err)
 						}
@@ -57,13 +49,7 @@
 				b.RunParallel(func(pb *testing.PB) {
 					for pb.Next() {
 						m := reflect.New(reflect.TypeOf(want).Elem()).Interface().(proto.Message)
-						v1 := m.(protoV1.Message)
-						var err error
-						if *benchV1 {
-							err = protoV1.Unmarshal(test.wire, v1)
-						} else {
-							err = opts.Unmarshal(test.wire, m)
-						}
+						err := opts.Unmarshal(test.wire, m)
 						if err != nil && !test.partial {
 							b.Fatal(err)
 						}