encoding: cleanup some tests

Change-Id: I07b8cd5e9b71fea6a162ca423186b4df7fd49355
Reviewed-on: https://go-review.googlesource.com/c/protobuf/+/185458
Reviewed-by: Herbie Ong <herbie@google.com>
This commit is contained in:
Joe Tsai 2019-07-09 23:11:13 -07:00
parent b3d57df1db
commit 6dc168e609
4 changed files with 17 additions and 97 deletions

View File

@ -15,7 +15,6 @@ import (
"google.golang.org/protobuf/internal/scalar" "google.golang.org/protobuf/internal/scalar"
"google.golang.org/protobuf/proto" "google.golang.org/protobuf/proto"
preg "google.golang.org/protobuf/reflect/protoregistry" preg "google.golang.org/protobuf/reflect/protoregistry"
"google.golang.org/protobuf/runtime/protoiface"
"google.golang.org/protobuf/types/known/anypb" "google.golang.org/protobuf/types/known/anypb"
"google.golang.org/protobuf/types/known/durationpb" "google.golang.org/protobuf/types/known/durationpb"
@ -26,34 +25,6 @@ import (
"google.golang.org/protobuf/types/known/wrapperspb" "google.golang.org/protobuf/types/known/wrapperspb"
) )
func init() {
// TODO: remove these registerExtension calls when generated code registers
// to V2 global registry.
registerExtension(pb2.E_OptExtBool)
registerExtension(pb2.E_OptExtString)
registerExtension(pb2.E_OptExtEnum)
registerExtension(pb2.E_OptExtNested)
registerExtension(pb2.E_RptExtFixed32)
registerExtension(pb2.E_RptExtEnum)
registerExtension(pb2.E_RptExtNested)
registerExtension(pb2.E_ExtensionsContainer_OptExtBool)
registerExtension(pb2.E_ExtensionsContainer_OptExtString)
registerExtension(pb2.E_ExtensionsContainer_OptExtEnum)
registerExtension(pb2.E_ExtensionsContainer_OptExtNested)
registerExtension(pb2.E_ExtensionsContainer_RptExtString)
registerExtension(pb2.E_ExtensionsContainer_RptExtEnum)
registerExtension(pb2.E_ExtensionsContainer_RptExtNested)
registerExtension(pb2.E_MessageSetExtension)
registerExtension(pb2.E_MessageSetExtension_MessageSetExtension)
registerExtension(pb2.E_MessageSetExtension_NotMessageSetExtension)
registerExtension(pb2.E_MessageSetExtension_ExtNested)
registerExtension(pb2.E_FakeMessageSetExtension_MessageSetExtension)
}
func registerExtension(xd *protoiface.ExtensionDescV1) {
preg.GlobalTypes.Register(xd.Type)
}
func TestUnmarshal(t *testing.T) { func TestUnmarshal(t *testing.T) {
tests := []struct { tests := []struct {
desc string desc string

View File

@ -6,13 +6,10 @@ package protojson_test
import ( import (
"bytes" "bytes"
"encoding/hex"
"math" "math"
"strings"
"testing" "testing"
"github.com/google/go-cmp/cmp" "github.com/google/go-cmp/cmp"
"github.com/google/go-cmp/cmp/cmpopts"
"google.golang.org/protobuf/encoding/protojson" "google.golang.org/protobuf/encoding/protojson"
"google.golang.org/protobuf/internal/encoding/pack" "google.golang.org/protobuf/internal/encoding/pack"
pimpl "google.golang.org/protobuf/internal/impl" pimpl "google.golang.org/protobuf/internal/impl"
@ -32,37 +29,11 @@ import (
"google.golang.org/protobuf/types/known/wrapperspb" "google.golang.org/protobuf/types/known/wrapperspb"
) )
// splitLines is a cmpopts.Option for comparing strings with line breaks.
var splitLines = cmpopts.AcyclicTransformer("SplitLines", func(s string) []string {
return strings.Split(s, "\n")
})
func pb2Enum(i int32) *pb2.Enum {
p := new(pb2.Enum)
*p = pb2.Enum(i)
return p
}
func pb2Enums_NestedEnum(i int32) *pb2.Enums_NestedEnum {
p := new(pb2.Enums_NestedEnum)
*p = pb2.Enums_NestedEnum(i)
return p
}
// TODO: Replace this with proto.SetExtension. // TODO: Replace this with proto.SetExtension.
func setExtension(m proto.Message, xd *protoiface.ExtensionDescV1, val interface{}) { func setExtension(m proto.Message, xd *protoiface.ExtensionDescV1, val interface{}) {
m.ProtoReflect().Set(xd.Type, xd.Type.ValueOf(val)) m.ProtoReflect().Set(xd.Type, xd.Type.ValueOf(val))
} }
// dhex decodes a hex-string and returns the bytes and panics if s is invalid.
func dhex(s string) []byte {
b, err := hex.DecodeString(s)
if err != nil {
panic(err)
}
return b
}
func TestMarshal(t *testing.T) { func TestMarshal(t *testing.T) {
tests := []struct { tests := []struct {
desc string desc string
@ -215,8 +186,8 @@ func TestMarshal(t *testing.T) {
}, { }, {
desc: "proto2 enum set to zero value", desc: "proto2 enum set to zero value",
input: &pb2.Enums{ input: &pb2.Enums{
OptEnum: pb2Enum(0), OptEnum: pb2.Enum(0).Enum(),
OptNestedEnum: pb2Enums_NestedEnum(0), OptNestedEnum: pb2.Enums_NestedEnum(0).Enum(),
}, },
want: `{ want: `{
"optEnum": 0, "optEnum": 0,
@ -235,8 +206,8 @@ func TestMarshal(t *testing.T) {
}, { }, {
desc: "proto2 enum set to numeric values", desc: "proto2 enum set to numeric values",
input: &pb2.Enums{ input: &pb2.Enums{
OptEnum: pb2Enum(2), OptEnum: pb2.Enum(2).Enum(),
OptNestedEnum: pb2Enums_NestedEnum(2), OptNestedEnum: pb2.Enums_NestedEnum(2).Enum(),
}, },
want: `{ want: `{
"optEnum": "TWO", "optEnum": "TWO",
@ -245,8 +216,8 @@ func TestMarshal(t *testing.T) {
}, { }, {
desc: "proto2 enum set to unnamed numeric values", desc: "proto2 enum set to unnamed numeric values",
input: &pb2.Enums{ input: &pb2.Enums{
OptEnum: pb2Enum(101), OptEnum: pb2.Enum(101).Enum(),
OptNestedEnum: pb2Enums_NestedEnum(-101), OptNestedEnum: pb2.Enums_NestedEnum(-101).Enum(),
}, },
want: `{ want: `{
"optEnum": 101, "optEnum": 101,
@ -1636,7 +1607,7 @@ func TestMarshal(t *testing.T) {
}, },
input: &anypb.Any{ input: &anypb.Any{
TypeUrl: "foo/pb2.Nested", TypeUrl: "foo/pb2.Nested",
Value: dhex("80"), Value: []byte("\x80"),
}, },
wantErr: true, wantErr: true,
}, { }, {
@ -1941,7 +1912,7 @@ func TestMarshal(t *testing.T) {
got := string(b) got := string(b)
if got != tt.want { if got != tt.want {
t.Errorf("Marshal()\n<got>\n%v\n<want>\n%v\n", got, tt.want) t.Errorf("Marshal()\n<got>\n%v\n<want>\n%v\n", got, tt.want)
if diff := cmp.Diff(tt.want, got, splitLines); diff != "" { if diff := cmp.Diff(tt.want, got); diff != "" {
t.Errorf("Marshal() diff -want +got\n%v\n", diff) t.Errorf("Marshal() diff -want +got\n%v\n", diff)
} }
} }

View File

@ -352,8 +352,8 @@ opt_enum: 101
opt_nested_enum: -101 opt_nested_enum: -101
`, `,
wantMessage: &pb2.Enums{ wantMessage: &pb2.Enums{
OptEnum: pb2Enum(101), OptEnum: pb2.Enum(101).Enum(),
OptNestedEnum: pb2Enums_NestedEnum(-101), OptNestedEnum: pb2.Enums_NestedEnum(-101).Enum(),
}, },
}, { }, {
desc: "proto2 enum set to invalid named", desc: "proto2 enum set to invalid named",

View File

@ -5,7 +5,6 @@
package prototext_test package prototext_test
import ( import (
"encoding/hex"
"math" "math"
"testing" "testing"
@ -29,32 +28,11 @@ func init() {
detrand.Disable() detrand.Disable()
} }
func pb2Enum(i int32) *pb2.Enum {
p := new(pb2.Enum)
*p = pb2.Enum(i)
return p
}
func pb2Enums_NestedEnum(i int32) *pb2.Enums_NestedEnum {
p := new(pb2.Enums_NestedEnum)
*p = pb2.Enums_NestedEnum(i)
return p
}
// TODO: Use proto.SetExtension when available. // TODO: Use proto.SetExtension when available.
func setExtension(m proto.Message, xd *protoiface.ExtensionDescV1, val interface{}) { func setExtension(m proto.Message, xd *protoiface.ExtensionDescV1, val interface{}) {
m.ProtoReflect().Set(xd.Type, xd.Type.ValueOf(val)) m.ProtoReflect().Set(xd.Type, xd.Type.ValueOf(val))
} }
// dhex decodes a hex-string and returns the bytes and panics if s is invalid.
func dhex(s string) []byte {
b, err := hex.DecodeString(s)
if err != nil {
panic(err)
}
return b
}
func TestMarshal(t *testing.T) { func TestMarshal(t *testing.T) {
tests := []struct { tests := []struct {
desc string desc string
@ -205,8 +183,8 @@ opt_string: "谷歌"
}, { }, {
desc: "proto2 enum set to zero value", desc: "proto2 enum set to zero value",
input: &pb2.Enums{ input: &pb2.Enums{
OptEnum: pb2Enum(0), OptEnum: pb2.Enum(0).Enum(),
OptNestedEnum: pb2Enums_NestedEnum(0), OptNestedEnum: pb2.Enums_NestedEnum(0).Enum(),
}, },
want: `opt_enum: 0 want: `opt_enum: 0
opt_nested_enum: 0 opt_nested_enum: 0
@ -223,8 +201,8 @@ opt_nested_enum: UNO
}, { }, {
desc: "proto2 enum set to numeric values", desc: "proto2 enum set to numeric values",
input: &pb2.Enums{ input: &pb2.Enums{
OptEnum: pb2Enum(2), OptEnum: pb2.Enum(2).Enum(),
OptNestedEnum: pb2Enums_NestedEnum(2), OptNestedEnum: pb2.Enums_NestedEnum(2).Enum(),
}, },
want: `opt_enum: TWO want: `opt_enum: TWO
opt_nested_enum: DOS opt_nested_enum: DOS
@ -232,8 +210,8 @@ opt_nested_enum: DOS
}, { }, {
desc: "proto2 enum set to unnamed numeric values", desc: "proto2 enum set to unnamed numeric values",
input: &pb2.Enums{ input: &pb2.Enums{
OptEnum: pb2Enum(101), OptEnum: pb2.Enum(101).Enum(),
OptNestedEnum: pb2Enums_NestedEnum(-101), OptNestedEnum: pb2.Enums_NestedEnum(-101).Enum(),
}, },
want: `opt_enum: 101 want: `opt_enum: 101
opt_nested_enum: -101 opt_nested_enum: -101
@ -1215,7 +1193,7 @@ value: "\n\x13embedded inside Any\x12\x0b\n\tinception"
}, },
input: &anypb.Any{ input: &anypb.Any{
TypeUrl: "foo/pb2.Nested", TypeUrl: "foo/pb2.Nested",
Value: dhex("80"), Value: []byte("\x80"),
}, },
want: `type_url: "foo/pb2.Nested" want: `type_url: "foo/pb2.Nested"
value: "\x80" value: "\x80"