|
|
@@ -16,7 +16,6 @@ import (
|
|
|
pimpl "google.golang.org/protobuf/internal/impl"
|
|
|
"google.golang.org/protobuf/proto"
|
|
|
preg "google.golang.org/protobuf/reflect/protoregistry"
|
|
|
- "google.golang.org/protobuf/runtime/protoiface"
|
|
|
|
|
|
"google.golang.org/protobuf/encoding/testprotos/pb2"
|
|
|
"google.golang.org/protobuf/encoding/testprotos/pb3"
|
|
|
@@ -28,11 +27,6 @@ func init() {
|
|
|
detrand.Disable()
|
|
|
}
|
|
|
|
|
|
-// TODO: Use proto.SetExtension when available.
|
|
|
-func setExtension(m proto.Message, xd *protoiface.ExtensionDescV1, val interface{}) {
|
|
|
- m.ProtoReflect().Set(xd.Type, xd.Type.ValueOf(val))
|
|
|
-}
|
|
|
-
|
|
|
func TestMarshal(t *testing.T) {
|
|
|
tests := []struct {
|
|
|
desc string
|
|
|
@@ -905,10 +899,10 @@ req_nested: {}
|
|
|
OptBool: proto.Bool(true),
|
|
|
OptInt32: proto.Int32(42),
|
|
|
}
|
|
|
- setExtension(m, pb2.E_OptExtBool, true)
|
|
|
- setExtension(m, pb2.E_OptExtString, "extension field")
|
|
|
- setExtension(m, pb2.E_OptExtEnum, pb2.Enum_TEN)
|
|
|
- setExtension(m, pb2.E_OptExtNested, &pb2.Nested{
|
|
|
+ proto.SetExtension(m, pb2.E_OptExtBool, true)
|
|
|
+ proto.SetExtension(m, pb2.E_OptExtString, "extension field")
|
|
|
+ proto.SetExtension(m, pb2.E_OptExtEnum, pb2.Enum_TEN)
|
|
|
+ proto.SetExtension(m, pb2.E_OptExtNested, &pb2.Nested{
|
|
|
OptString: proto.String("nested in an extension"),
|
|
|
OptNested: &pb2.Nested{
|
|
|
OptString: proto.String("another nested in an extension"),
|
|
|
@@ -933,7 +927,7 @@ opt_int32: 42
|
|
|
desc: "extension field contains invalid UTF-8",
|
|
|
input: func() proto.Message {
|
|
|
m := &pb2.Extensions{}
|
|
|
- setExtension(m, pb2.E_OptExtString, "abc\xff")
|
|
|
+ proto.SetExtension(m, pb2.E_OptExtString, "abc\xff")
|
|
|
return m
|
|
|
}(),
|
|
|
wantErr: true,
|
|
|
@@ -941,10 +935,10 @@ opt_int32: 42
|
|
|
desc: "extension partial returns error",
|
|
|
input: func() proto.Message {
|
|
|
m := &pb2.Extensions{}
|
|
|
- setExtension(m, pb2.E_OptExtPartial, &pb2.PartialRequired{
|
|
|
+ proto.SetExtension(m, pb2.E_OptExtPartial, &pb2.PartialRequired{
|
|
|
OptString: proto.String("partial1"),
|
|
|
})
|
|
|
- setExtension(m, pb2.E_ExtensionsContainer_OptExtPartial, &pb2.PartialRequired{
|
|
|
+ proto.SetExtension(m, pb2.E_ExtensionsContainer_OptExtPartial, &pb2.PartialRequired{
|
|
|
OptString: proto.String("partial2"),
|
|
|
})
|
|
|
return m
|
|
|
@@ -962,7 +956,7 @@ opt_int32: 42
|
|
|
mo: prototext.MarshalOptions{AllowPartial: true},
|
|
|
input: func() proto.Message {
|
|
|
m := &pb2.Extensions{}
|
|
|
- setExtension(m, pb2.E_OptExtPartial, &pb2.PartialRequired{
|
|
|
+ proto.SetExtension(m, pb2.E_OptExtPartial, &pb2.PartialRequired{
|
|
|
OptString: proto.String("partial1"),
|
|
|
})
|
|
|
return m
|
|
|
@@ -975,9 +969,9 @@ opt_int32: 42
|
|
|
desc: "extensions of repeated fields",
|
|
|
input: func() proto.Message {
|
|
|
m := &pb2.Extensions{}
|
|
|
- setExtension(m, pb2.E_RptExtEnum, &[]pb2.Enum{pb2.Enum_TEN, 101, pb2.Enum_ONE})
|
|
|
- setExtension(m, pb2.E_RptExtFixed32, &[]uint32{42, 47})
|
|
|
- setExtension(m, pb2.E_RptExtNested, &[]*pb2.Nested{
|
|
|
+ proto.SetExtension(m, pb2.E_RptExtEnum, &[]pb2.Enum{pb2.Enum_TEN, 101, pb2.Enum_ONE})
|
|
|
+ proto.SetExtension(m, pb2.E_RptExtFixed32, &[]uint32{42, 47})
|
|
|
+ proto.SetExtension(m, pb2.E_RptExtNested, &[]*pb2.Nested{
|
|
|
&pb2.Nested{OptString: proto.String("one")},
|
|
|
&pb2.Nested{OptString: proto.String("two")},
|
|
|
&pb2.Nested{OptString: proto.String("three")},
|
|
|
@@ -1003,10 +997,10 @@ opt_int32: 42
|
|
|
desc: "extensions of non-repeated fields in another message",
|
|
|
input: func() proto.Message {
|
|
|
m := &pb2.Extensions{}
|
|
|
- setExtension(m, pb2.E_ExtensionsContainer_OptExtBool, true)
|
|
|
- setExtension(m, pb2.E_ExtensionsContainer_OptExtString, "extension field")
|
|
|
- setExtension(m, pb2.E_ExtensionsContainer_OptExtEnum, pb2.Enum_TEN)
|
|
|
- setExtension(m, pb2.E_ExtensionsContainer_OptExtNested, &pb2.Nested{
|
|
|
+ proto.SetExtension(m, pb2.E_ExtensionsContainer_OptExtBool, true)
|
|
|
+ proto.SetExtension(m, pb2.E_ExtensionsContainer_OptExtString, "extension field")
|
|
|
+ proto.SetExtension(m, pb2.E_ExtensionsContainer_OptExtEnum, pb2.Enum_TEN)
|
|
|
+ proto.SetExtension(m, pb2.E_ExtensionsContainer_OptExtNested, &pb2.Nested{
|
|
|
OptString: proto.String("nested in an extension"),
|
|
|
OptNested: &pb2.Nested{
|
|
|
OptString: proto.String("another nested in an extension"),
|
|
|
@@ -1032,9 +1026,9 @@ opt_int32: 42
|
|
|
OptBool: proto.Bool(true),
|
|
|
OptInt32: proto.Int32(42),
|
|
|
}
|
|
|
- setExtension(m, pb2.E_ExtensionsContainer_RptExtEnum, &[]pb2.Enum{pb2.Enum_TEN, 101, pb2.Enum_ONE})
|
|
|
- setExtension(m, pb2.E_ExtensionsContainer_RptExtString, &[]string{"hello", "world"})
|
|
|
- setExtension(m, pb2.E_ExtensionsContainer_RptExtNested, &[]*pb2.Nested{
|
|
|
+ proto.SetExtension(m, pb2.E_ExtensionsContainer_RptExtEnum, &[]pb2.Enum{pb2.Enum_TEN, 101, pb2.Enum_ONE})
|
|
|
+ proto.SetExtension(m, pb2.E_ExtensionsContainer_RptExtString, &[]string{"hello", "world"})
|
|
|
+ proto.SetExtension(m, pb2.E_ExtensionsContainer_RptExtNested, &[]*pb2.Nested{
|
|
|
&pb2.Nested{OptString: proto.String("one")},
|
|
|
&pb2.Nested{OptString: proto.String("two")},
|
|
|
&pb2.Nested{OptString: proto.String("three")},
|
|
|
@@ -1063,13 +1057,13 @@ opt_int32: 42
|
|
|
desc: "MessageSet",
|
|
|
input: func() proto.Message {
|
|
|
m := &pb2.MessageSet{}
|
|
|
- setExtension(m, pb2.E_MessageSetExtension_MessageSetExtension, &pb2.MessageSetExtension{
|
|
|
+ proto.SetExtension(m, pb2.E_MessageSetExtension_MessageSetExtension, &pb2.MessageSetExtension{
|
|
|
OptString: proto.String("a messageset extension"),
|
|
|
})
|
|
|
- setExtension(m, pb2.E_MessageSetExtension_NotMessageSetExtension, &pb2.MessageSetExtension{
|
|
|
+ proto.SetExtension(m, pb2.E_MessageSetExtension_NotMessageSetExtension, &pb2.MessageSetExtension{
|
|
|
OptString: proto.String("not a messageset extension"),
|
|
|
})
|
|
|
- setExtension(m, pb2.E_MessageSetExtension_ExtNested, &pb2.Nested{
|
|
|
+ proto.SetExtension(m, pb2.E_MessageSetExtension_ExtNested, &pb2.Nested{
|
|
|
OptString: proto.String("just a regular extension"),
|
|
|
})
|
|
|
return m
|
|
|
@@ -1089,7 +1083,7 @@ opt_int32: 42
|
|
|
desc: "not real MessageSet 1",
|
|
|
input: func() proto.Message {
|
|
|
m := &pb2.FakeMessageSet{}
|
|
|
- setExtension(m, pb2.E_FakeMessageSetExtension_MessageSetExtension, &pb2.FakeMessageSetExtension{
|
|
|
+ proto.SetExtension(m, pb2.E_FakeMessageSetExtension_MessageSetExtension, &pb2.FakeMessageSetExtension{
|
|
|
OptString: proto.String("not a messageset extension"),
|
|
|
})
|
|
|
return m
|
|
|
@@ -1103,7 +1097,7 @@ opt_int32: 42
|
|
|
desc: "not real MessageSet 2",
|
|
|
input: func() proto.Message {
|
|
|
m := &pb2.MessageSet{}
|
|
|
- setExtension(m, pb2.E_MessageSetExtension, &pb2.FakeMessageSetExtension{
|
|
|
+ proto.SetExtension(m, pb2.E_MessageSetExtension, &pb2.FakeMessageSetExtension{
|
|
|
OptString: proto.String("another not a messageset extension"),
|
|
|
})
|
|
|
return m
|