mirror of
https://github.com/protocolbuffers/protobuf-go.git
synced 2025-04-17 11:42:38 +00:00
encoding/textpb: move test protos under encoding/testprotos
These test proto definitions will be reused for encoding/jsonpb package and hence move these one directory up. Also, add and simplify some tests. Change-Id: I5297546fd9b853a7fd3e72dfab2fdc7237332c9c Reviewed-on: https://go-review.googlesource.com/c/162537 Reviewed-by: Damien Neil <dneil@google.com>
This commit is contained in:
parent
3fa6d3f003
commit
8170d69313
File diff suppressed because it is too large
Load Diff
@ -1,4 +1,4 @@
|
||||
// Copyright 2018 The Go Authors. All rights reserved.
|
||||
// Copyright 2019 The Go Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style
|
||||
// license that can be found in the LICENSE file.
|
||||
|
||||
@ -6,7 +6,7 @@
|
||||
syntax = "proto2";
|
||||
|
||||
package pb2;
|
||||
option go_package = "github.com/golang/protobuf/v2/encoding/textpb/testprotos/pb2";
|
||||
option go_package = "github.com/golang/protobuf/v2/encoding/testprotos/pb2";
|
||||
|
||||
import "google/protobuf/any.proto";
|
||||
import "google/protobuf/empty.proto";
|
||||
@ -18,7 +18,6 @@ import "google/protobuf/wrappers.proto";
|
||||
// Scalars contains optional scalar fields.
|
||||
message Scalars {
|
||||
optional bool opt_bool = 1;
|
||||
|
||||
optional int32 opt_int32 = 2;
|
||||
optional int64 opt_int64 = 3;
|
||||
optional uint32 opt_uint32 = 4;
|
||||
@ -30,6 +29,10 @@ message Scalars {
|
||||
optional sfixed32 opt_sfixed32 = 10;
|
||||
optional sfixed64 opt_sfixed64 = 11;
|
||||
|
||||
// Textproto marshal outputs fields in the same order as this proto
|
||||
// definition regardless of field number. Following fields are intended to
|
||||
// test that assumption.
|
||||
|
||||
optional float opt_float = 20;
|
||||
optional double opt_double = 21;
|
||||
|
||||
@ -37,24 +40,10 @@ message Scalars {
|
||||
optional string opt_string = 13;
|
||||
}
|
||||
|
||||
// Message contains repeated fields.
|
||||
message Repeats {
|
||||
repeated bool rpt_bool = 1;
|
||||
repeated int32 rpt_int32 = 2;
|
||||
repeated int64 rpt_int64 = 3;
|
||||
repeated uint32 rpt_uint32 = 4;
|
||||
repeated uint64 rpt_uint64 = 5;
|
||||
repeated float rpt_float = 6;
|
||||
repeated double rpt_double = 7;
|
||||
repeated string rpt_string = 15;
|
||||
repeated bytes rpt_bytes = 14;
|
||||
}
|
||||
|
||||
enum Enum {
|
||||
UNKNOWN = 0;
|
||||
FIRST = 1;
|
||||
SECOND = 2;
|
||||
TENTH = 10;
|
||||
ONE = 1;
|
||||
TWO = 2;
|
||||
TEN = 10;
|
||||
}
|
||||
|
||||
// Message contains enum fields.
|
||||
@ -71,25 +60,17 @@ message Enums {
|
||||
repeated NestedEnum rpt_nested_enum = 4;
|
||||
}
|
||||
|
||||
// Message contains message and group fields.
|
||||
message Nests {
|
||||
optional Nested opt_nested = 1;
|
||||
optional group OptGroup = 2 {
|
||||
optional bool opt_bool = 1;
|
||||
optional string opt_string = 2;
|
||||
optional Nested opt_nested = 3;
|
||||
|
||||
optional group OptNestedGroup = 4 {
|
||||
optional Enum opt_enum = 1;
|
||||
}
|
||||
}
|
||||
|
||||
repeated Nested rpt_nested = 3;
|
||||
repeated group RptGroup = 4 {
|
||||
repeated bool rpt_bool = 1;
|
||||
}
|
||||
|
||||
reserved "reserved_field";
|
||||
// Message contains repeated fields.
|
||||
message Repeats {
|
||||
repeated bool rpt_bool = 1;
|
||||
repeated int32 rpt_int32 = 2;
|
||||
repeated int64 rpt_int64 = 3;
|
||||
repeated uint32 rpt_uint32 = 4;
|
||||
repeated uint64 rpt_uint64 = 5;
|
||||
repeated float rpt_float = 6;
|
||||
repeated double rpt_double = 7;
|
||||
repeated string rpt_string = 8;
|
||||
repeated bytes rpt_bytes = 9;
|
||||
}
|
||||
|
||||
// Message type used as submessage.
|
||||
@ -98,19 +79,34 @@ message Nested {
|
||||
optional Nested opt_nested = 2;
|
||||
}
|
||||
|
||||
// Message contains message and group fields.
|
||||
message Nests {
|
||||
optional Nested opt_nested = 1;
|
||||
optional group OptGroup = 2 {
|
||||
optional string opt_string = 1;
|
||||
optional Nested opt_nested = 2;
|
||||
|
||||
optional group OptNestedGroup = 3 {
|
||||
optional fixed32 opt_fixed32 = 1;
|
||||
}
|
||||
}
|
||||
|
||||
repeated Nested rpt_nested = 4;
|
||||
repeated group RptGroup = 5 {
|
||||
repeated string rpt_string = 1;
|
||||
}
|
||||
|
||||
reserved "reserved_field";
|
||||
}
|
||||
|
||||
// Message contains required fields.
|
||||
message Requireds {
|
||||
required bool req_bool = 1;
|
||||
required fixed32 req_fixed32 = 2;
|
||||
required fixed64 req_fixed64 = 3;
|
||||
required sfixed32 req_sfixed32 = 4;
|
||||
required sfixed64 req_sfixed64 = 5;
|
||||
required float req_float = 6;
|
||||
required double req_double = 7;
|
||||
required string req_string = 8;
|
||||
required bytes req_bytes = 9;
|
||||
required Enum req_enum = 10;
|
||||
required Nested req_nested = 11;
|
||||
required sfixed64 req_sfixed64 = 2;
|
||||
required double req_double = 3;
|
||||
required string req_string = 4;
|
||||
required Enum req_enum = 5;
|
||||
required Nested req_nested = 6;
|
||||
}
|
||||
|
||||
// Message contains both required and optional fields.
|
||||
@ -119,24 +115,6 @@ message PartialRequired {
|
||||
optional string opt_string = 2;
|
||||
}
|
||||
|
||||
// Message contains oneof field.
|
||||
message Oneofs {
|
||||
oneof union {
|
||||
string str = 1;
|
||||
Nested msg = 2;
|
||||
}
|
||||
}
|
||||
|
||||
// Message contains map fields.
|
||||
message Maps {
|
||||
map<int32, string> int32_to_str = 1;
|
||||
map<sfixed64, bool> sfixed64_to_bool = 2;
|
||||
map<bool, uint32> bool_to_uint32 = 3;
|
||||
map<uint64, Enum> uint64_to_enum = 4;
|
||||
map<string, Nested> str_to_nested = 5;
|
||||
map<string, Oneofs> str_to_oneofs = 6;
|
||||
}
|
||||
|
||||
// Following messages are for testing required field nested in optional, repeated and map fields.
|
||||
|
||||
message NestedWithRequired {
|
||||
@ -147,6 +125,10 @@ message IndirectRequired {
|
||||
optional NestedWithRequired opt_nested = 1;
|
||||
repeated NestedWithRequired rpt_nested = 2;
|
||||
map<string, NestedWithRequired> str_to_nested = 3;
|
||||
|
||||
oneof union {
|
||||
NestedWithRequired oneof_nested = 4;
|
||||
}
|
||||
}
|
||||
|
||||
// Following messages are for testing extensions.
|
760
encoding/testprotos/pb3/test.pb.go
Normal file
760
encoding/testprotos/pb3/test.pb.go
Normal file
@ -0,0 +1,760 @@
|
||||
// Code generated by protoc-gen-go. DO NOT EDIT.
|
||||
// source: encoding/testprotos/pb3/test.proto
|
||||
|
||||
package pb3
|
||||
|
||||
import (
|
||||
bytes "bytes"
|
||||
gzip "compress/gzip"
|
||||
proto "github.com/golang/protobuf/proto"
|
||||
protoreflect "github.com/golang/protobuf/v2/reflect/protoreflect"
|
||||
protoimpl "github.com/golang/protobuf/v2/runtime/protoimpl"
|
||||
reflect "reflect"
|
||||
)
|
||||
|
||||
// This is a compile-time assertion to ensure that this generated file
|
||||
// is compatible with the proto package it is being compiled against.
|
||||
// A compilation error at this line likely means your copy of the
|
||||
// proto package needs to be updated.
|
||||
const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package
|
||||
|
||||
type Enum int32
|
||||
|
||||
const (
|
||||
Enum_ZERO Enum = 0
|
||||
Enum_ONE Enum = 1
|
||||
Enum_TWO Enum = 2
|
||||
Enum_TEN Enum = 10
|
||||
)
|
||||
|
||||
func (e Enum) Type() protoreflect.EnumType {
|
||||
return xxx_Test_protoFile_enumTypes[0]
|
||||
}
|
||||
func (e Enum) Number() protoreflect.EnumNumber {
|
||||
return protoreflect.EnumNumber(e)
|
||||
}
|
||||
|
||||
var Enum_name = map[int32]string{
|
||||
0: "ZERO",
|
||||
1: "ONE",
|
||||
2: "TWO",
|
||||
10: "TEN",
|
||||
}
|
||||
|
||||
var Enum_value = map[string]int32{
|
||||
"ZERO": 0,
|
||||
"ONE": 1,
|
||||
"TWO": 2,
|
||||
"TEN": 10,
|
||||
}
|
||||
|
||||
func (x Enum) String() string {
|
||||
return proto.EnumName(Enum_name, int32(x))
|
||||
}
|
||||
|
||||
func (Enum) EnumDescriptor() ([]byte, []int) {
|
||||
return fileDescriptor_33e0a17922cde063_gzipped, []int{0}
|
||||
}
|
||||
|
||||
type Enums_NestedEnum int32
|
||||
|
||||
const (
|
||||
Enums_CERO Enums_NestedEnum = 0
|
||||
Enums_UNO Enums_NestedEnum = 1
|
||||
Enums_DOS Enums_NestedEnum = 2
|
||||
Enums_DIEZ Enums_NestedEnum = 10
|
||||
)
|
||||
|
||||
func (e Enums_NestedEnum) Type() protoreflect.EnumType {
|
||||
return xxx_Test_protoFile_enumTypes[1]
|
||||
}
|
||||
func (e Enums_NestedEnum) Number() protoreflect.EnumNumber {
|
||||
return protoreflect.EnumNumber(e)
|
||||
}
|
||||
|
||||
var Enums_NestedEnum_name = map[int32]string{
|
||||
0: "CERO",
|
||||
1: "UNO",
|
||||
2: "DOS",
|
||||
10: "DIEZ",
|
||||
}
|
||||
|
||||
var Enums_NestedEnum_value = map[string]int32{
|
||||
"CERO": 0,
|
||||
"UNO": 1,
|
||||
"DOS": 2,
|
||||
"DIEZ": 10,
|
||||
}
|
||||
|
||||
func (x Enums_NestedEnum) String() string {
|
||||
return proto.EnumName(Enums_NestedEnum_name, int32(x))
|
||||
}
|
||||
|
||||
func (Enums_NestedEnum) EnumDescriptor() ([]byte, []int) {
|
||||
return fileDescriptor_33e0a17922cde063_gzipped, []int{1, 0}
|
||||
}
|
||||
|
||||
// Scalars contains scalar field types.
|
||||
type Scalars struct {
|
||||
SBool bool `protobuf:"varint,1,opt,name=s_bool,json=sBool,proto3" json:"s_bool,omitempty"`
|
||||
SInt32 int32 `protobuf:"varint,2,opt,name=s_int32,json=sInt32,proto3" json:"s_int32,omitempty"`
|
||||
SInt64 int64 `protobuf:"varint,3,opt,name=s_int64,json=sInt64,proto3" json:"s_int64,omitempty"`
|
||||
SUint32 uint32 `protobuf:"varint,4,opt,name=s_uint32,json=sUint32,proto3" json:"s_uint32,omitempty"`
|
||||
SUint64 uint64 `protobuf:"varint,5,opt,name=s_uint64,json=sUint64,proto3" json:"s_uint64,omitempty"`
|
||||
SSint32 int32 `protobuf:"zigzag32,6,opt,name=s_sint32,json=sSint32,proto3" json:"s_sint32,omitempty"`
|
||||
SSint64 int64 `protobuf:"zigzag64,7,opt,name=s_sint64,json=sSint64,proto3" json:"s_sint64,omitempty"`
|
||||
SFixed32 uint32 `protobuf:"fixed32,8,opt,name=s_fixed32,json=sFixed32,proto3" json:"s_fixed32,omitempty"`
|
||||
SFixed64 uint64 `protobuf:"fixed64,9,opt,name=s_fixed64,json=sFixed64,proto3" json:"s_fixed64,omitempty"`
|
||||
SSfixed32 int32 `protobuf:"fixed32,10,opt,name=s_sfixed32,json=sSfixed32,proto3" json:"s_sfixed32,omitempty"`
|
||||
SSfixed64 int64 `protobuf:"fixed64,11,opt,name=s_sfixed64,json=sSfixed64,proto3" json:"s_sfixed64,omitempty"`
|
||||
SFloat float32 `protobuf:"fixed32,20,opt,name=s_float,json=sFloat,proto3" json:"s_float,omitempty"`
|
||||
SDouble float64 `protobuf:"fixed64,21,opt,name=s_double,json=sDouble,proto3" json:"s_double,omitempty"`
|
||||
SBytes []byte `protobuf:"bytes,14,opt,name=s_bytes,json=sBytes,proto3" json:"s_bytes,omitempty"`
|
||||
SString string `protobuf:"bytes,13,opt,name=s_string,json=sString,proto3" json:"s_string,omitempty"`
|
||||
XXX_NoUnkeyedLiteral struct{} `json:"-"`
|
||||
XXX_unrecognized []byte `json:"-"`
|
||||
XXX_sizecache int32 `json:"-"`
|
||||
}
|
||||
|
||||
func (m *Scalars) ProtoReflect() protoreflect.Message {
|
||||
return xxx_Test_protoFile_messageTypes[0].MessageOf(m)
|
||||
}
|
||||
func (m *Scalars) Reset() { *m = Scalars{} }
|
||||
func (m *Scalars) String() string { return proto.CompactTextString(m) }
|
||||
func (*Scalars) ProtoMessage() {}
|
||||
func (*Scalars) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_33e0a17922cde063_gzipped, []int{0}
|
||||
}
|
||||
|
||||
func (m *Scalars) XXX_Unmarshal(b []byte) error {
|
||||
return xxx_messageInfo_Scalars.Unmarshal(m, b)
|
||||
}
|
||||
func (m *Scalars) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
|
||||
return xxx_messageInfo_Scalars.Marshal(b, m, deterministic)
|
||||
}
|
||||
func (m *Scalars) XXX_Merge(src proto.Message) {
|
||||
xxx_messageInfo_Scalars.Merge(m, src)
|
||||
}
|
||||
func (m *Scalars) XXX_Size() int {
|
||||
return xxx_messageInfo_Scalars.Size(m)
|
||||
}
|
||||
func (m *Scalars) XXX_DiscardUnknown() {
|
||||
xxx_messageInfo_Scalars.DiscardUnknown(m)
|
||||
}
|
||||
|
||||
var xxx_messageInfo_Scalars proto.InternalMessageInfo
|
||||
|
||||
func (m *Scalars) GetSBool() bool {
|
||||
if m != nil {
|
||||
return m.SBool
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
func (m *Scalars) GetSInt32() int32 {
|
||||
if m != nil {
|
||||
return m.SInt32
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
func (m *Scalars) GetSInt64() int64 {
|
||||
if m != nil {
|
||||
return m.SInt64
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
func (m *Scalars) GetSUint32() uint32 {
|
||||
if m != nil {
|
||||
return m.SUint32
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
func (m *Scalars) GetSUint64() uint64 {
|
||||
if m != nil {
|
||||
return m.SUint64
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
func (m *Scalars) GetSSint32() int32 {
|
||||
if m != nil {
|
||||
return m.SSint32
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
func (m *Scalars) GetSSint64() int64 {
|
||||
if m != nil {
|
||||
return m.SSint64
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
func (m *Scalars) GetSFixed32() uint32 {
|
||||
if m != nil {
|
||||
return m.SFixed32
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
func (m *Scalars) GetSFixed64() uint64 {
|
||||
if m != nil {
|
||||
return m.SFixed64
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
func (m *Scalars) GetSSfixed32() int32 {
|
||||
if m != nil {
|
||||
return m.SSfixed32
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
func (m *Scalars) GetSSfixed64() int64 {
|
||||
if m != nil {
|
||||
return m.SSfixed64
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
func (m *Scalars) GetSFloat() float32 {
|
||||
if m != nil {
|
||||
return m.SFloat
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
func (m *Scalars) GetSDouble() float64 {
|
||||
if m != nil {
|
||||
return m.SDouble
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
func (m *Scalars) GetSBytes() []byte {
|
||||
if m != nil {
|
||||
return m.SBytes
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (m *Scalars) GetSString() string {
|
||||
if m != nil {
|
||||
return m.SString
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
// Message contains enum fields.
|
||||
type Enums struct {
|
||||
SEnum Enum `protobuf:"varint,1,opt,name=s_enum,json=sEnum,proto3,enum=pb3.Enum" json:"s_enum,omitempty"`
|
||||
SNestedEnum Enums_NestedEnum `protobuf:"varint,3,opt,name=s_nested_enum,json=sNestedEnum,proto3,enum=pb3.Enums_NestedEnum" json:"s_nested_enum,omitempty"`
|
||||
XXX_NoUnkeyedLiteral struct{} `json:"-"`
|
||||
XXX_unrecognized []byte `json:"-"`
|
||||
XXX_sizecache int32 `json:"-"`
|
||||
}
|
||||
|
||||
func (m *Enums) ProtoReflect() protoreflect.Message {
|
||||
return xxx_Test_protoFile_messageTypes[1].MessageOf(m)
|
||||
}
|
||||
func (m *Enums) Reset() { *m = Enums{} }
|
||||
func (m *Enums) String() string { return proto.CompactTextString(m) }
|
||||
func (*Enums) ProtoMessage() {}
|
||||
func (*Enums) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_33e0a17922cde063_gzipped, []int{1}
|
||||
}
|
||||
|
||||
func (m *Enums) XXX_Unmarshal(b []byte) error {
|
||||
return xxx_messageInfo_Enums.Unmarshal(m, b)
|
||||
}
|
||||
func (m *Enums) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
|
||||
return xxx_messageInfo_Enums.Marshal(b, m, deterministic)
|
||||
}
|
||||
func (m *Enums) XXX_Merge(src proto.Message) {
|
||||
xxx_messageInfo_Enums.Merge(m, src)
|
||||
}
|
||||
func (m *Enums) XXX_Size() int {
|
||||
return xxx_messageInfo_Enums.Size(m)
|
||||
}
|
||||
func (m *Enums) XXX_DiscardUnknown() {
|
||||
xxx_messageInfo_Enums.DiscardUnknown(m)
|
||||
}
|
||||
|
||||
var xxx_messageInfo_Enums proto.InternalMessageInfo
|
||||
|
||||
func (m *Enums) GetSEnum() Enum {
|
||||
if m != nil {
|
||||
return m.SEnum
|
||||
}
|
||||
return Enum_ZERO
|
||||
}
|
||||
|
||||
func (m *Enums) GetSNestedEnum() Enums_NestedEnum {
|
||||
if m != nil {
|
||||
return m.SNestedEnum
|
||||
}
|
||||
return Enums_CERO
|
||||
}
|
||||
|
||||
// Message contains nested message field.
|
||||
type Nests struct {
|
||||
SNested *Nested `protobuf:"bytes,2,opt,name=s_nested,json=sNested,proto3" json:"s_nested,omitempty"`
|
||||
XXX_NoUnkeyedLiteral struct{} `json:"-"`
|
||||
XXX_unrecognized []byte `json:"-"`
|
||||
XXX_sizecache int32 `json:"-"`
|
||||
}
|
||||
|
||||
func (m *Nests) ProtoReflect() protoreflect.Message {
|
||||
return xxx_Test_protoFile_messageTypes[2].MessageOf(m)
|
||||
}
|
||||
func (m *Nests) Reset() { *m = Nests{} }
|
||||
func (m *Nests) String() string { return proto.CompactTextString(m) }
|
||||
func (*Nests) ProtoMessage() {}
|
||||
func (*Nests) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_33e0a17922cde063_gzipped, []int{2}
|
||||
}
|
||||
|
||||
func (m *Nests) XXX_Unmarshal(b []byte) error {
|
||||
return xxx_messageInfo_Nests.Unmarshal(m, b)
|
||||
}
|
||||
func (m *Nests) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
|
||||
return xxx_messageInfo_Nests.Marshal(b, m, deterministic)
|
||||
}
|
||||
func (m *Nests) XXX_Merge(src proto.Message) {
|
||||
xxx_messageInfo_Nests.Merge(m, src)
|
||||
}
|
||||
func (m *Nests) XXX_Size() int {
|
||||
return xxx_messageInfo_Nests.Size(m)
|
||||
}
|
||||
func (m *Nests) XXX_DiscardUnknown() {
|
||||
xxx_messageInfo_Nests.DiscardUnknown(m)
|
||||
}
|
||||
|
||||
var xxx_messageInfo_Nests proto.InternalMessageInfo
|
||||
|
||||
func (m *Nests) GetSNested() *Nested {
|
||||
if m != nil {
|
||||
return m.SNested
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
// Message type used as submessage.
|
||||
type Nested struct {
|
||||
SString string `protobuf:"bytes,1,opt,name=s_string,json=sString,proto3" json:"s_string,omitempty"`
|
||||
SNested *Nested `protobuf:"bytes,2,opt,name=s_nested,json=sNested,proto3" json:"s_nested,omitempty"`
|
||||
XXX_NoUnkeyedLiteral struct{} `json:"-"`
|
||||
XXX_unrecognized []byte `json:"-"`
|
||||
XXX_sizecache int32 `json:"-"`
|
||||
}
|
||||
|
||||
func (m *Nested) ProtoReflect() protoreflect.Message {
|
||||
return xxx_Test_protoFile_messageTypes[3].MessageOf(m)
|
||||
}
|
||||
func (m *Nested) Reset() { *m = Nested{} }
|
||||
func (m *Nested) String() string { return proto.CompactTextString(m) }
|
||||
func (*Nested) ProtoMessage() {}
|
||||
func (*Nested) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_33e0a17922cde063_gzipped, []int{3}
|
||||
}
|
||||
|
||||
func (m *Nested) XXX_Unmarshal(b []byte) error {
|
||||
return xxx_messageInfo_Nested.Unmarshal(m, b)
|
||||
}
|
||||
func (m *Nested) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
|
||||
return xxx_messageInfo_Nested.Marshal(b, m, deterministic)
|
||||
}
|
||||
func (m *Nested) XXX_Merge(src proto.Message) {
|
||||
xxx_messageInfo_Nested.Merge(m, src)
|
||||
}
|
||||
func (m *Nested) XXX_Size() int {
|
||||
return xxx_messageInfo_Nested.Size(m)
|
||||
}
|
||||
func (m *Nested) XXX_DiscardUnknown() {
|
||||
xxx_messageInfo_Nested.DiscardUnknown(m)
|
||||
}
|
||||
|
||||
var xxx_messageInfo_Nested proto.InternalMessageInfo
|
||||
|
||||
func (m *Nested) GetSString() string {
|
||||
if m != nil {
|
||||
return m.SString
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
func (m *Nested) GetSNested() *Nested {
|
||||
if m != nil {
|
||||
return m.SNested
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
// Message contains oneof field.
|
||||
type Oneofs struct {
|
||||
// Types that are valid to be assigned to Union:
|
||||
// *Oneofs_OneofEnum
|
||||
// *Oneofs_OneofString
|
||||
// *Oneofs_OneofNested
|
||||
Union isOneofs_Union `protobuf_oneof:"union"`
|
||||
XXX_NoUnkeyedLiteral struct{} `json:"-"`
|
||||
XXX_unrecognized []byte `json:"-"`
|
||||
XXX_sizecache int32 `json:"-"`
|
||||
}
|
||||
|
||||
func (m *Oneofs) ProtoReflect() protoreflect.Message {
|
||||
return xxx_Test_protoFile_messageTypes[4].MessageOf(m)
|
||||
}
|
||||
func (m *Oneofs) Reset() { *m = Oneofs{} }
|
||||
func (m *Oneofs) String() string { return proto.CompactTextString(m) }
|
||||
func (*Oneofs) ProtoMessage() {}
|
||||
func (*Oneofs) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_33e0a17922cde063_gzipped, []int{4}
|
||||
}
|
||||
|
||||
func (m *Oneofs) XXX_Unmarshal(b []byte) error {
|
||||
return xxx_messageInfo_Oneofs.Unmarshal(m, b)
|
||||
}
|
||||
func (m *Oneofs) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
|
||||
return xxx_messageInfo_Oneofs.Marshal(b, m, deterministic)
|
||||
}
|
||||
func (m *Oneofs) XXX_Merge(src proto.Message) {
|
||||
xxx_messageInfo_Oneofs.Merge(m, src)
|
||||
}
|
||||
func (m *Oneofs) XXX_Size() int {
|
||||
return xxx_messageInfo_Oneofs.Size(m)
|
||||
}
|
||||
func (m *Oneofs) XXX_DiscardUnknown() {
|
||||
xxx_messageInfo_Oneofs.DiscardUnknown(m)
|
||||
}
|
||||
|
||||
var xxx_messageInfo_Oneofs proto.InternalMessageInfo
|
||||
|
||||
type isOneofs_Union interface {
|
||||
isOneofs_Union()
|
||||
}
|
||||
|
||||
type Oneofs_OneofEnum struct {
|
||||
OneofEnum Enum `protobuf:"varint,1,opt,name=oneof_enum,json=oneofEnum,proto3,enum=pb3.Enum,oneof"`
|
||||
}
|
||||
|
||||
type Oneofs_OneofString struct {
|
||||
OneofString string `protobuf:"bytes,2,opt,name=oneof_string,json=oneofString,proto3,oneof"`
|
||||
}
|
||||
|
||||
type Oneofs_OneofNested struct {
|
||||
OneofNested *Nested `protobuf:"bytes,3,opt,name=oneof_nested,json=oneofNested,proto3,oneof"`
|
||||
}
|
||||
|
||||
func (*Oneofs_OneofEnum) isOneofs_Union() {}
|
||||
|
||||
func (*Oneofs_OneofString) isOneofs_Union() {}
|
||||
|
||||
func (*Oneofs_OneofNested) isOneofs_Union() {}
|
||||
|
||||
func (m *Oneofs) GetUnion() isOneofs_Union {
|
||||
if m != nil {
|
||||
return m.Union
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (m *Oneofs) GetOneofEnum() Enum {
|
||||
if x, ok := m.GetUnion().(*Oneofs_OneofEnum); ok {
|
||||
return x.OneofEnum
|
||||
}
|
||||
return Enum_ZERO
|
||||
}
|
||||
|
||||
func (m *Oneofs) GetOneofString() string {
|
||||
if x, ok := m.GetUnion().(*Oneofs_OneofString); ok {
|
||||
return x.OneofString
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
func (m *Oneofs) GetOneofNested() *Nested {
|
||||
if x, ok := m.GetUnion().(*Oneofs_OneofNested); ok {
|
||||
return x.OneofNested
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
// XXX_OneofWrappers is for the internal use of the proto package.
|
||||
func (*Oneofs) XXX_OneofWrappers() []interface{} {
|
||||
return []interface{}{
|
||||
(*Oneofs_OneofEnum)(nil),
|
||||
(*Oneofs_OneofString)(nil),
|
||||
(*Oneofs_OneofNested)(nil),
|
||||
}
|
||||
}
|
||||
|
||||
// Message contains map fields.
|
||||
type Maps struct {
|
||||
Int32ToStr map[int32]string `protobuf:"bytes,1,rep,name=int32_to_str,json=int32ToStr,proto3" json:"int32_to_str,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
|
||||
BoolToUint32 map[bool]uint32 `protobuf:"bytes,2,rep,name=bool_to_uint32,json=boolToUint32,proto3" json:"bool_to_uint32,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"`
|
||||
Uint64ToEnum map[uint64]Enum `protobuf:"bytes,3,rep,name=uint64_to_enum,json=uint64ToEnum,proto3" json:"uint64_to_enum,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3,enum=pb3.Enum"`
|
||||
StrToNested map[string]*Nested `protobuf:"bytes,4,rep,name=str_to_nested,json=strToNested,proto3" json:"str_to_nested,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
|
||||
StrToOneofs map[string]*Oneofs `protobuf:"bytes,5,rep,name=str_to_oneofs,json=strToOneofs,proto3" json:"str_to_oneofs,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
|
||||
XXX_NoUnkeyedLiteral struct{} `json:"-"`
|
||||
XXX_unrecognized []byte `json:"-"`
|
||||
XXX_sizecache int32 `json:"-"`
|
||||
}
|
||||
|
||||
func (m *Maps) ProtoReflect() protoreflect.Message {
|
||||
return xxx_Test_protoFile_messageTypes[5].MessageOf(m)
|
||||
}
|
||||
func (m *Maps) Reset() { *m = Maps{} }
|
||||
func (m *Maps) String() string { return proto.CompactTextString(m) }
|
||||
func (*Maps) ProtoMessage() {}
|
||||
func (*Maps) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_33e0a17922cde063_gzipped, []int{5}
|
||||
}
|
||||
|
||||
func (m *Maps) XXX_Unmarshal(b []byte) error {
|
||||
return xxx_messageInfo_Maps.Unmarshal(m, b)
|
||||
}
|
||||
func (m *Maps) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
|
||||
return xxx_messageInfo_Maps.Marshal(b, m, deterministic)
|
||||
}
|
||||
func (m *Maps) XXX_Merge(src proto.Message) {
|
||||
xxx_messageInfo_Maps.Merge(m, src)
|
||||
}
|
||||
func (m *Maps) XXX_Size() int {
|
||||
return xxx_messageInfo_Maps.Size(m)
|
||||
}
|
||||
func (m *Maps) XXX_DiscardUnknown() {
|
||||
xxx_messageInfo_Maps.DiscardUnknown(m)
|
||||
}
|
||||
|
||||
var xxx_messageInfo_Maps proto.InternalMessageInfo
|
||||
|
||||
func (m *Maps) GetInt32ToStr() map[int32]string {
|
||||
if m != nil {
|
||||
return m.Int32ToStr
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (m *Maps) GetBoolToUint32() map[bool]uint32 {
|
||||
if m != nil {
|
||||
return m.BoolToUint32
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (m *Maps) GetUint64ToEnum() map[uint64]Enum {
|
||||
if m != nil {
|
||||
return m.Uint64ToEnum
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (m *Maps) GetStrToNested() map[string]*Nested {
|
||||
if m != nil {
|
||||
return m.StrToNested
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (m *Maps) GetStrToOneofs() map[string]*Oneofs {
|
||||
if m != nil {
|
||||
return m.StrToOneofs
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func init() {
|
||||
proto.RegisterFile("encoding/testprotos/pb3/test.proto", fileDescriptor_33e0a17922cde063_gzipped)
|
||||
proto.RegisterEnum("pb3.Enum", Enum_name, Enum_value)
|
||||
proto.RegisterEnum("pb3.Enums_NestedEnum", Enums_NestedEnum_name, Enums_NestedEnum_value)
|
||||
proto.RegisterType((*Scalars)(nil), "pb3.Scalars")
|
||||
proto.RegisterType((*Enums)(nil), "pb3.Enums")
|
||||
proto.RegisterType((*Nests)(nil), "pb3.Nests")
|
||||
proto.RegisterType((*Nested)(nil), "pb3.Nested")
|
||||
proto.RegisterType((*Oneofs)(nil), "pb3.Oneofs")
|
||||
proto.RegisterType((*Maps)(nil), "pb3.Maps")
|
||||
proto.RegisterMapType((map[bool]uint32)(nil), "pb3.Maps.BoolToUint32Entry")
|
||||
proto.RegisterMapType((map[int32]string)(nil), "pb3.Maps.Int32ToStrEntry")
|
||||
proto.RegisterMapType((map[string]*Nested)(nil), "pb3.Maps.StrToNestedEntry")
|
||||
proto.RegisterMapType((map[string]*Oneofs)(nil), "pb3.Maps.StrToOneofsEntry")
|
||||
proto.RegisterMapType((map[uint64]Enum)(nil), "pb3.Maps.Uint64ToEnumEntry")
|
||||
}
|
||||
|
||||
var fileDescriptor_33e0a17922cde063 = []byte{
|
||||
// 1690 bytes of the wire-encoded FileDescriptorProto
|
||||
0x0a, 0x22, 0x65, 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x70,
|
||||
0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2f, 0x70, 0x62, 0x33, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x70,
|
||||
0x72, 0x6f, 0x74, 0x6f, 0x12, 0x03, 0x70, 0x62, 0x33, 0x22, 0x9e, 0x03, 0x0a, 0x07, 0x53, 0x63,
|
||||
0x61, 0x6c, 0x61, 0x72, 0x73, 0x12, 0x15, 0x0a, 0x06, 0x73, 0x5f, 0x62, 0x6f, 0x6f, 0x6c, 0x18,
|
||||
0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x73, 0x42, 0x6f, 0x6f, 0x6c, 0x12, 0x17, 0x0a, 0x07,
|
||||
0x73, 0x5f, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73,
|
||||
0x49, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x17, 0x0a, 0x07, 0x73, 0x5f, 0x69, 0x6e, 0x74, 0x36, 0x34,
|
||||
0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x73, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x19,
|
||||
0x0a, 0x08, 0x73, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d,
|
||||
0x52, 0x07, 0x73, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x19, 0x0a, 0x08, 0x73, 0x5f, 0x75,
|
||||
0x69, 0x6e, 0x74, 0x36, 0x34, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x73, 0x55, 0x69,
|
||||
0x6e, 0x74, 0x36, 0x34, 0x12, 0x19, 0x0a, 0x08, 0x73, 0x5f, 0x73, 0x69, 0x6e, 0x74, 0x33, 0x32,
|
||||
0x18, 0x06, 0x20, 0x01, 0x28, 0x11, 0x52, 0x07, 0x73, 0x53, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x12,
|
||||
0x19, 0x0a, 0x08, 0x73, 0x5f, 0x73, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x18, 0x07, 0x20, 0x01, 0x28,
|
||||
0x12, 0x52, 0x07, 0x73, 0x53, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x5f,
|
||||
0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x18, 0x08, 0x20, 0x01, 0x28, 0x07, 0x52, 0x08, 0x73,
|
||||
0x46, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x5f, 0x66, 0x69, 0x78,
|
||||
0x65, 0x64, 0x36, 0x34, 0x18, 0x09, 0x20, 0x01, 0x28, 0x06, 0x52, 0x08, 0x73, 0x46, 0x69, 0x78,
|
||||
0x65, 0x64, 0x36, 0x34, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x5f, 0x73, 0x66, 0x69, 0x78, 0x65, 0x64,
|
||||
0x33, 0x32, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0f, 0x52, 0x09, 0x73, 0x53, 0x66, 0x69, 0x78, 0x65,
|
||||
0x64, 0x33, 0x32, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x5f, 0x73, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36,
|
||||
0x34, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x10, 0x52, 0x09, 0x73, 0x53, 0x66, 0x69, 0x78, 0x65, 0x64,
|
||||
0x36, 0x34, 0x12, 0x17, 0x0a, 0x07, 0x73, 0x5f, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x18, 0x14, 0x20,
|
||||
0x01, 0x28, 0x02, 0x52, 0x06, 0x73, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x73,
|
||||
0x5f, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x18, 0x15, 0x20, 0x01, 0x28, 0x01, 0x52, 0x07, 0x73,
|
||||
0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x73, 0x5f, 0x62, 0x79, 0x74, 0x65,
|
||||
0x73, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x73, 0x42, 0x79, 0x74, 0x65, 0x73, 0x12,
|
||||
0x19, 0x0a, 0x08, 0x73, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x18, 0x0d, 0x20, 0x01, 0x28,
|
||||
0x09, 0x52, 0x07, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x22, 0x98, 0x01, 0x0a, 0x05, 0x45,
|
||||
0x6e, 0x75, 0x6d, 0x73, 0x12, 0x20, 0x0a, 0x06, 0x73, 0x5f, 0x65, 0x6e, 0x75, 0x6d, 0x18, 0x01,
|
||||
0x20, 0x01, 0x28, 0x0e, 0x32, 0x09, 0x2e, 0x70, 0x62, 0x33, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52,
|
||||
0x05, 0x73, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x39, 0x0a, 0x0d, 0x73, 0x5f, 0x6e, 0x65, 0x73, 0x74,
|
||||
0x65, 0x64, 0x5f, 0x65, 0x6e, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x15, 0x2e,
|
||||
0x70, 0x62, 0x33, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x73, 0x2e, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64,
|
||||
0x45, 0x6e, 0x75, 0x6d, 0x52, 0x0b, 0x73, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x45, 0x6e, 0x75,
|
||||
0x6d, 0x22, 0x32, 0x0a, 0x0a, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x45, 0x6e, 0x75, 0x6d, 0x12,
|
||||
0x08, 0x0a, 0x04, 0x43, 0x45, 0x52, 0x4f, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x55, 0x4e, 0x4f,
|
||||
0x10, 0x01, 0x12, 0x07, 0x0a, 0x03, 0x44, 0x4f, 0x53, 0x10, 0x02, 0x12, 0x08, 0x0a, 0x04, 0x44,
|
||||
0x49, 0x45, 0x5a, 0x10, 0x0a, 0x22, 0x2f, 0x0a, 0x05, 0x4e, 0x65, 0x73, 0x74, 0x73, 0x12, 0x26,
|
||||
0x0a, 0x08, 0x73, 0x5f, 0x6e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b,
|
||||
0x32, 0x0b, 0x2e, 0x70, 0x62, 0x33, 0x2e, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x52, 0x07, 0x73,
|
||||
0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x22, 0x4b, 0x0a, 0x06, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64,
|
||||
0x12, 0x19, 0x0a, 0x08, 0x73, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x18, 0x01, 0x20, 0x01,
|
||||
0x28, 0x09, 0x52, 0x07, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x12, 0x26, 0x0a, 0x08, 0x73,
|
||||
0x5f, 0x6e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e,
|
||||
0x70, 0x62, 0x33, 0x2e, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x52, 0x07, 0x73, 0x4e, 0x65, 0x73,
|
||||
0x74, 0x65, 0x64, 0x22, 0x94, 0x01, 0x0a, 0x06, 0x4f, 0x6e, 0x65, 0x6f, 0x66, 0x73, 0x12, 0x2a,
|
||||
0x0a, 0x0a, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x5f, 0x65, 0x6e, 0x75, 0x6d, 0x18, 0x01, 0x20, 0x01,
|
||||
0x28, 0x0e, 0x32, 0x09, 0x2e, 0x70, 0x62, 0x33, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52,
|
||||
0x09, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x23, 0x0a, 0x0c, 0x6f, 0x6e,
|
||||
0x65, 0x6f, 0x66, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
|
||||
0x48, 0x00, 0x52, 0x0b, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x12,
|
||||
0x30, 0x0a, 0x0c, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x5f, 0x6e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x18,
|
||||
0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x70, 0x62, 0x33, 0x2e, 0x4e, 0x65, 0x73, 0x74,
|
||||
0x65, 0x64, 0x48, 0x00, 0x52, 0x0b, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x4e, 0x65, 0x73, 0x74, 0x65,
|
||||
0x64, 0x42, 0x07, 0x0a, 0x05, 0x75, 0x6e, 0x69, 0x6f, 0x6e, 0x22, 0xaf, 0x05, 0x0a, 0x04, 0x4d,
|
||||
0x61, 0x70, 0x73, 0x12, 0x3b, 0x0a, 0x0c, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x5f, 0x74, 0x6f, 0x5f,
|
||||
0x73, 0x74, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x70, 0x62, 0x33, 0x2e,
|
||||
0x4d, 0x61, 0x70, 0x73, 0x2e, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x54, 0x6f, 0x53, 0x74, 0x72, 0x45,
|
||||
0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x54, 0x6f, 0x53, 0x74, 0x72,
|
||||
0x12, 0x41, 0x0a, 0x0e, 0x62, 0x6f, 0x6f, 0x6c, 0x5f, 0x74, 0x6f, 0x5f, 0x75, 0x69, 0x6e, 0x74,
|
||||
0x33, 0x32, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x70, 0x62, 0x33, 0x2e, 0x4d,
|
||||
0x61, 0x70, 0x73, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x54, 0x6f, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32,
|
||||
0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x62, 0x6f, 0x6f, 0x6c, 0x54, 0x6f, 0x55, 0x69, 0x6e,
|
||||
0x74, 0x33, 0x32, 0x12, 0x41, 0x0a, 0x0e, 0x75, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x5f, 0x74, 0x6f,
|
||||
0x5f, 0x65, 0x6e, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x70, 0x62,
|
||||
0x33, 0x2e, 0x4d, 0x61, 0x70, 0x73, 0x2e, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x54, 0x6f, 0x45,
|
||||
0x6e, 0x75, 0x6d, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x75, 0x69, 0x6e, 0x74, 0x36, 0x34,
|
||||
0x54, 0x6f, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x3e, 0x0a, 0x0d, 0x73, 0x74, 0x72, 0x5f, 0x74, 0x6f,
|
||||
0x5f, 0x6e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e,
|
||||
0x70, 0x62, 0x33, 0x2e, 0x4d, 0x61, 0x70, 0x73, 0x2e, 0x53, 0x74, 0x72, 0x54, 0x6f, 0x4e, 0x65,
|
||||
0x73, 0x74, 0x65, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0b, 0x73, 0x74, 0x72, 0x54, 0x6f,
|
||||
0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x12, 0x3e, 0x0a, 0x0d, 0x73, 0x74, 0x72, 0x5f, 0x74, 0x6f,
|
||||
0x5f, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e,
|
||||
0x70, 0x62, 0x33, 0x2e, 0x4d, 0x61, 0x70, 0x73, 0x2e, 0x53, 0x74, 0x72, 0x54, 0x6f, 0x4f, 0x6e,
|
||||
0x65, 0x6f, 0x66, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0b, 0x73, 0x74, 0x72, 0x54, 0x6f,
|
||||
0x4f, 0x6e, 0x65, 0x6f, 0x66, 0x73, 0x1a, 0x3d, 0x0a, 0x0f, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x54,
|
||||
0x6f, 0x53, 0x74, 0x72, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79,
|
||||
0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76,
|
||||
0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75,
|
||||
0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x3f, 0x0a, 0x11, 0x42, 0x6f, 0x6f, 0x6c, 0x54, 0x6f, 0x55,
|
||||
0x69, 0x6e, 0x74, 0x33, 0x32, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65,
|
||||
0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05,
|
||||
0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x76, 0x61, 0x6c,
|
||||
0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x4a, 0x0a, 0x11, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34,
|
||||
0x54, 0x6f, 0x45, 0x6e, 0x75, 0x6d, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b,
|
||||
0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x1f, 0x0a,
|
||||
0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x09, 0x2e, 0x70,
|
||||
0x62, 0x33, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02,
|
||||
0x38, 0x01, 0x1a, 0x4b, 0x0a, 0x10, 0x53, 0x74, 0x72, 0x54, 0x6f, 0x4e, 0x65, 0x73, 0x74, 0x65,
|
||||
0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20,
|
||||
0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x21, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75,
|
||||
0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x70, 0x62, 0x33, 0x2e, 0x4e, 0x65,
|
||||
0x73, 0x74, 0x65, 0x64, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a,
|
||||
0x4b, 0x0a, 0x10, 0x53, 0x74, 0x72, 0x54, 0x6f, 0x4f, 0x6e, 0x65, 0x6f, 0x66, 0x73, 0x45, 0x6e,
|
||||
0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
|
||||
0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x21, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02,
|
||||
0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x70, 0x62, 0x33, 0x2e, 0x4f, 0x6e, 0x65, 0x6f, 0x66,
|
||||
0x73, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x2a, 0x2b, 0x0a, 0x04,
|
||||
0x45, 0x6e, 0x75, 0x6d, 0x12, 0x08, 0x0a, 0x04, 0x5a, 0x45, 0x52, 0x4f, 0x10, 0x00, 0x12, 0x07,
|
||||
0x0a, 0x03, 0x4f, 0x4e, 0x45, 0x10, 0x01, 0x12, 0x07, 0x0a, 0x03, 0x54, 0x57, 0x4f, 0x10, 0x02,
|
||||
0x12, 0x07, 0x0a, 0x03, 0x54, 0x45, 0x4e, 0x10, 0x0a, 0x42, 0x37, 0x5a, 0x35, 0x67, 0x69, 0x74,
|
||||
0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2f, 0x70,
|
||||
0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x76, 0x32, 0x2f, 0x65, 0x6e, 0x63, 0x6f, 0x64,
|
||||
0x69, 0x6e, 0x67, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2f, 0x70,
|
||||
0x62, 0x33, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
|
||||
}
|
||||
|
||||
var fileDescriptor_33e0a17922cde063_gzipped = func() []byte {
|
||||
bb := new(bytes.Buffer)
|
||||
zw, _ := gzip.NewWriterLevel(bb, gzip.NoCompression)
|
||||
zw.Write(fileDescriptor_33e0a17922cde063)
|
||||
zw.Close()
|
||||
return bb.Bytes()
|
||||
}()
|
||||
|
||||
const _ = protoimpl.EnforceVersion(protoimpl.Version - 0)
|
||||
|
||||
var Test_protoFile protoreflect.FileDescriptor
|
||||
|
||||
var xxx_Test_protoFile_enumTypes [2]protoreflect.EnumType
|
||||
var xxx_Test_protoFile_messageTypes [11]protoimpl.MessageType
|
||||
var xxx_Test_protoFile_goTypes = []interface{}{
|
||||
(Enum)(0), // 0: pb3.Enum
|
||||
(Enums_NestedEnum)(0), // 1: pb3.Enums.NestedEnum
|
||||
(*Scalars)(nil), // 2: pb3.Scalars
|
||||
(*Enums)(nil), // 3: pb3.Enums
|
||||
(*Nests)(nil), // 4: pb3.Nests
|
||||
(*Nested)(nil), // 5: pb3.Nested
|
||||
(*Oneofs)(nil), // 6: pb3.Oneofs
|
||||
(*Maps)(nil), // 7: pb3.Maps
|
||||
nil, // 8: pb3.Maps.Int32ToStrEntry
|
||||
nil, // 9: pb3.Maps.BoolToUint32Entry
|
||||
nil, // 10: pb3.Maps.Uint64ToEnumEntry
|
||||
nil, // 11: pb3.Maps.StrToNestedEntry
|
||||
nil, // 12: pb3.Maps.StrToOneofsEntry
|
||||
}
|
||||
var xxx_Test_protoFile_depIdxs = []int32{
|
||||
0, // pb3.Enums.s_enum:type_name -> pb3.Enum
|
||||
1, // pb3.Enums.s_nested_enum:type_name -> pb3.Enums.NestedEnum
|
||||
5, // pb3.Nests.s_nested:type_name -> pb3.Nested
|
||||
5, // pb3.Nested.s_nested:type_name -> pb3.Nested
|
||||
0, // pb3.Oneofs.oneof_enum:type_name -> pb3.Enum
|
||||
5, // pb3.Oneofs.oneof_nested:type_name -> pb3.Nested
|
||||
8, // pb3.Maps.int32_to_str:type_name -> pb3.Maps.Int32ToStrEntry
|
||||
9, // pb3.Maps.bool_to_uint32:type_name -> pb3.Maps.BoolToUint32Entry
|
||||
10, // pb3.Maps.uint64_to_enum:type_name -> pb3.Maps.Uint64ToEnumEntry
|
||||
11, // pb3.Maps.str_to_nested:type_name -> pb3.Maps.StrToNestedEntry
|
||||
12, // pb3.Maps.str_to_oneofs:type_name -> pb3.Maps.StrToOneofsEntry
|
||||
0, // pb3.Maps.Uint64ToEnumEntry.value:type_name -> pb3.Enum
|
||||
5, // pb3.Maps.StrToNestedEntry.value:type_name -> pb3.Nested
|
||||
6, // pb3.Maps.StrToOneofsEntry.value:type_name -> pb3.Oneofs
|
||||
}
|
||||
|
||||
func init() {
|
||||
var messageTypes [11]protoreflect.MessageType
|
||||
Test_protoFile = protoimpl.FileBuilder{
|
||||
RawDescriptor: fileDescriptor_33e0a17922cde063,
|
||||
GoTypes: xxx_Test_protoFile_goTypes,
|
||||
DependencyIndexes: xxx_Test_protoFile_depIdxs,
|
||||
EnumOutputTypes: xxx_Test_protoFile_enumTypes[:],
|
||||
MessageOutputTypes: messageTypes[:],
|
||||
}.Init()
|
||||
messageGoTypes := xxx_Test_protoFile_goTypes[2:][:11]
|
||||
for i, mt := range messageTypes[:] {
|
||||
xxx_Test_protoFile_messageTypes[i].GoType = reflect.TypeOf(messageGoTypes[i])
|
||||
xxx_Test_protoFile_messageTypes[i].PBType = mt
|
||||
}
|
||||
xxx_Test_protoFile_goTypes = nil
|
||||
xxx_Test_protoFile_depIdxs = nil
|
||||
}
|
@ -6,12 +6,11 @@
|
||||
syntax = "proto3";
|
||||
|
||||
package pb3;
|
||||
option go_package = "github.com/golang/protobuf/v2/encoding/textpb/testprotos/pb3";
|
||||
option go_package = "github.com/golang/protobuf/v2/encoding/testprotos/pb3";
|
||||
|
||||
// Scalars contains scalar field types.
|
||||
message Scalars {
|
||||
bool s_bool = 1;
|
||||
|
||||
int32 s_int32 = 2;
|
||||
int64 s_int64 = 3;
|
||||
uint32 s_uint32 = 4;
|
||||
@ -56,7 +55,7 @@ message Enums {
|
||||
|
||||
// Message contains nested message field.
|
||||
message Nests {
|
||||
Nested s_nested = 1;
|
||||
Nested s_nested = 2;
|
||||
}
|
||||
|
||||
// Message type used as submessage.
|
||||
@ -64,3 +63,21 @@ message Nested {
|
||||
string s_string = 1;
|
||||
Nested s_nested = 2;
|
||||
}
|
||||
|
||||
// Message contains oneof field.
|
||||
message Oneofs {
|
||||
oneof union {
|
||||
Enum oneof_enum = 1;
|
||||
string oneof_string = 2;
|
||||
Nested oneof_nested = 3;
|
||||
}
|
||||
}
|
||||
|
||||
// Message contains map fields.
|
||||
message Maps {
|
||||
map<int32, string> int32_to_str = 1;
|
||||
map<bool, uint32> bool_to_uint32 = 2;
|
||||
map<uint64, Enum> uint64_to_enum = 3;
|
||||
map<string, Nested> str_to_nested = 4;
|
||||
map<string, Oneofs> str_to_oneofs = 5;
|
||||
}
|
@ -21,12 +21,13 @@ import (
|
||||
// TODO: Remove this when protoV1 registers these hooks for you.
|
||||
_ "github.com/golang/protobuf/v2/internal/legacy"
|
||||
|
||||
"github.com/golang/protobuf/v2/encoding/textpb/testprotos/pb2"
|
||||
"github.com/golang/protobuf/v2/encoding/textpb/testprotos/pb3"
|
||||
"github.com/golang/protobuf/v2/encoding/testprotos/pb2"
|
||||
"github.com/golang/protobuf/v2/encoding/testprotos/pb3"
|
||||
)
|
||||
|
||||
func init() {
|
||||
// TODO: remove this when generated code registers to V2 global registry.
|
||||
// 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)
|
||||
@ -66,7 +67,7 @@ func TestUnmarshal(t *testing.T) {
|
||||
inputMessage: &pb2.Scalars{},
|
||||
wantMessage: &pb2.Scalars{},
|
||||
}, {
|
||||
desc: "proto2 optional scalar fields set to zero values",
|
||||
desc: "proto2 optional scalars set to zero values",
|
||||
inputMessage: &pb2.Scalars{},
|
||||
inputText: `opt_bool: false
|
||||
opt_int32: 0
|
||||
@ -102,7 +103,7 @@ opt_string: ""
|
||||
OptString: scalar.String(""),
|
||||
},
|
||||
}, {
|
||||
desc: "proto3 scalar fields set to zero values",
|
||||
desc: "proto3 scalars set to zero values",
|
||||
inputMessage: &pb3.Scalars{},
|
||||
inputText: `s_bool: false
|
||||
s_int32: 0
|
||||
@ -122,7 +123,7 @@ s_string: ""
|
||||
`,
|
||||
wantMessage: &pb3.Scalars{},
|
||||
}, {
|
||||
desc: "proto2 optional scalar fields",
|
||||
desc: "proto2 optional scalars",
|
||||
inputMessage: &pb2.Scalars{},
|
||||
inputText: `opt_bool: true
|
||||
opt_int32: 255
|
||||
@ -154,7 +155,7 @@ opt_string: "谷歌"
|
||||
OptString: scalar.String("谷歌"),
|
||||
},
|
||||
}, {
|
||||
desc: "proto3 scalar fields",
|
||||
desc: "proto3 scalars",
|
||||
inputMessage: &pb3.Scalars{},
|
||||
inputText: `s_bool: true
|
||||
s_int32: 255
|
||||
@ -261,28 +262,28 @@ s_string: "谷歌"
|
||||
inputText: "s_sfixed64: bad",
|
||||
wantErr: true,
|
||||
}, {
|
||||
desc: "float32 positive infinity",
|
||||
desc: "float positive infinity",
|
||||
inputMessage: &pb3.Scalars{},
|
||||
inputText: "s_float: inf",
|
||||
wantMessage: &pb3.Scalars{
|
||||
SFloat: float32(math.Inf(1)),
|
||||
},
|
||||
}, {
|
||||
desc: "float32 negative infinity",
|
||||
desc: "float negative infinity",
|
||||
inputMessage: &pb3.Scalars{},
|
||||
inputText: "s_float: -inf",
|
||||
wantMessage: &pb3.Scalars{
|
||||
SFloat: float32(math.Inf(-1)),
|
||||
},
|
||||
}, {
|
||||
desc: "float64 positive infinity",
|
||||
desc: "double positive infinity",
|
||||
inputMessage: &pb3.Scalars{},
|
||||
inputText: "s_double: inf",
|
||||
wantMessage: &pb3.Scalars{
|
||||
SDouble: math.Inf(1),
|
||||
},
|
||||
}, {
|
||||
desc: "float64 negative infinity",
|
||||
desc: "double negative infinity",
|
||||
inputMessage: &pb3.Scalars{},
|
||||
inputText: "s_double: -inf",
|
||||
wantMessage: &pb3.Scalars{
|
||||
@ -311,13 +312,6 @@ s_string: "谷歌"
|
||||
inputText: `
|
||||
opt_bool: true
|
||||
opt_bool: false
|
||||
`,
|
||||
wantErr: true,
|
||||
}, {
|
||||
desc: "proto2 invalid singular field",
|
||||
inputMessage: &pb2.Scalars{},
|
||||
inputText: `
|
||||
opt_bool: [true, false]
|
||||
`,
|
||||
wantErr: true,
|
||||
}, {
|
||||
@ -327,6 +321,13 @@ opt_bool: [true, false]
|
||||
opt_bool: true
|
||||
opt_string: "hello"
|
||||
opt_bool: false
|
||||
`,
|
||||
wantErr: true,
|
||||
}, {
|
||||
desc: "proto2 invalid singular field",
|
||||
inputMessage: &pb2.Scalars{},
|
||||
inputText: `
|
||||
opt_bool: [true, false]
|
||||
`,
|
||||
wantErr: true,
|
||||
}, {
|
||||
@ -350,22 +351,22 @@ s_bool: true
|
||||
desc: "proto2 enum",
|
||||
inputMessage: &pb2.Enums{},
|
||||
inputText: `
|
||||
opt_enum: FIRST
|
||||
opt_enum: ONE
|
||||
opt_nested_enum: UNO
|
||||
`,
|
||||
wantMessage: &pb2.Enums{
|
||||
OptEnum: pb2.Enum_FIRST.Enum(),
|
||||
OptEnum: pb2.Enum_ONE.Enum(),
|
||||
OptNestedEnum: pb2.Enums_UNO.Enum(),
|
||||
},
|
||||
}, {
|
||||
desc: "proto2 enum set to numeric values",
|
||||
inputMessage: &pb2.Enums{},
|
||||
inputText: `
|
||||
opt_enum: 1
|
||||
opt_enum: 2
|
||||
opt_nested_enum: 2
|
||||
`,
|
||||
wantMessage: &pb2.Enums{
|
||||
OptEnum: pb2.Enum_FIRST.Enum(),
|
||||
OptEnum: pb2.Enum_TWO.Enum(),
|
||||
OptNestedEnum: pb2.Enums_DOS.Enum(),
|
||||
},
|
||||
}, {
|
||||
@ -383,7 +384,7 @@ opt_nested_enum: -101
|
||||
desc: "proto2 enum set to invalid named",
|
||||
inputMessage: &pb2.Enums{},
|
||||
inputText: `
|
||||
opt_enum: UNNAMED
|
||||
opt_enum: UNNAMED
|
||||
opt_nested_enum: UNNAMED_TOO
|
||||
`,
|
||||
wantErr: true,
|
||||
@ -403,11 +404,11 @@ s_nested_enum: DIEZ
|
||||
inputMessage: &pb3.Enums{},
|
||||
inputText: `
|
||||
s_enum: 2
|
||||
s_nested_enum: 1
|
||||
s_nested_enum: 2
|
||||
`,
|
||||
wantMessage: &pb3.Enums{
|
||||
SEnum: pb3.Enum_TWO,
|
||||
SNestedEnum: pb3.Enums_UNO,
|
||||
SNestedEnum: pb3.Enums_DOS,
|
||||
},
|
||||
}, {
|
||||
desc: "proto3 enum unnamed numeric value",
|
||||
@ -477,57 +478,67 @@ s_nested: {
|
||||
},
|
||||
},
|
||||
}, {
|
||||
desc: "oneof field set to empty string",
|
||||
inputMessage: &pb2.Oneofs{},
|
||||
inputText: "str: ''",
|
||||
wantMessage: &pb2.Oneofs{
|
||||
Union: &pb2.Oneofs_Str{},
|
||||
desc: "oneof set to empty string",
|
||||
inputMessage: &pb3.Oneofs{},
|
||||
inputText: "oneof_string: ''",
|
||||
wantMessage: &pb3.Oneofs{
|
||||
Union: &pb3.Oneofs_OneofString{},
|
||||
},
|
||||
}, {
|
||||
desc: "oneof field set to string",
|
||||
inputMessage: &pb2.Oneofs{},
|
||||
inputText: "str: 'hello'",
|
||||
wantMessage: &pb2.Oneofs{
|
||||
Union: &pb2.Oneofs_Str{
|
||||
Str: "hello",
|
||||
desc: "oneof set to string",
|
||||
inputMessage: &pb3.Oneofs{},
|
||||
inputText: "oneof_string: 'hello'",
|
||||
wantMessage: &pb3.Oneofs{
|
||||
Union: &pb3.Oneofs_OneofString{
|
||||
OneofString: "hello",
|
||||
},
|
||||
},
|
||||
}, {
|
||||
desc: "oneof field set to empty message",
|
||||
inputMessage: &pb2.Oneofs{},
|
||||
inputText: "msg: {}",
|
||||
wantMessage: &pb2.Oneofs{
|
||||
Union: &pb2.Oneofs_Msg{
|
||||
Msg: &pb2.Nested{},
|
||||
desc: "oneof set to enum",
|
||||
inputMessage: &pb3.Oneofs{},
|
||||
inputText: "oneof_enum: TEN",
|
||||
wantMessage: &pb3.Oneofs{
|
||||
Union: &pb3.Oneofs_OneofEnum{
|
||||
OneofEnum: pb3.Enum_TEN,
|
||||
},
|
||||
},
|
||||
}, {
|
||||
desc: "oneof field set to message",
|
||||
inputMessage: &pb2.Oneofs{},
|
||||
desc: "oneof set to empty message",
|
||||
inputMessage: &pb3.Oneofs{},
|
||||
inputText: "oneof_nested: {}",
|
||||
wantMessage: &pb3.Oneofs{
|
||||
Union: &pb3.Oneofs_OneofNested{
|
||||
OneofNested: &pb3.Nested{},
|
||||
},
|
||||
},
|
||||
}, {
|
||||
desc: "oneof set to message",
|
||||
inputMessage: &pb3.Oneofs{},
|
||||
inputText: `
|
||||
msg: {
|
||||
opt_string: "nested message"
|
||||
oneof_nested: {
|
||||
s_string: "nested message"
|
||||
}
|
||||
`,
|
||||
wantMessage: &pb2.Oneofs{
|
||||
Union: &pb2.Oneofs_Msg{
|
||||
Msg: &pb2.Nested{
|
||||
OptString: scalar.String("nested message"),
|
||||
wantMessage: &pb3.Oneofs{
|
||||
Union: &pb3.Oneofs_OneofNested{
|
||||
OneofNested: &pb3.Nested{
|
||||
SString: "nested message",
|
||||
},
|
||||
},
|
||||
},
|
||||
}, {
|
||||
desc: "oneof field set to last value",
|
||||
inputMessage: &pb2.Oneofs{},
|
||||
desc: "oneof set to last value",
|
||||
inputMessage: &pb3.Oneofs{},
|
||||
inputText: `
|
||||
msg: {
|
||||
opt_string: "nested message"
|
||||
oneof_nested: {
|
||||
s_string: "nested message"
|
||||
}
|
||||
str: "wins"
|
||||
oneof_enum: TEN
|
||||
oneof_string: "wins"
|
||||
`,
|
||||
wantMessage: &pb2.Oneofs{
|
||||
Union: &pb2.Oneofs_Str{
|
||||
Str: "wins",
|
||||
wantMessage: &pb3.Oneofs{
|
||||
Union: &pb3.Oneofs_OneofString{
|
||||
OneofString: "wins",
|
||||
},
|
||||
},
|
||||
}, {
|
||||
@ -564,14 +575,14 @@ rpt_string: "b"
|
||||
desc: "repeated enums",
|
||||
inputMessage: &pb2.Enums{},
|
||||
inputText: `
|
||||
rpt_enum: TENTH
|
||||
rpt_enum: TEN
|
||||
rpt_enum: 1
|
||||
rpt_nested_enum: [DOS, 2]
|
||||
rpt_enum: 42
|
||||
rpt_nested_enum: -47
|
||||
`,
|
||||
wantMessage: &pb2.Enums{
|
||||
RptEnum: []pb2.Enum{pb2.Enum_TENTH, pb2.Enum_FIRST, 42},
|
||||
RptEnum: []pb2.Enum{pb2.Enum_TEN, pb2.Enum_ONE, 42},
|
||||
RptNestedEnum: []pb2.Enums_NestedEnum{pb2.Enums_DOS, pb2.Enums_DOS, -47},
|
||||
},
|
||||
}, {
|
||||
@ -608,22 +619,22 @@ rpt_nested: {}
|
||||
inputMessage: &pb2.Nests{},
|
||||
inputText: `
|
||||
RptGroup: {
|
||||
rpt_bool: true
|
||||
rpt_bool: false
|
||||
rpt_string: "hello"
|
||||
rpt_string: "world"
|
||||
}
|
||||
RptGroup: {}
|
||||
`,
|
||||
wantMessage: &pb2.Nests{
|
||||
Rptgroup: []*pb2.Nests_RptGroup{
|
||||
{
|
||||
RptBool: []bool{true, false},
|
||||
RptString: []string{"hello", "world"},
|
||||
},
|
||||
{},
|
||||
},
|
||||
},
|
||||
}, {
|
||||
desc: "map fields 1",
|
||||
inputMessage: &pb2.Maps{},
|
||||
inputMessage: &pb3.Maps{},
|
||||
inputText: `
|
||||
int32_to_str: {
|
||||
key: -101
|
||||
@ -633,37 +644,25 @@ int32_to_str: {
|
||||
key: 0
|
||||
value: "zero"
|
||||
}
|
||||
sfixed64_to_bool: {
|
||||
key: 0
|
||||
value: false
|
||||
bool_to_uint32: {
|
||||
key: false
|
||||
value: 101
|
||||
}
|
||||
int32_to_str: {
|
||||
key: 255
|
||||
value: "0xff"
|
||||
}
|
||||
bool_to_uint32: {
|
||||
key: false
|
||||
value: 101
|
||||
}
|
||||
sfixed64_to_bool: {
|
||||
key: 51966
|
||||
value: true
|
||||
}
|
||||
bool_to_uint32: {
|
||||
key: true
|
||||
value: 42
|
||||
}
|
||||
`,
|
||||
wantMessage: &pb2.Maps{
|
||||
wantMessage: &pb3.Maps{
|
||||
Int32ToStr: map[int32]string{
|
||||
-101: "-101",
|
||||
0xff: "0xff",
|
||||
0: "zero",
|
||||
},
|
||||
Sfixed64ToBool: map[int64]bool{
|
||||
0xcafe: true,
|
||||
0: false,
|
||||
},
|
||||
BoolToUint32: map[bool]uint32{
|
||||
true: 42,
|
||||
false: 101,
|
||||
@ -671,76 +670,76 @@ bool_to_uint32: {
|
||||
},
|
||||
}, {
|
||||
desc: "map fields 2",
|
||||
inputMessage: &pb2.Maps{},
|
||||
inputMessage: &pb3.Maps{},
|
||||
inputText: `
|
||||
uint64_to_enum: {
|
||||
key: 1
|
||||
value: FIRST
|
||||
value: ONE
|
||||
}
|
||||
uint64_to_enum: {
|
||||
key: 2
|
||||
value: SECOND
|
||||
value: 2
|
||||
}
|
||||
uint64_to_enum: {
|
||||
key: 10
|
||||
value: TENTH
|
||||
value: 101
|
||||
}
|
||||
`,
|
||||
wantMessage: &pb2.Maps{
|
||||
Uint64ToEnum: map[uint64]pb2.Enum{
|
||||
1: pb2.Enum_FIRST,
|
||||
2: pb2.Enum_SECOND,
|
||||
10: pb2.Enum_TENTH,
|
||||
wantMessage: &pb3.Maps{
|
||||
Uint64ToEnum: map[uint64]pb3.Enum{
|
||||
1: pb3.Enum_ONE,
|
||||
2: pb3.Enum_TWO,
|
||||
10: 101,
|
||||
},
|
||||
},
|
||||
}, {
|
||||
desc: "map fields 3",
|
||||
inputMessage: &pb2.Maps{},
|
||||
inputMessage: &pb3.Maps{},
|
||||
inputText: `
|
||||
str_to_nested: {
|
||||
key: "nested_one"
|
||||
value: {
|
||||
opt_string: "nested in a map"
|
||||
s_string: "nested in a map"
|
||||
}
|
||||
}
|
||||
`,
|
||||
wantMessage: &pb2.Maps{
|
||||
StrToNested: map[string]*pb2.Nested{
|
||||
"nested_one": &pb2.Nested{
|
||||
OptString: scalar.String("nested in a map"),
|
||||
wantMessage: &pb3.Maps{
|
||||
StrToNested: map[string]*pb3.Nested{
|
||||
"nested_one": &pb3.Nested{
|
||||
SString: "nested in a map",
|
||||
},
|
||||
},
|
||||
},
|
||||
}, {
|
||||
desc: "map fields 4",
|
||||
inputMessage: &pb2.Maps{},
|
||||
inputMessage: &pb3.Maps{},
|
||||
inputText: `
|
||||
str_to_oneofs: {
|
||||
key: "nested"
|
||||
value: {
|
||||
msg: {
|
||||
opt_string: "nested oneof in map field value"
|
||||
oneof_nested: {
|
||||
s_string: "nested oneof in map field value"
|
||||
}
|
||||
}
|
||||
}
|
||||
str_to_oneofs: {
|
||||
key: "string"
|
||||
value: {
|
||||
str: "hello"
|
||||
oneof_string: "hello"
|
||||
}
|
||||
}
|
||||
`,
|
||||
wantMessage: &pb2.Maps{
|
||||
StrToOneofs: map[string]*pb2.Oneofs{
|
||||
"string": &pb2.Oneofs{
|
||||
Union: &pb2.Oneofs_Str{
|
||||
Str: "hello",
|
||||
wantMessage: &pb3.Maps{
|
||||
StrToOneofs: map[string]*pb3.Oneofs{
|
||||
"string": &pb3.Oneofs{
|
||||
Union: &pb3.Oneofs_OneofString{
|
||||
OneofString: "hello",
|
||||
},
|
||||
},
|
||||
"nested": &pb2.Oneofs{
|
||||
Union: &pb2.Oneofs_Msg{
|
||||
Msg: &pb2.Nested{
|
||||
OptString: scalar.String("nested oneof in map field value"),
|
||||
"nested": &pb3.Oneofs{
|
||||
Union: &pb3.Oneofs_OneofNested{
|
||||
OneofNested: &pb3.Nested{
|
||||
SString: "nested oneof in map field value",
|
||||
},
|
||||
},
|
||||
},
|
||||
@ -748,7 +747,7 @@ str_to_oneofs: {
|
||||
},
|
||||
}, {
|
||||
desc: "map contains duplicate keys",
|
||||
inputMessage: &pb2.Maps{},
|
||||
inputMessage: &pb3.Maps{},
|
||||
inputText: `
|
||||
int32_to_str: {
|
||||
key: 0
|
||||
@ -759,14 +758,14 @@ int32_to_str: {
|
||||
value: "zero"
|
||||
}
|
||||
`,
|
||||
wantMessage: &pb2.Maps{
|
||||
wantMessage: &pb3.Maps{
|
||||
Int32ToStr: map[int32]string{
|
||||
0: "zero",
|
||||
},
|
||||
},
|
||||
}, {
|
||||
desc: "map contains duplicate key fields",
|
||||
inputMessage: &pb2.Maps{},
|
||||
inputMessage: &pb3.Maps{},
|
||||
inputText: `
|
||||
int32_to_str: {
|
||||
key: 0
|
||||
@ -777,7 +776,7 @@ int32_to_str: {
|
||||
wantErr: true,
|
||||
}, {
|
||||
desc: "map contains duplicate value fields",
|
||||
inputMessage: &pb2.Maps{},
|
||||
inputMessage: &pb3.Maps{},
|
||||
inputText: `
|
||||
int32_to_str: {
|
||||
key: 1
|
||||
@ -788,44 +787,103 @@ int32_to_str: {
|
||||
wantErr: true,
|
||||
}, {
|
||||
desc: "map contains missing key",
|
||||
inputMessage: &pb2.Maps{},
|
||||
inputMessage: &pb3.Maps{},
|
||||
inputText: `
|
||||
int32_to_str: {
|
||||
value: "zero"
|
||||
}
|
||||
bool_to_uint32: {
|
||||
value: 47
|
||||
}
|
||||
str_to_nested: {
|
||||
value: {}
|
||||
}
|
||||
`,
|
||||
wantMessage: &pb2.Maps{
|
||||
wantMessage: &pb3.Maps{
|
||||
Int32ToStr: map[int32]string{
|
||||
0: "zero",
|
||||
},
|
||||
BoolToUint32: map[bool]uint32{
|
||||
false: 47,
|
||||
},
|
||||
StrToNested: map[string]*pb3.Nested{
|
||||
"": {},
|
||||
},
|
||||
},
|
||||
}, {
|
||||
desc: "map contains missing value",
|
||||
inputMessage: &pb2.Maps{},
|
||||
inputMessage: &pb3.Maps{},
|
||||
inputText: `
|
||||
int32_to_str: {
|
||||
key: 100
|
||||
}
|
||||
bool_to_uint32: {
|
||||
key: true
|
||||
}
|
||||
uint64_to_enum: {
|
||||
key: 101
|
||||
}
|
||||
str_to_nested: {
|
||||
key: "hello"
|
||||
}
|
||||
`,
|
||||
wantMessage: &pb2.Maps{
|
||||
wantMessage: &pb3.Maps{
|
||||
Int32ToStr: map[int32]string{
|
||||
100: "",
|
||||
},
|
||||
BoolToUint32: map[bool]uint32{
|
||||
true: 0,
|
||||
},
|
||||
Uint64ToEnum: map[uint64]pb3.Enum{
|
||||
101: pb3.Enum_ZERO,
|
||||
},
|
||||
StrToNested: map[string]*pb3.Nested{
|
||||
"hello": {},
|
||||
},
|
||||
},
|
||||
}, {
|
||||
desc: "map contains missing key and value",
|
||||
inputMessage: &pb2.Maps{},
|
||||
inputMessage: &pb3.Maps{},
|
||||
inputText: `
|
||||
int32_to_str: {}
|
||||
bool_to_uint32: {}
|
||||
uint64_to_enum: {}
|
||||
str_to_nested: {}
|
||||
`,
|
||||
wantMessage: &pb2.Maps{
|
||||
wantMessage: &pb3.Maps{
|
||||
Int32ToStr: map[int32]string{
|
||||
0: "",
|
||||
},
|
||||
BoolToUint32: map[bool]uint32{
|
||||
false: 0,
|
||||
},
|
||||
Uint64ToEnum: map[uint64]pb3.Enum{
|
||||
0: pb3.Enum_ZERO,
|
||||
},
|
||||
StrToNested: map[string]*pb3.Nested{
|
||||
"": {},
|
||||
},
|
||||
},
|
||||
}, {
|
||||
desc: "map contains overriding entries",
|
||||
inputMessage: &pb3.Maps{},
|
||||
inputText: `
|
||||
int32_to_str: {
|
||||
key: 0
|
||||
}
|
||||
int32_to_str: {
|
||||
value: "empty"
|
||||
}
|
||||
int32_to_str: {}
|
||||
`,
|
||||
wantMessage: &pb3.Maps{
|
||||
Int32ToStr: map[int32]string{
|
||||
0: "",
|
||||
},
|
||||
},
|
||||
}, {
|
||||
desc: "map contains unknown field",
|
||||
inputMessage: &pb2.Maps{},
|
||||
inputMessage: &pb3.Maps{},
|
||||
inputText: `
|
||||
int32_to_str: {
|
||||
key: 0
|
||||
@ -836,7 +894,7 @@ int32_to_str: {
|
||||
wantErr: true,
|
||||
}, {
|
||||
desc: "map contains extension-like key field",
|
||||
inputMessage: &pb2.Maps{},
|
||||
inputMessage: &pb3.Maps{},
|
||||
inputText: `
|
||||
int32_to_str: {
|
||||
[key]: 10
|
||||
@ -846,7 +904,7 @@ int32_to_str: {
|
||||
wantErr: true,
|
||||
}, {
|
||||
desc: "map contains invalid key",
|
||||
inputMessage: &pb2.Maps{},
|
||||
inputMessage: &pb3.Maps{},
|
||||
inputText: `
|
||||
int32_to_str: {
|
||||
key: "invalid"
|
||||
@ -856,7 +914,7 @@ int32_to_str: {
|
||||
wantErr: true,
|
||||
}, {
|
||||
desc: "map contains invalid value",
|
||||
inputMessage: &pb2.Maps{},
|
||||
inputMessage: &pb3.Maps{},
|
||||
inputText: `
|
||||
int32_to_str: {
|
||||
key: 100
|
||||
@ -866,7 +924,7 @@ int32_to_str: {
|
||||
wantErr: true,
|
||||
}, {
|
||||
desc: "map using mix of [] and repeated",
|
||||
inputMessage: &pb2.Maps{},
|
||||
inputMessage: &pb3.Maps{},
|
||||
inputText: `
|
||||
int32_to_str: {
|
||||
key: 1
|
||||
@ -889,7 +947,7 @@ int32_to_str: {
|
||||
value: "two"
|
||||
}
|
||||
`,
|
||||
wantMessage: &pb2.Maps{
|
||||
wantMessage: &pb3.Maps{
|
||||
Int32ToStr: map[int32]string{
|
||||
0: "",
|
||||
1: "one",
|
||||
@ -902,7 +960,7 @@ int32_to_str: {
|
||||
inputMessage: &pb2.Requireds{},
|
||||
wantErr: true,
|
||||
}, {
|
||||
desc: "proto2 required field set but not optional",
|
||||
desc: "proto2 required field set",
|
||||
inputMessage: &pb2.PartialRequired{},
|
||||
inputText: "req_string: 'this is required'",
|
||||
wantMessage: &pb2.PartialRequired{
|
||||
@ -913,17 +971,15 @@ int32_to_str: {
|
||||
inputMessage: &pb2.Requireds{},
|
||||
inputText: `
|
||||
req_bool: false
|
||||
req_fixed32: 47
|
||||
req_sfixed64: 3203386110
|
||||
req_string: "hello"
|
||||
req_enum: FIRST
|
||||
req_enum: ONE
|
||||
`,
|
||||
wantMessage: &pb2.Requireds{
|
||||
ReqBool: scalar.Bool(false),
|
||||
ReqFixed32: scalar.Uint32(47),
|
||||
ReqSfixed64: scalar.Int64(0xbeefcafe),
|
||||
ReqString: scalar.String("hello"),
|
||||
ReqEnum: pb2.Enum_FIRST.Enum(),
|
||||
ReqEnum: pb2.Enum_ONE.Enum(),
|
||||
},
|
||||
wantErr: true,
|
||||
}, {
|
||||
@ -931,28 +987,18 @@ req_enum: FIRST
|
||||
inputMessage: &pb2.Requireds{},
|
||||
inputText: `
|
||||
req_bool: false
|
||||
req_fixed32: 0
|
||||
req_fixed64: 0
|
||||
req_sfixed32: 0
|
||||
req_sfixed64: 0
|
||||
req_float: 0
|
||||
req_double: 0
|
||||
req_string: ""
|
||||
req_bytes: ""
|
||||
req_enum: UNKNOWN
|
||||
req_enum: ONE
|
||||
req_nested: {}
|
||||
`,
|
||||
wantMessage: &pb2.Requireds{
|
||||
ReqBool: scalar.Bool(false),
|
||||
ReqFixed32: scalar.Uint32(0),
|
||||
ReqFixed64: scalar.Uint64(0),
|
||||
ReqSfixed32: scalar.Int32(0),
|
||||
ReqSfixed64: scalar.Int64(0),
|
||||
ReqFloat: scalar.Float32(0),
|
||||
ReqDouble: scalar.Float64(0),
|
||||
ReqString: scalar.String(""),
|
||||
ReqEnum: pb2.Enum_UNKNOWN.Enum(),
|
||||
ReqBytes: []byte{},
|
||||
ReqEnum: pb2.Enum_ONE.Enum(),
|
||||
ReqNested: &pb2.Nested{},
|
||||
},
|
||||
}, {
|
||||
@ -1010,6 +1056,17 @@ str_to_nested: {
|
||||
},
|
||||
},
|
||||
wantErr: true,
|
||||
}, {
|
||||
desc: "indirect required field in oneof",
|
||||
inputMessage: &pb2.IndirectRequired{},
|
||||
inputText: `oneof_nested: {}
|
||||
`,
|
||||
wantMessage: &pb2.IndirectRequired{
|
||||
Union: &pb2.IndirectRequired_OneofNested{
|
||||
OneofNested: &pb2.NestedWithRequired{},
|
||||
},
|
||||
},
|
||||
wantErr: true,
|
||||
}, {
|
||||
desc: "ignore reserved field",
|
||||
inputMessage: &pb2.Nests{},
|
||||
@ -1029,7 +1086,7 @@ opt_bool: true
|
||||
}
|
||||
[pb2.opt_ext_string]: "extension field"
|
||||
opt_int32: 42
|
||||
[pb2.opt_ext_enum]: TENTH
|
||||
[pb2.opt_ext_enum]: TEN
|
||||
`,
|
||||
wantMessage: func() proto.Message {
|
||||
m := &pb2.Extensions{
|
||||
@ -1039,7 +1096,7 @@ opt_int32: 42
|
||||
}
|
||||
setExtension(m, pb2.E_OptExtBool, true)
|
||||
setExtension(m, pb2.E_OptExtString, "extension field")
|
||||
setExtension(m, pb2.E_OptExtEnum, pb2.Enum_TENTH)
|
||||
setExtension(m, pb2.E_OptExtEnum, pb2.Enum_TEN)
|
||||
setExtension(m, pb2.E_OptExtNested, &pb2.Nested{
|
||||
OptString: scalar.String("nested in an extension"),
|
||||
OptNested: &pb2.Nested{
|
||||
@ -1051,10 +1108,10 @@ opt_int32: 42
|
||||
}, {
|
||||
desc: "extensions of repeated fields",
|
||||
inputMessage: &pb2.Extensions{},
|
||||
inputText: `[pb2.rpt_ext_enum]: TENTH
|
||||
inputText: `[pb2.rpt_ext_enum]: TEN
|
||||
[pb2.rpt_ext_enum]: 101
|
||||
[pb2.rpt_ext_fixed32]: 42
|
||||
[pb2.rpt_ext_enum]: FIRST
|
||||
[pb2.rpt_ext_enum]: ONE
|
||||
[pb2.rpt_ext_nested]: {
|
||||
opt_string: "one"
|
||||
}
|
||||
@ -1068,7 +1125,7 @@ opt_int32: 42
|
||||
`,
|
||||
wantMessage: func() proto.Message {
|
||||
m := &pb2.Extensions{}
|
||||
setExtension(m, pb2.E_RptExtEnum, &[]pb2.Enum{pb2.Enum_TENTH, 101, pb2.Enum_FIRST})
|
||||
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{
|
||||
&pb2.Nested{OptString: scalar.String("one")},
|
||||
@ -1081,7 +1138,7 @@ opt_int32: 42
|
||||
desc: "extensions of non-repeated fields in another message",
|
||||
inputMessage: &pb2.Extensions{},
|
||||
inputText: `[pb2.ExtensionsContainer.opt_ext_bool]: true
|
||||
[pb2.ExtensionsContainer.opt_ext_enum]: TENTH
|
||||
[pb2.ExtensionsContainer.opt_ext_enum]: TEN
|
||||
[pb2.ExtensionsContainer.opt_ext_nested]: {
|
||||
opt_string: "nested in an extension"
|
||||
opt_nested: {
|
||||
@ -1094,7 +1151,7 @@ opt_int32: 42
|
||||
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_TENTH)
|
||||
setExtension(m, pb2.E_ExtensionsContainer_OptExtEnum, pb2.Enum_TEN)
|
||||
setExtension(m, pb2.E_ExtensionsContainer_OptExtNested, &pb2.Nested{
|
||||
OptString: scalar.String("nested in an extension"),
|
||||
OptNested: &pb2.Nested{
|
||||
@ -1112,13 +1169,13 @@ opt_int32: 42
|
||||
[pb2.ExtensionsContainer.rpt_ext_nested]: {
|
||||
opt_string: "one"
|
||||
}
|
||||
[pb2.ExtensionsContainer.rpt_ext_enum]: TENTH
|
||||
[pb2.ExtensionsContainer.rpt_ext_enum]: TEN
|
||||
[pb2.ExtensionsContainer.rpt_ext_nested]: {
|
||||
opt_string: "two"
|
||||
}
|
||||
[pb2.ExtensionsContainer.rpt_ext_enum]: 101
|
||||
[pb2.ExtensionsContainer.rpt_ext_string]: "hello"
|
||||
[pb2.ExtensionsContainer.rpt_ext_enum]: FIRST
|
||||
[pb2.ExtensionsContainer.rpt_ext_enum]: ONE
|
||||
[pb2.ExtensionsContainer.rpt_ext_nested]: {
|
||||
opt_string: "three"
|
||||
}
|
||||
@ -1130,7 +1187,7 @@ opt_int32: 42
|
||||
OptBool: scalar.Bool(true),
|
||||
OptInt32: scalar.Int32(42),
|
||||
}
|
||||
setExtension(m, pb2.E_ExtensionsContainer_RptExtEnum, &[]pb2.Enum{pb2.Enum_TENTH, 101, pb2.Enum_FIRST})
|
||||
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{
|
||||
&pb2.Nested{OptString: scalar.String("one")},
|
||||
@ -1211,6 +1268,8 @@ opt_int32: 42
|
||||
return m
|
||||
}(),
|
||||
}, {
|
||||
// TODO: Change these tests to directly use anypb.Any type instead once
|
||||
// type has been regenerated with V2 compiler.
|
||||
desc: "Any not expanded",
|
||||
inputMessage: &pb2.KnownTypes{},
|
||||
inputText: `opt_any: {
|
||||
|
@ -29,8 +29,8 @@ import (
|
||||
_ "github.com/golang/protobuf/v2/internal/legacy"
|
||||
|
||||
anypb "github.com/golang/protobuf/ptypes/any"
|
||||
"github.com/golang/protobuf/v2/encoding/textpb/testprotos/pb2"
|
||||
"github.com/golang/protobuf/v2/encoding/textpb/testprotos/pb3"
|
||||
"github.com/golang/protobuf/v2/encoding/testprotos/pb2"
|
||||
"github.com/golang/protobuf/v2/encoding/testprotos/pb3"
|
||||
)
|
||||
|
||||
func init() {
|
||||
@ -67,7 +67,7 @@ func setExtension(m proto.Message, xd *protoapi.ExtensionDesc, val interface{})
|
||||
knownFields.Set(wire.Number(xd.Field), pval)
|
||||
}
|
||||
|
||||
func wrapAnyPB(any *anypb.Any) proto.Message {
|
||||
func wrapV1Message(any *anypb.Any) proto.Message {
|
||||
return impl.Export{}.MessageOf(any).Interface()
|
||||
}
|
||||
|
||||
@ -88,15 +88,15 @@ func TestMarshal(t *testing.T) {
|
||||
want string
|
||||
wantErr bool
|
||||
}{{
|
||||
desc: "proto2 optional scalar fields not set",
|
||||
desc: "proto2 optional scalars not set",
|
||||
input: &pb2.Scalars{},
|
||||
want: "\n",
|
||||
}, {
|
||||
desc: "proto3 scalar fields not set",
|
||||
desc: "proto3 scalars not set",
|
||||
input: &pb3.Scalars{},
|
||||
want: "\n",
|
||||
}, {
|
||||
desc: "proto2 optional scalar fields set to zero values",
|
||||
desc: "proto2 optional scalars set to zero values",
|
||||
input: &pb2.Scalars{
|
||||
OptBool: scalar.Bool(false),
|
||||
OptInt32: scalar.Int32(0),
|
||||
@ -131,7 +131,7 @@ opt_bytes: ""
|
||||
opt_string: ""
|
||||
`,
|
||||
}, {
|
||||
desc: "proto3 scalar fields set to zero values",
|
||||
desc: "proto3 scalars set to zero values",
|
||||
input: &pb3.Scalars{
|
||||
SBool: false,
|
||||
SInt32: 0,
|
||||
@ -151,7 +151,7 @@ opt_string: ""
|
||||
},
|
||||
want: "\n",
|
||||
}, {
|
||||
desc: "proto2 optional scalar fields set to some values",
|
||||
desc: "proto2 optional scalars set to some values",
|
||||
input: &pb2.Scalars{
|
||||
OptBool: scalar.Bool(true),
|
||||
OptInt32: scalar.Int32(0xff),
|
||||
@ -164,9 +164,8 @@ opt_string: ""
|
||||
OptSfixed32: scalar.Int32(-32),
|
||||
OptFloat: scalar.Float32(1.02),
|
||||
OptDouble: scalar.Float64(1.0199999809265137),
|
||||
// TODO: Update encoder to not output UTF8 for bytes.
|
||||
OptBytes: []byte("\xe8\xb0\xb7\xe6\xad\x8c"),
|
||||
OptString: scalar.String("谷歌"),
|
||||
OptBytes: []byte("\xe8\xb0\xb7\xe6\xad\x8c"),
|
||||
OptString: scalar.String("谷歌"),
|
||||
},
|
||||
want: `opt_bool: true
|
||||
opt_int32: 255
|
||||
@ -183,53 +182,41 @@ opt_bytes: "谷歌"
|
||||
opt_string: "谷歌"
|
||||
`,
|
||||
}, {
|
||||
desc: "float32 nan",
|
||||
desc: "float nan",
|
||||
input: &pb3.Scalars{
|
||||
SFloat: float32(math.NaN()),
|
||||
},
|
||||
want: "s_float: nan\n",
|
||||
}, {
|
||||
desc: "float32 positive infinity",
|
||||
desc: "float positive infinity",
|
||||
input: &pb3.Scalars{
|
||||
SFloat: float32(math.Inf(1)),
|
||||
},
|
||||
want: "s_float: inf\n",
|
||||
}, {
|
||||
desc: "float32 negative infinity",
|
||||
desc: "float negative infinity",
|
||||
input: &pb3.Scalars{
|
||||
SFloat: float32(math.Inf(-1)),
|
||||
},
|
||||
want: "s_float: -inf\n",
|
||||
}, {
|
||||
desc: "float64 nan",
|
||||
desc: "double nan",
|
||||
input: &pb3.Scalars{
|
||||
SDouble: math.NaN(),
|
||||
},
|
||||
want: "s_double: nan\n",
|
||||
}, {
|
||||
desc: "float64 positive infinity",
|
||||
desc: "double positive infinity",
|
||||
input: &pb3.Scalars{
|
||||
SDouble: math.Inf(1),
|
||||
},
|
||||
want: "s_double: inf\n",
|
||||
}, {
|
||||
desc: "float64 negative infinity",
|
||||
desc: "double negative infinity",
|
||||
input: &pb3.Scalars{
|
||||
SDouble: math.Inf(-1),
|
||||
},
|
||||
want: "s_double: -inf\n",
|
||||
}, {
|
||||
desc: "proto2 bytes set to empty string",
|
||||
input: &pb2.Scalars{
|
||||
OptBytes: []byte(""),
|
||||
},
|
||||
want: "opt_bytes: \"\"\n",
|
||||
}, {
|
||||
desc: "proto3 bytes set to empty string",
|
||||
input: &pb3.Scalars{
|
||||
SBytes: []byte(""),
|
||||
},
|
||||
want: "\n",
|
||||
}, {
|
||||
desc: "proto2 enum not set",
|
||||
input: &pb2.Enums{},
|
||||
@ -237,28 +224,28 @@ opt_string: "谷歌"
|
||||
}, {
|
||||
desc: "proto2 enum set to zero value",
|
||||
input: &pb2.Enums{
|
||||
OptEnum: pb2.Enum_UNKNOWN.Enum(),
|
||||
OptEnum: pb2Enum(0),
|
||||
OptNestedEnum: pb2Enums_NestedEnum(0),
|
||||
},
|
||||
want: `opt_enum: UNKNOWN
|
||||
want: `opt_enum: 0
|
||||
opt_nested_enum: 0
|
||||
`,
|
||||
}, {
|
||||
desc: "proto2 enum",
|
||||
input: &pb2.Enums{
|
||||
OptEnum: pb2.Enum_FIRST.Enum(),
|
||||
OptEnum: pb2.Enum_ONE.Enum(),
|
||||
OptNestedEnum: pb2.Enums_UNO.Enum(),
|
||||
},
|
||||
want: `opt_enum: FIRST
|
||||
want: `opt_enum: ONE
|
||||
opt_nested_enum: UNO
|
||||
`,
|
||||
}, {
|
||||
desc: "proto2 enum set to numeric values",
|
||||
input: &pb2.Enums{
|
||||
OptEnum: pb2Enum(1),
|
||||
OptEnum: pb2Enum(2),
|
||||
OptNestedEnum: pb2Enums_NestedEnum(2),
|
||||
},
|
||||
want: `opt_enum: FIRST
|
||||
want: `opt_enum: TWO
|
||||
opt_nested_enum: DOS
|
||||
`,
|
||||
}, {
|
||||
@ -285,19 +272,19 @@ opt_nested_enum: -101
|
||||
desc: "proto3 enum",
|
||||
input: &pb3.Enums{
|
||||
SEnum: pb3.Enum_ONE,
|
||||
SNestedEnum: pb3.Enums_DIEZ,
|
||||
SNestedEnum: pb3.Enums_UNO,
|
||||
},
|
||||
want: `s_enum: ONE
|
||||
s_nested_enum: DIEZ
|
||||
s_nested_enum: UNO
|
||||
`,
|
||||
}, {
|
||||
desc: "proto3 enum set to numeric values",
|
||||
input: &pb3.Enums{
|
||||
SEnum: 2,
|
||||
SNestedEnum: 1,
|
||||
SNestedEnum: 2,
|
||||
},
|
||||
want: `s_enum: TWO
|
||||
s_nested_enum: UNO
|
||||
s_nested_enum: DOS
|
||||
`,
|
||||
}, {
|
||||
desc: "proto3 enum set to unnamed numeric values",
|
||||
@ -339,27 +326,25 @@ OptGroup: {}
|
||||
}
|
||||
`,
|
||||
}, {
|
||||
desc: "proto2 group fields",
|
||||
desc: "proto2 groups",
|
||||
input: &pb2.Nests{
|
||||
Optgroup: &pb2.Nests_OptGroup{
|
||||
OptBool: scalar.Bool(true),
|
||||
OptString: scalar.String("inside a group"),
|
||||
OptNested: &pb2.Nested{
|
||||
OptString: scalar.String("nested message inside a group"),
|
||||
},
|
||||
Optnestedgroup: &pb2.Nests_OptGroup_OptNestedGroup{
|
||||
OptEnum: pb2.Enum_TENTH.Enum(),
|
||||
OptFixed32: scalar.Uint32(47),
|
||||
},
|
||||
},
|
||||
},
|
||||
want: `OptGroup: {
|
||||
opt_bool: true
|
||||
opt_string: "inside a group"
|
||||
opt_nested: {
|
||||
opt_string: "nested message inside a group"
|
||||
}
|
||||
OptNestedGroup: {
|
||||
opt_enum: TENTH
|
||||
opt_fixed32: 47
|
||||
}
|
||||
}
|
||||
`,
|
||||
@ -367,6 +352,12 @@ OptGroup: {}
|
||||
desc: "proto3 nested message not set",
|
||||
input: &pb3.Nests{},
|
||||
want: "\n",
|
||||
}, {
|
||||
desc: "proto3 nested message set to empty",
|
||||
input: &pb3.Nests{
|
||||
SNested: &pb3.Nested{},
|
||||
},
|
||||
want: "s_nested: {}\n",
|
||||
}, {
|
||||
desc: "proto3 nested message",
|
||||
input: &pb3.Nests{
|
||||
@ -385,50 +376,61 @@ OptGroup: {}
|
||||
}
|
||||
`,
|
||||
}, {
|
||||
desc: "oneof fields",
|
||||
input: &pb2.Oneofs{},
|
||||
desc: "oneof not set",
|
||||
input: &pb3.Oneofs{},
|
||||
want: "\n",
|
||||
}, {
|
||||
desc: "oneof field set to empty string",
|
||||
input: &pb2.Oneofs{
|
||||
Union: &pb2.Oneofs_Str{},
|
||||
desc: "oneof set to empty string",
|
||||
input: &pb3.Oneofs{
|
||||
Union: &pb3.Oneofs_OneofString{},
|
||||
},
|
||||
want: "str: \"\"\n",
|
||||
want: `oneof_string: ""
|
||||
`,
|
||||
}, {
|
||||
desc: "oneof field set to string",
|
||||
input: &pb2.Oneofs{
|
||||
Union: &pb2.Oneofs_Str{
|
||||
Str: "hello",
|
||||
desc: "oneof set to string",
|
||||
input: &pb3.Oneofs{
|
||||
Union: &pb3.Oneofs_OneofString{
|
||||
OneofString: "hello",
|
||||
},
|
||||
},
|
||||
want: "str: \"hello\"\n",
|
||||
want: `oneof_string: "hello"
|
||||
`,
|
||||
}, {
|
||||
desc: "oneof field set to empty message",
|
||||
input: &pb2.Oneofs{
|
||||
Union: &pb2.Oneofs_Msg{
|
||||
Msg: &pb2.Nested{},
|
||||
desc: "oneof set to enum",
|
||||
input: &pb3.Oneofs{
|
||||
Union: &pb3.Oneofs_OneofEnum{
|
||||
OneofEnum: pb3.Enum_ZERO,
|
||||
},
|
||||
},
|
||||
want: "msg: {}\n",
|
||||
want: `oneof_enum: ZERO
|
||||
`,
|
||||
}, {
|
||||
desc: "oneof field set to message",
|
||||
input: &pb2.Oneofs{
|
||||
Union: &pb2.Oneofs_Msg{
|
||||
Msg: &pb2.Nested{
|
||||
OptString: scalar.String("nested message"),
|
||||
desc: "oneof set to empty message",
|
||||
input: &pb3.Oneofs{
|
||||
Union: &pb3.Oneofs_OneofNested{
|
||||
OneofNested: &pb3.Nested{},
|
||||
},
|
||||
},
|
||||
want: "oneof_nested: {}\n",
|
||||
}, {
|
||||
desc: "oneof set to message",
|
||||
input: &pb3.Oneofs{
|
||||
Union: &pb3.Oneofs_OneofNested{
|
||||
OneofNested: &pb3.Nested{
|
||||
SString: "nested message",
|
||||
},
|
||||
},
|
||||
},
|
||||
want: `msg: {
|
||||
opt_string: "nested message"
|
||||
want: `oneof_nested: {
|
||||
s_string: "nested message"
|
||||
}
|
||||
`,
|
||||
}, {
|
||||
desc: "repeated not set",
|
||||
desc: "repeated fields not set",
|
||||
input: &pb2.Repeats{},
|
||||
want: "\n",
|
||||
}, {
|
||||
desc: "repeated set to empty slices",
|
||||
desc: "repeated fields set to empty slices",
|
||||
input: &pb2.Repeats{
|
||||
RptBool: []bool{},
|
||||
RptInt32: []int32{},
|
||||
@ -441,7 +443,7 @@ OptGroup: {}
|
||||
},
|
||||
want: "\n",
|
||||
}, {
|
||||
desc: "repeated set to some values",
|
||||
desc: "repeated fields set to some values",
|
||||
input: &pb2.Repeats{
|
||||
RptBool: []bool{true, false, true, true},
|
||||
RptInt32: []int32{1, 6, 0, 0},
|
||||
@ -483,28 +485,28 @@ rpt_bytes: "hello"
|
||||
rpt_bytes: "世界"
|
||||
`,
|
||||
}, {
|
||||
desc: "repeated enum",
|
||||
desc: "repeated enums",
|
||||
input: &pb2.Enums{
|
||||
RptEnum: []pb2.Enum{pb2.Enum_FIRST, 2, pb2.Enum_TENTH, 42},
|
||||
RptEnum: []pb2.Enum{pb2.Enum_ONE, 2, pb2.Enum_TEN, 42},
|
||||
RptNestedEnum: []pb2.Enums_NestedEnum{2, 47, 10},
|
||||
},
|
||||
want: `rpt_enum: FIRST
|
||||
rpt_enum: SECOND
|
||||
rpt_enum: TENTH
|
||||
want: `rpt_enum: ONE
|
||||
rpt_enum: TWO
|
||||
rpt_enum: TEN
|
||||
rpt_enum: 42
|
||||
rpt_nested_enum: DOS
|
||||
rpt_nested_enum: 47
|
||||
rpt_nested_enum: DIEZ
|
||||
`,
|
||||
}, {
|
||||
desc: "repeated nested message set to empty",
|
||||
desc: "repeated messages set to empty",
|
||||
input: &pb2.Nests{
|
||||
RptNested: []*pb2.Nested{},
|
||||
Rptgroup: []*pb2.Nests_RptGroup{},
|
||||
},
|
||||
want: "\n",
|
||||
}, {
|
||||
desc: "repeated nested messages",
|
||||
desc: "repeated messages",
|
||||
input: &pb2.Nests{
|
||||
RptNested: []*pb2.Nested{
|
||||
{
|
||||
@ -531,7 +533,7 @@ rpt_nested: {
|
||||
rpt_nested: {}
|
||||
`,
|
||||
}, {
|
||||
desc: "repeated nested messages contains nil value",
|
||||
desc: "repeated messages contains nil value",
|
||||
input: &pb2.Nests{
|
||||
RptNested: []*pb2.Nested{nil, {}},
|
||||
},
|
||||
@ -539,48 +541,45 @@ rpt_nested: {}
|
||||
rpt_nested: {}
|
||||
`,
|
||||
}, {
|
||||
desc: "repeated group fields",
|
||||
desc: "repeated groups",
|
||||
input: &pb2.Nests{
|
||||
Rptgroup: []*pb2.Nests_RptGroup{
|
||||
{
|
||||
RptBool: []bool{true, false},
|
||||
RptString: []string{"hello", "world"},
|
||||
},
|
||||
{},
|
||||
nil,
|
||||
},
|
||||
},
|
||||
want: `RptGroup: {
|
||||
rpt_bool: true
|
||||
rpt_bool: false
|
||||
rpt_string: "hello"
|
||||
rpt_string: "world"
|
||||
}
|
||||
RptGroup: {}
|
||||
RptGroup: {}
|
||||
`,
|
||||
}, {
|
||||
desc: "map fields empty",
|
||||
input: &pb2.Maps{},
|
||||
desc: "map fields not set",
|
||||
input: &pb3.Maps{},
|
||||
want: "\n",
|
||||
}, {
|
||||
desc: "map fields set to empty maps",
|
||||
input: &pb2.Maps{
|
||||
Int32ToStr: map[int32]string{},
|
||||
Sfixed64ToBool: map[int64]bool{},
|
||||
BoolToUint32: map[bool]uint32{},
|
||||
Uint64ToEnum: map[uint64]pb2.Enum{},
|
||||
StrToNested: map[string]*pb2.Nested{},
|
||||
StrToOneofs: map[string]*pb2.Oneofs{},
|
||||
desc: "map fields set to empty",
|
||||
input: &pb3.Maps{
|
||||
Int32ToStr: map[int32]string{},
|
||||
BoolToUint32: map[bool]uint32{},
|
||||
Uint64ToEnum: map[uint64]pb3.Enum{},
|
||||
StrToNested: map[string]*pb3.Nested{},
|
||||
StrToOneofs: map[string]*pb3.Oneofs{},
|
||||
},
|
||||
want: "\n",
|
||||
}, {
|
||||
desc: "map fields 1",
|
||||
input: &pb2.Maps{
|
||||
input: &pb3.Maps{
|
||||
Int32ToStr: map[int32]string{
|
||||
-101: "-101",
|
||||
0xff: "0xff",
|
||||
0: "zero",
|
||||
},
|
||||
Sfixed64ToBool: map[int64]bool{
|
||||
0xcafe: true,
|
||||
0: false,
|
||||
},
|
||||
BoolToUint32: map[bool]uint32{
|
||||
true: 42,
|
||||
false: 101,
|
||||
@ -598,14 +597,6 @@ int32_to_str: {
|
||||
key: 255
|
||||
value: "0xff"
|
||||
}
|
||||
sfixed64_to_bool: {
|
||||
key: 0
|
||||
value: false
|
||||
}
|
||||
sfixed64_to_bool: {
|
||||
key: 51966
|
||||
value: true
|
||||
}
|
||||
bool_to_uint32: {
|
||||
key: false
|
||||
value: 101
|
||||
@ -617,55 +608,60 @@ bool_to_uint32: {
|
||||
`,
|
||||
}, {
|
||||
desc: "map fields 2",
|
||||
input: &pb2.Maps{
|
||||
Uint64ToEnum: map[uint64]pb2.Enum{
|
||||
1: pb2.Enum_FIRST,
|
||||
2: pb2.Enum_SECOND,
|
||||
10: pb2.Enum_TENTH,
|
||||
input: &pb3.Maps{
|
||||
Uint64ToEnum: map[uint64]pb3.Enum{
|
||||
1: pb3.Enum_ONE,
|
||||
2: pb3.Enum_TWO,
|
||||
10: pb3.Enum_TEN,
|
||||
47: 47,
|
||||
},
|
||||
},
|
||||
want: `uint64_to_enum: {
|
||||
key: 1
|
||||
value: FIRST
|
||||
value: ONE
|
||||
}
|
||||
uint64_to_enum: {
|
||||
key: 2
|
||||
value: SECOND
|
||||
value: TWO
|
||||
}
|
||||
uint64_to_enum: {
|
||||
key: 10
|
||||
value: TENTH
|
||||
value: TEN
|
||||
}
|
||||
uint64_to_enum: {
|
||||
key: 47
|
||||
value: 47
|
||||
}
|
||||
`,
|
||||
}, {
|
||||
desc: "map fields 3",
|
||||
input: &pb2.Maps{
|
||||
StrToNested: map[string]*pb2.Nested{
|
||||
"nested_one": &pb2.Nested{
|
||||
OptString: scalar.String("nested in a map"),
|
||||
input: &pb3.Maps{
|
||||
StrToNested: map[string]*pb3.Nested{
|
||||
"nested": &pb3.Nested{
|
||||
SString: "nested in a map",
|
||||
},
|
||||
},
|
||||
},
|
||||
want: `str_to_nested: {
|
||||
key: "nested_one"
|
||||
key: "nested"
|
||||
value: {
|
||||
opt_string: "nested in a map"
|
||||
s_string: "nested in a map"
|
||||
}
|
||||
}
|
||||
`,
|
||||
}, {
|
||||
desc: "map fields 4",
|
||||
input: &pb2.Maps{
|
||||
StrToOneofs: map[string]*pb2.Oneofs{
|
||||
"string": &pb2.Oneofs{
|
||||
Union: &pb2.Oneofs_Str{
|
||||
Str: "hello",
|
||||
input: &pb3.Maps{
|
||||
StrToOneofs: map[string]*pb3.Oneofs{
|
||||
"string": &pb3.Oneofs{
|
||||
Union: &pb3.Oneofs_OneofString{
|
||||
OneofString: "hello",
|
||||
},
|
||||
},
|
||||
"nested": &pb2.Oneofs{
|
||||
Union: &pb2.Oneofs_Msg{
|
||||
Msg: &pb2.Nested{
|
||||
OptString: scalar.String("nested oneof in map field value"),
|
||||
"nested": &pb3.Oneofs{
|
||||
Union: &pb3.Oneofs_OneofNested{
|
||||
OneofNested: &pb3.Nested{
|
||||
SString: "nested oneof in map field value",
|
||||
},
|
||||
},
|
||||
},
|
||||
@ -674,22 +670,22 @@ uint64_to_enum: {
|
||||
want: `str_to_oneofs: {
|
||||
key: "nested"
|
||||
value: {
|
||||
msg: {
|
||||
opt_string: "nested oneof in map field value"
|
||||
oneof_nested: {
|
||||
s_string: "nested oneof in map field value"
|
||||
}
|
||||
}
|
||||
}
|
||||
str_to_oneofs: {
|
||||
key: "string"
|
||||
value: {
|
||||
str: "hello"
|
||||
oneof_string: "hello"
|
||||
}
|
||||
}
|
||||
`,
|
||||
}, {
|
||||
desc: "map field nil message value",
|
||||
input: &pb2.Maps{
|
||||
StrToNested: map[string]*pb2.Nested{
|
||||
desc: "map field contains nil value",
|
||||
input: &pb3.Maps{
|
||||
StrToNested: map[string]*pb3.Nested{
|
||||
"nil": nil,
|
||||
},
|
||||
},
|
||||
@ -707,45 +703,33 @@ str_to_oneofs: {
|
||||
desc: "proto2 required fields partially set",
|
||||
input: &pb2.Requireds{
|
||||
ReqBool: scalar.Bool(false),
|
||||
ReqFixed32: scalar.Uint32(47),
|
||||
ReqSfixed64: scalar.Int64(0xbeefcafe),
|
||||
ReqDouble: scalar.Float64(math.NaN()),
|
||||
ReqString: scalar.String("hello"),
|
||||
ReqEnum: pb2.Enum_FIRST.Enum(),
|
||||
ReqEnum: pb2.Enum_ONE.Enum(),
|
||||
},
|
||||
want: `req_bool: false
|
||||
req_fixed32: 47
|
||||
req_sfixed64: 3203386110
|
||||
req_double: nan
|
||||
req_string: "hello"
|
||||
req_enum: FIRST
|
||||
req_enum: ONE
|
||||
`,
|
||||
wantErr: true,
|
||||
}, {
|
||||
desc: "proto2 required fields all set",
|
||||
input: &pb2.Requireds{
|
||||
ReqBool: scalar.Bool(false),
|
||||
ReqFixed32: scalar.Uint32(0),
|
||||
ReqFixed64: scalar.Uint64(0),
|
||||
ReqSfixed32: scalar.Int32(0),
|
||||
ReqSfixed64: scalar.Int64(0),
|
||||
ReqFloat: scalar.Float32(0),
|
||||
ReqDouble: scalar.Float64(0),
|
||||
ReqDouble: scalar.Float64(1.23),
|
||||
ReqString: scalar.String(""),
|
||||
ReqEnum: pb2.Enum_UNKNOWN.Enum(),
|
||||
ReqBytes: []byte{},
|
||||
ReqEnum: pb2.Enum_ONE.Enum(),
|
||||
ReqNested: &pb2.Nested{},
|
||||
},
|
||||
want: `req_bool: false
|
||||
req_fixed32: 0
|
||||
req_fixed64: 0
|
||||
req_sfixed32: 0
|
||||
req_sfixed64: 0
|
||||
req_float: 0
|
||||
req_double: 0
|
||||
req_double: 1.23
|
||||
req_string: ""
|
||||
req_bytes: ""
|
||||
req_enum: UNKNOWN
|
||||
req_enum: ONE
|
||||
req_nested: {}
|
||||
`,
|
||||
}, {
|
||||
@ -789,6 +773,15 @@ req_nested: {}
|
||||
}
|
||||
`,
|
||||
wantErr: true,
|
||||
}, {
|
||||
desc: "indirect required field in oneof",
|
||||
input: &pb2.IndirectRequired{
|
||||
Union: &pb2.IndirectRequired_OneofNested{
|
||||
OneofNested: &pb2.NestedWithRequired{},
|
||||
},
|
||||
},
|
||||
want: "oneof_nested: {}\n",
|
||||
wantErr: true,
|
||||
}, {
|
||||
desc: "unknown varint and fixed types",
|
||||
input: &pb2.Scalars{
|
||||
@ -861,7 +854,7 @@ req_nested: {}
|
||||
}
|
||||
setExtension(m, pb2.E_OptExtBool, true)
|
||||
setExtension(m, pb2.E_OptExtString, "extension field")
|
||||
setExtension(m, pb2.E_OptExtEnum, pb2.Enum_TENTH)
|
||||
setExtension(m, pb2.E_OptExtEnum, pb2.Enum_TEN)
|
||||
setExtension(m, pb2.E_OptExtNested, &pb2.Nested{
|
||||
OptString: scalar.String("nested in an extension"),
|
||||
OptNested: &pb2.Nested{
|
||||
@ -874,7 +867,7 @@ req_nested: {}
|
||||
opt_bool: true
|
||||
opt_int32: 42
|
||||
[pb2.opt_ext_bool]: true
|
||||
[pb2.opt_ext_enum]: TENTH
|
||||
[pb2.opt_ext_enum]: TEN
|
||||
[pb2.opt_ext_nested]: {
|
||||
opt_string: "nested in an extension"
|
||||
opt_nested: {
|
||||
@ -884,7 +877,7 @@ opt_int32: 42
|
||||
[pb2.opt_ext_string]: "extension field"
|
||||
`,
|
||||
}, {
|
||||
desc: "registered extension but not set",
|
||||
desc: "extension message field set to nil",
|
||||
input: func() proto.Message {
|
||||
m := &pb2.Extensions{}
|
||||
setExtension(m, pb2.E_OptExtNested, nil)
|
||||
@ -895,7 +888,7 @@ opt_int32: 42
|
||||
desc: "extensions of repeated fields",
|
||||
input: func() proto.Message {
|
||||
m := &pb2.Extensions{}
|
||||
setExtension(m, pb2.E_RptExtEnum, &[]pb2.Enum{pb2.Enum_TENTH, 101, pb2.Enum_FIRST})
|
||||
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{
|
||||
&pb2.Nested{OptString: scalar.String("one")},
|
||||
@ -904,9 +897,9 @@ opt_int32: 42
|
||||
})
|
||||
return m
|
||||
}(),
|
||||
want: `[pb2.rpt_ext_enum]: TENTH
|
||||
want: `[pb2.rpt_ext_enum]: TEN
|
||||
[pb2.rpt_ext_enum]: 101
|
||||
[pb2.rpt_ext_enum]: FIRST
|
||||
[pb2.rpt_ext_enum]: ONE
|
||||
[pb2.rpt_ext_fixed32]: 42
|
||||
[pb2.rpt_ext_fixed32]: 47
|
||||
[pb2.rpt_ext_nested]: {
|
||||
@ -925,7 +918,7 @@ opt_int32: 42
|
||||
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_TENTH)
|
||||
setExtension(m, pb2.E_ExtensionsContainer_OptExtEnum, pb2.Enum_TEN)
|
||||
setExtension(m, pb2.E_ExtensionsContainer_OptExtNested, &pb2.Nested{
|
||||
OptString: scalar.String("nested in an extension"),
|
||||
OptNested: &pb2.Nested{
|
||||
@ -935,7 +928,7 @@ opt_int32: 42
|
||||
return m
|
||||
}(),
|
||||
want: `[pb2.ExtensionsContainer.opt_ext_bool]: true
|
||||
[pb2.ExtensionsContainer.opt_ext_enum]: TENTH
|
||||
[pb2.ExtensionsContainer.opt_ext_enum]: TEN
|
||||
[pb2.ExtensionsContainer.opt_ext_nested]: {
|
||||
opt_string: "nested in an extension"
|
||||
opt_nested: {
|
||||
@ -952,7 +945,7 @@ opt_int32: 42
|
||||
OptBool: scalar.Bool(true),
|
||||
OptInt32: scalar.Int32(42),
|
||||
}
|
||||
setExtension(m, pb2.E_ExtensionsContainer_RptExtEnum, &[]pb2.Enum{pb2.Enum_TENTH, 101, pb2.Enum_FIRST})
|
||||
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{
|
||||
&pb2.Nested{OptString: scalar.String("one")},
|
||||
@ -964,9 +957,9 @@ opt_int32: 42
|
||||
want: `opt_string: "non-extension field"
|
||||
opt_bool: true
|
||||
opt_int32: 42
|
||||
[pb2.ExtensionsContainer.rpt_ext_enum]: TENTH
|
||||
[pb2.ExtensionsContainer.rpt_ext_enum]: TEN
|
||||
[pb2.ExtensionsContainer.rpt_ext_enum]: 101
|
||||
[pb2.ExtensionsContainer.rpt_ext_enum]: FIRST
|
||||
[pb2.ExtensionsContainer.rpt_ext_enum]: ONE
|
||||
[pb2.ExtensionsContainer.rpt_ext_nested]: {
|
||||
opt_string: "one"
|
||||
}
|
||||
@ -1031,7 +1024,7 @@ opt_int32: 42
|
||||
}
|
||||
`,
|
||||
}, {
|
||||
desc: "Any message not expanded",
|
||||
desc: "Any not expanded",
|
||||
mo: textpb.MarshalOptions{
|
||||
Resolver: preg.NewTypes(),
|
||||
},
|
||||
@ -1047,7 +1040,7 @@ opt_int32: 42
|
||||
if err != nil {
|
||||
t.Fatalf("error in binary marshaling message for Any.value: %v", err)
|
||||
}
|
||||
return wrapAnyPB(&anypb.Any{
|
||||
return wrapV1Message(&anypb.Any{
|
||||
TypeUrl: "pb2.Nested",
|
||||
Value: b,
|
||||
})
|
||||
@ -1056,7 +1049,7 @@ opt_int32: 42
|
||||
value: "\n\x13embedded inside Any\x12\x0b\n\tinception"
|
||||
`,
|
||||
}, {
|
||||
desc: "Any message expanded",
|
||||
desc: "Any expanded",
|
||||
mo: textpb.MarshalOptions{
|
||||
Resolver: preg.NewTypes((&pb2.Nested{}).ProtoReflect().Type()),
|
||||
},
|
||||
@ -1072,7 +1065,7 @@ value: "\n\x13embedded inside Any\x12\x0b\n\tinception"
|
||||
if err != nil {
|
||||
t.Fatalf("error in binary marshaling message for Any.value: %v", err)
|
||||
}
|
||||
return wrapAnyPB(&anypb.Any{
|
||||
return wrapV1Message(&anypb.Any{
|
||||
TypeUrl: "foo/pb2.Nested",
|
||||
Value: b,
|
||||
})
|
||||
@ -1085,7 +1078,7 @@ value: "\n\x13embedded inside Any\x12\x0b\n\tinception"
|
||||
}
|
||||
`,
|
||||
}, {
|
||||
desc: "Any message expanded with missing required error",
|
||||
desc: "Any expanded with missing required error",
|
||||
mo: textpb.MarshalOptions{
|
||||
Resolver: preg.NewTypes((&pb2.PartialRequired{}).ProtoReflect().Type()),
|
||||
},
|
||||
@ -1099,7 +1092,7 @@ value: "\n\x13embedded inside Any\x12\x0b\n\tinception"
|
||||
if _, ok := err.(*protoV1.RequiredNotSetError); !ok {
|
||||
t.Fatalf("error in binary marshaling message for Any.value: %v", err)
|
||||
}
|
||||
return wrapAnyPB(&anypb.Any{
|
||||
return wrapV1Message(&anypb.Any{
|
||||
TypeUrl: string(m.ProtoReflect().Type().FullName()),
|
||||
Value: b,
|
||||
})
|
||||
@ -1110,11 +1103,11 @@ value: "\n\x13embedded inside Any\x12\x0b\n\tinception"
|
||||
`,
|
||||
wantErr: true,
|
||||
}, {
|
||||
desc: "Any message with invalid value",
|
||||
desc: "Any with invalid value",
|
||||
mo: textpb.MarshalOptions{
|
||||
Resolver: preg.NewTypes((&pb2.Nested{}).ProtoReflect().Type()),
|
||||
},
|
||||
input: wrapAnyPB(&anypb.Any{
|
||||
input: wrapV1Message(&anypb.Any{
|
||||
TypeUrl: "foo/pb2.Nested",
|
||||
Value: dhex("80"),
|
||||
}),
|
||||
|
@ -5,15 +5,14 @@ import (
|
||||
|
||||
protoV1 "github.com/golang/protobuf/proto"
|
||||
"github.com/golang/protobuf/v2/encoding/textpb"
|
||||
"github.com/golang/protobuf/v2/encoding/textpb/testprotos/pb2"
|
||||
"github.com/golang/protobuf/v2/internal/impl"
|
||||
"github.com/golang/protobuf/v2/internal/scalar"
|
||||
"github.com/golang/protobuf/v2/proto"
|
||||
preg "github.com/golang/protobuf/v2/reflect/protoregistry"
|
||||
|
||||
// The legacy package must be imported prior to use of any legacy messages.
|
||||
// TODO: Remove this when protoV1 registers these hooks for you.
|
||||
"github.com/golang/protobuf/v2/internal/impl"
|
||||
_ "github.com/golang/protobuf/v2/internal/legacy"
|
||||
"github.com/golang/protobuf/v2/internal/scalar"
|
||||
|
||||
anypb "github.com/golang/protobuf/ptypes/any"
|
||||
durpb "github.com/golang/protobuf/ptypes/duration"
|
||||
@ -21,6 +20,7 @@ import (
|
||||
stpb "github.com/golang/protobuf/ptypes/struct"
|
||||
tspb "github.com/golang/protobuf/ptypes/timestamp"
|
||||
wpb "github.com/golang/protobuf/ptypes/wrappers"
|
||||
"github.com/golang/protobuf/v2/encoding/testprotos/pb2"
|
||||
)
|
||||
|
||||
func TestRoundTrip(t *testing.T) {
|
||||
|
@ -1,510 +0,0 @@
|
||||
// Code generated by protoc-gen-go. DO NOT EDIT.
|
||||
// source: encoding/textpb/testprotos/pb3/test.proto
|
||||
|
||||
package pb3
|
||||
|
||||
import (
|
||||
bytes "bytes"
|
||||
gzip "compress/gzip"
|
||||
proto "github.com/golang/protobuf/proto"
|
||||
protoreflect "github.com/golang/protobuf/v2/reflect/protoreflect"
|
||||
protoimpl "github.com/golang/protobuf/v2/runtime/protoimpl"
|
||||
reflect "reflect"
|
||||
)
|
||||
|
||||
// This is a compile-time assertion to ensure that this generated file
|
||||
// is compatible with the proto package it is being compiled against.
|
||||
// A compilation error at this line likely means your copy of the
|
||||
// proto package needs to be updated.
|
||||
const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package
|
||||
|
||||
type Enum int32
|
||||
|
||||
const (
|
||||
Enum_ZERO Enum = 0
|
||||
Enum_ONE Enum = 1
|
||||
Enum_TWO Enum = 2
|
||||
Enum_TEN Enum = 10
|
||||
)
|
||||
|
||||
func (e Enum) Type() protoreflect.EnumType {
|
||||
return xxx_Test_protoFile_enumTypes[0]
|
||||
}
|
||||
func (e Enum) Number() protoreflect.EnumNumber {
|
||||
return protoreflect.EnumNumber(e)
|
||||
}
|
||||
|
||||
var Enum_name = map[int32]string{
|
||||
0: "ZERO",
|
||||
1: "ONE",
|
||||
2: "TWO",
|
||||
10: "TEN",
|
||||
}
|
||||
|
||||
var Enum_value = map[string]int32{
|
||||
"ZERO": 0,
|
||||
"ONE": 1,
|
||||
"TWO": 2,
|
||||
"TEN": 10,
|
||||
}
|
||||
|
||||
func (x Enum) String() string {
|
||||
return proto.EnumName(Enum_name, int32(x))
|
||||
}
|
||||
|
||||
func (Enum) EnumDescriptor() ([]byte, []int) {
|
||||
return fileDescriptor_0854715c5b41c422_gzipped, []int{0}
|
||||
}
|
||||
|
||||
type Enums_NestedEnum int32
|
||||
|
||||
const (
|
||||
Enums_CERO Enums_NestedEnum = 0
|
||||
Enums_UNO Enums_NestedEnum = 1
|
||||
Enums_DOS Enums_NestedEnum = 2
|
||||
Enums_DIEZ Enums_NestedEnum = 10
|
||||
)
|
||||
|
||||
func (e Enums_NestedEnum) Type() protoreflect.EnumType {
|
||||
return xxx_Test_protoFile_enumTypes[1]
|
||||
}
|
||||
func (e Enums_NestedEnum) Number() protoreflect.EnumNumber {
|
||||
return protoreflect.EnumNumber(e)
|
||||
}
|
||||
|
||||
var Enums_NestedEnum_name = map[int32]string{
|
||||
0: "CERO",
|
||||
1: "UNO",
|
||||
2: "DOS",
|
||||
10: "DIEZ",
|
||||
}
|
||||
|
||||
var Enums_NestedEnum_value = map[string]int32{
|
||||
"CERO": 0,
|
||||
"UNO": 1,
|
||||
"DOS": 2,
|
||||
"DIEZ": 10,
|
||||
}
|
||||
|
||||
func (x Enums_NestedEnum) String() string {
|
||||
return proto.EnumName(Enums_NestedEnum_name, int32(x))
|
||||
}
|
||||
|
||||
func (Enums_NestedEnum) EnumDescriptor() ([]byte, []int) {
|
||||
return fileDescriptor_0854715c5b41c422_gzipped, []int{1, 0}
|
||||
}
|
||||
|
||||
// Scalars contains scalar field types.
|
||||
type Scalars struct {
|
||||
SBool bool `protobuf:"varint,1,opt,name=s_bool,json=sBool,proto3" json:"s_bool,omitempty"`
|
||||
SInt32 int32 `protobuf:"varint,2,opt,name=s_int32,json=sInt32,proto3" json:"s_int32,omitempty"`
|
||||
SInt64 int64 `protobuf:"varint,3,opt,name=s_int64,json=sInt64,proto3" json:"s_int64,omitempty"`
|
||||
SUint32 uint32 `protobuf:"varint,4,opt,name=s_uint32,json=sUint32,proto3" json:"s_uint32,omitempty"`
|
||||
SUint64 uint64 `protobuf:"varint,5,opt,name=s_uint64,json=sUint64,proto3" json:"s_uint64,omitempty"`
|
||||
SSint32 int32 `protobuf:"zigzag32,6,opt,name=s_sint32,json=sSint32,proto3" json:"s_sint32,omitempty"`
|
||||
SSint64 int64 `protobuf:"zigzag64,7,opt,name=s_sint64,json=sSint64,proto3" json:"s_sint64,omitempty"`
|
||||
SFixed32 uint32 `protobuf:"fixed32,8,opt,name=s_fixed32,json=sFixed32,proto3" json:"s_fixed32,omitempty"`
|
||||
SFixed64 uint64 `protobuf:"fixed64,9,opt,name=s_fixed64,json=sFixed64,proto3" json:"s_fixed64,omitempty"`
|
||||
SSfixed32 int32 `protobuf:"fixed32,10,opt,name=s_sfixed32,json=sSfixed32,proto3" json:"s_sfixed32,omitempty"`
|
||||
SSfixed64 int64 `protobuf:"fixed64,11,opt,name=s_sfixed64,json=sSfixed64,proto3" json:"s_sfixed64,omitempty"`
|
||||
SFloat float32 `protobuf:"fixed32,20,opt,name=s_float,json=sFloat,proto3" json:"s_float,omitempty"`
|
||||
SDouble float64 `protobuf:"fixed64,21,opt,name=s_double,json=sDouble,proto3" json:"s_double,omitempty"`
|
||||
SBytes []byte `protobuf:"bytes,14,opt,name=s_bytes,json=sBytes,proto3" json:"s_bytes,omitempty"`
|
||||
SString string `protobuf:"bytes,13,opt,name=s_string,json=sString,proto3" json:"s_string,omitempty"`
|
||||
XXX_NoUnkeyedLiteral struct{} `json:"-"`
|
||||
XXX_unrecognized []byte `json:"-"`
|
||||
XXX_sizecache int32 `json:"-"`
|
||||
}
|
||||
|
||||
func (m *Scalars) ProtoReflect() protoreflect.Message {
|
||||
return xxx_Test_protoFile_messageTypes[0].MessageOf(m)
|
||||
}
|
||||
func (m *Scalars) Reset() { *m = Scalars{} }
|
||||
func (m *Scalars) String() string { return proto.CompactTextString(m) }
|
||||
func (*Scalars) ProtoMessage() {}
|
||||
func (*Scalars) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_0854715c5b41c422_gzipped, []int{0}
|
||||
}
|
||||
|
||||
func (m *Scalars) XXX_Unmarshal(b []byte) error {
|
||||
return xxx_messageInfo_Scalars.Unmarshal(m, b)
|
||||
}
|
||||
func (m *Scalars) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
|
||||
return xxx_messageInfo_Scalars.Marshal(b, m, deterministic)
|
||||
}
|
||||
func (m *Scalars) XXX_Merge(src proto.Message) {
|
||||
xxx_messageInfo_Scalars.Merge(m, src)
|
||||
}
|
||||
func (m *Scalars) XXX_Size() int {
|
||||
return xxx_messageInfo_Scalars.Size(m)
|
||||
}
|
||||
func (m *Scalars) XXX_DiscardUnknown() {
|
||||
xxx_messageInfo_Scalars.DiscardUnknown(m)
|
||||
}
|
||||
|
||||
var xxx_messageInfo_Scalars proto.InternalMessageInfo
|
||||
|
||||
func (m *Scalars) GetSBool() bool {
|
||||
if m != nil {
|
||||
return m.SBool
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
func (m *Scalars) GetSInt32() int32 {
|
||||
if m != nil {
|
||||
return m.SInt32
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
func (m *Scalars) GetSInt64() int64 {
|
||||
if m != nil {
|
||||
return m.SInt64
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
func (m *Scalars) GetSUint32() uint32 {
|
||||
if m != nil {
|
||||
return m.SUint32
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
func (m *Scalars) GetSUint64() uint64 {
|
||||
if m != nil {
|
||||
return m.SUint64
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
func (m *Scalars) GetSSint32() int32 {
|
||||
if m != nil {
|
||||
return m.SSint32
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
func (m *Scalars) GetSSint64() int64 {
|
||||
if m != nil {
|
||||
return m.SSint64
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
func (m *Scalars) GetSFixed32() uint32 {
|
||||
if m != nil {
|
||||
return m.SFixed32
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
func (m *Scalars) GetSFixed64() uint64 {
|
||||
if m != nil {
|
||||
return m.SFixed64
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
func (m *Scalars) GetSSfixed32() int32 {
|
||||
if m != nil {
|
||||
return m.SSfixed32
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
func (m *Scalars) GetSSfixed64() int64 {
|
||||
if m != nil {
|
||||
return m.SSfixed64
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
func (m *Scalars) GetSFloat() float32 {
|
||||
if m != nil {
|
||||
return m.SFloat
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
func (m *Scalars) GetSDouble() float64 {
|
||||
if m != nil {
|
||||
return m.SDouble
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
func (m *Scalars) GetSBytes() []byte {
|
||||
if m != nil {
|
||||
return m.SBytes
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (m *Scalars) GetSString() string {
|
||||
if m != nil {
|
||||
return m.SString
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
// Message contains enum fields.
|
||||
type Enums struct {
|
||||
SEnum Enum `protobuf:"varint,1,opt,name=s_enum,json=sEnum,proto3,enum=pb3.Enum" json:"s_enum,omitempty"`
|
||||
SNestedEnum Enums_NestedEnum `protobuf:"varint,3,opt,name=s_nested_enum,json=sNestedEnum,proto3,enum=pb3.Enums_NestedEnum" json:"s_nested_enum,omitempty"`
|
||||
XXX_NoUnkeyedLiteral struct{} `json:"-"`
|
||||
XXX_unrecognized []byte `json:"-"`
|
||||
XXX_sizecache int32 `json:"-"`
|
||||
}
|
||||
|
||||
func (m *Enums) ProtoReflect() protoreflect.Message {
|
||||
return xxx_Test_protoFile_messageTypes[1].MessageOf(m)
|
||||
}
|
||||
func (m *Enums) Reset() { *m = Enums{} }
|
||||
func (m *Enums) String() string { return proto.CompactTextString(m) }
|
||||
func (*Enums) ProtoMessage() {}
|
||||
func (*Enums) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_0854715c5b41c422_gzipped, []int{1}
|
||||
}
|
||||
|
||||
func (m *Enums) XXX_Unmarshal(b []byte) error {
|
||||
return xxx_messageInfo_Enums.Unmarshal(m, b)
|
||||
}
|
||||
func (m *Enums) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
|
||||
return xxx_messageInfo_Enums.Marshal(b, m, deterministic)
|
||||
}
|
||||
func (m *Enums) XXX_Merge(src proto.Message) {
|
||||
xxx_messageInfo_Enums.Merge(m, src)
|
||||
}
|
||||
func (m *Enums) XXX_Size() int {
|
||||
return xxx_messageInfo_Enums.Size(m)
|
||||
}
|
||||
func (m *Enums) XXX_DiscardUnknown() {
|
||||
xxx_messageInfo_Enums.DiscardUnknown(m)
|
||||
}
|
||||
|
||||
var xxx_messageInfo_Enums proto.InternalMessageInfo
|
||||
|
||||
func (m *Enums) GetSEnum() Enum {
|
||||
if m != nil {
|
||||
return m.SEnum
|
||||
}
|
||||
return Enum_ZERO
|
||||
}
|
||||
|
||||
func (m *Enums) GetSNestedEnum() Enums_NestedEnum {
|
||||
if m != nil {
|
||||
return m.SNestedEnum
|
||||
}
|
||||
return Enums_CERO
|
||||
}
|
||||
|
||||
// Message contains nested message field.
|
||||
type Nests struct {
|
||||
SNested *Nested `protobuf:"bytes,1,opt,name=s_nested,json=sNested,proto3" json:"s_nested,omitempty"`
|
||||
XXX_NoUnkeyedLiteral struct{} `json:"-"`
|
||||
XXX_unrecognized []byte `json:"-"`
|
||||
XXX_sizecache int32 `json:"-"`
|
||||
}
|
||||
|
||||
func (m *Nests) ProtoReflect() protoreflect.Message {
|
||||
return xxx_Test_protoFile_messageTypes[2].MessageOf(m)
|
||||
}
|
||||
func (m *Nests) Reset() { *m = Nests{} }
|
||||
func (m *Nests) String() string { return proto.CompactTextString(m) }
|
||||
func (*Nests) ProtoMessage() {}
|
||||
func (*Nests) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_0854715c5b41c422_gzipped, []int{2}
|
||||
}
|
||||
|
||||
func (m *Nests) XXX_Unmarshal(b []byte) error {
|
||||
return xxx_messageInfo_Nests.Unmarshal(m, b)
|
||||
}
|
||||
func (m *Nests) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
|
||||
return xxx_messageInfo_Nests.Marshal(b, m, deterministic)
|
||||
}
|
||||
func (m *Nests) XXX_Merge(src proto.Message) {
|
||||
xxx_messageInfo_Nests.Merge(m, src)
|
||||
}
|
||||
func (m *Nests) XXX_Size() int {
|
||||
return xxx_messageInfo_Nests.Size(m)
|
||||
}
|
||||
func (m *Nests) XXX_DiscardUnknown() {
|
||||
xxx_messageInfo_Nests.DiscardUnknown(m)
|
||||
}
|
||||
|
||||
var xxx_messageInfo_Nests proto.InternalMessageInfo
|
||||
|
||||
func (m *Nests) GetSNested() *Nested {
|
||||
if m != nil {
|
||||
return m.SNested
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
// Message type used as submessage.
|
||||
type Nested struct {
|
||||
SString string `protobuf:"bytes,1,opt,name=s_string,json=sString,proto3" json:"s_string,omitempty"`
|
||||
SNested *Nested `protobuf:"bytes,2,opt,name=s_nested,json=sNested,proto3" json:"s_nested,omitempty"`
|
||||
XXX_NoUnkeyedLiteral struct{} `json:"-"`
|
||||
XXX_unrecognized []byte `json:"-"`
|
||||
XXX_sizecache int32 `json:"-"`
|
||||
}
|
||||
|
||||
func (m *Nested) ProtoReflect() protoreflect.Message {
|
||||
return xxx_Test_protoFile_messageTypes[3].MessageOf(m)
|
||||
}
|
||||
func (m *Nested) Reset() { *m = Nested{} }
|
||||
func (m *Nested) String() string { return proto.CompactTextString(m) }
|
||||
func (*Nested) ProtoMessage() {}
|
||||
func (*Nested) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_0854715c5b41c422_gzipped, []int{3}
|
||||
}
|
||||
|
||||
func (m *Nested) XXX_Unmarshal(b []byte) error {
|
||||
return xxx_messageInfo_Nested.Unmarshal(m, b)
|
||||
}
|
||||
func (m *Nested) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
|
||||
return xxx_messageInfo_Nested.Marshal(b, m, deterministic)
|
||||
}
|
||||
func (m *Nested) XXX_Merge(src proto.Message) {
|
||||
xxx_messageInfo_Nested.Merge(m, src)
|
||||
}
|
||||
func (m *Nested) XXX_Size() int {
|
||||
return xxx_messageInfo_Nested.Size(m)
|
||||
}
|
||||
func (m *Nested) XXX_DiscardUnknown() {
|
||||
xxx_messageInfo_Nested.DiscardUnknown(m)
|
||||
}
|
||||
|
||||
var xxx_messageInfo_Nested proto.InternalMessageInfo
|
||||
|
||||
func (m *Nested) GetSString() string {
|
||||
if m != nil {
|
||||
return m.SString
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
func (m *Nested) GetSNested() *Nested {
|
||||
if m != nil {
|
||||
return m.SNested
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func init() {
|
||||
proto.RegisterFile("encoding/textpb/testprotos/pb3/test.proto", fileDescriptor_0854715c5b41c422_gzipped)
|
||||
proto.RegisterEnum("pb3.Enum", Enum_name, Enum_value)
|
||||
proto.RegisterEnum("pb3.Enums_NestedEnum", Enums_NestedEnum_name, Enums_NestedEnum_value)
|
||||
proto.RegisterType((*Scalars)(nil), "pb3.Scalars")
|
||||
proto.RegisterType((*Enums)(nil), "pb3.Enums")
|
||||
proto.RegisterType((*Nests)(nil), "pb3.Nests")
|
||||
proto.RegisterType((*Nested)(nil), "pb3.Nested")
|
||||
}
|
||||
|
||||
var fileDescriptor_0854715c5b41c422 = []byte{
|
||||
// 863 bytes of the wire-encoded FileDescriptorProto
|
||||
0x0a, 0x29, 0x65, 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x2f, 0x74, 0x65, 0x78, 0x74, 0x70,
|
||||
0x62, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2f, 0x70, 0x62, 0x33,
|
||||
0x2f, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x03, 0x70, 0x62, 0x33,
|
||||
0x22, 0x9e, 0x03, 0x0a, 0x07, 0x53, 0x63, 0x61, 0x6c, 0x61, 0x72, 0x73, 0x12, 0x15, 0x0a, 0x06,
|
||||
0x73, 0x5f, 0x62, 0x6f, 0x6f, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x73, 0x42,
|
||||
0x6f, 0x6f, 0x6c, 0x12, 0x17, 0x0a, 0x07, 0x73, 0x5f, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x18, 0x02,
|
||||
0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x17, 0x0a, 0x07,
|
||||
0x73, 0x5f, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x73,
|
||||
0x49, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x19, 0x0a, 0x08, 0x73, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x33,
|
||||
0x32, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x73, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32,
|
||||
0x12, 0x19, 0x0a, 0x08, 0x73, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x18, 0x05, 0x20, 0x01,
|
||||
0x28, 0x04, 0x52, 0x07, 0x73, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x19, 0x0a, 0x08, 0x73,
|
||||
0x5f, 0x73, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x18, 0x06, 0x20, 0x01, 0x28, 0x11, 0x52, 0x07, 0x73,
|
||||
0x53, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x19, 0x0a, 0x08, 0x73, 0x5f, 0x73, 0x69, 0x6e, 0x74,
|
||||
0x36, 0x34, 0x18, 0x07, 0x20, 0x01, 0x28, 0x12, 0x52, 0x07, 0x73, 0x53, 0x69, 0x6e, 0x74, 0x36,
|
||||
0x34, 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x5f, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x18, 0x08,
|
||||
0x20, 0x01, 0x28, 0x07, 0x52, 0x08, 0x73, 0x46, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x12, 0x1b,
|
||||
0x0a, 0x09, 0x73, 0x5f, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x18, 0x09, 0x20, 0x01, 0x28,
|
||||
0x06, 0x52, 0x08, 0x73, 0x46, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x12, 0x1d, 0x0a, 0x0a, 0x73,
|
||||
0x5f, 0x73, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0f, 0x52,
|
||||
0x09, 0x73, 0x53, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x5f,
|
||||
0x73, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x10, 0x52, 0x09,
|
||||
0x73, 0x53, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x12, 0x17, 0x0a, 0x07, 0x73, 0x5f, 0x66,
|
||||
0x6c, 0x6f, 0x61, 0x74, 0x18, 0x14, 0x20, 0x01, 0x28, 0x02, 0x52, 0x06, 0x73, 0x46, 0x6c, 0x6f,
|
||||
0x61, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x73, 0x5f, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x18, 0x15,
|
||||
0x20, 0x01, 0x28, 0x01, 0x52, 0x07, 0x73, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x12, 0x17, 0x0a,
|
||||
0x07, 0x73, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06,
|
||||
0x73, 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x73, 0x5f, 0x73, 0x74, 0x72, 0x69,
|
||||
0x6e, 0x67, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e,
|
||||
0x67, 0x22, 0x98, 0x01, 0x0a, 0x05, 0x45, 0x6e, 0x75, 0x6d, 0x73, 0x12, 0x20, 0x0a, 0x06, 0x73,
|
||||
0x5f, 0x65, 0x6e, 0x75, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x09, 0x2e, 0x70, 0x62,
|
||||
0x33, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x05, 0x73, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x39, 0x0a,
|
||||
0x0d, 0x73, 0x5f, 0x6e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x65, 0x6e, 0x75, 0x6d, 0x18, 0x03,
|
||||
0x20, 0x01, 0x28, 0x0e, 0x32, 0x15, 0x2e, 0x70, 0x62, 0x33, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x73,
|
||||
0x2e, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x0b, 0x73, 0x4e, 0x65,
|
||||
0x73, 0x74, 0x65, 0x64, 0x45, 0x6e, 0x75, 0x6d, 0x22, 0x32, 0x0a, 0x0a, 0x4e, 0x65, 0x73, 0x74,
|
||||
0x65, 0x64, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x08, 0x0a, 0x04, 0x43, 0x45, 0x52, 0x4f, 0x10, 0x00,
|
||||
0x12, 0x07, 0x0a, 0x03, 0x55, 0x4e, 0x4f, 0x10, 0x01, 0x12, 0x07, 0x0a, 0x03, 0x44, 0x4f, 0x53,
|
||||
0x10, 0x02, 0x12, 0x08, 0x0a, 0x04, 0x44, 0x49, 0x45, 0x5a, 0x10, 0x0a, 0x22, 0x2f, 0x0a, 0x05,
|
||||
0x4e, 0x65, 0x73, 0x74, 0x73, 0x12, 0x26, 0x0a, 0x08, 0x73, 0x5f, 0x6e, 0x65, 0x73, 0x74, 0x65,
|
||||
0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x70, 0x62, 0x33, 0x2e, 0x4e, 0x65,
|
||||
0x73, 0x74, 0x65, 0x64, 0x52, 0x07, 0x73, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x22, 0x4b, 0x0a,
|
||||
0x06, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x73, 0x5f, 0x73, 0x74, 0x72,
|
||||
0x69, 0x6e, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x53, 0x74, 0x72, 0x69,
|
||||
0x6e, 0x67, 0x12, 0x26, 0x0a, 0x08, 0x73, 0x5f, 0x6e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x18, 0x02,
|
||||
0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x70, 0x62, 0x33, 0x2e, 0x4e, 0x65, 0x73, 0x74, 0x65,
|
||||
0x64, 0x52, 0x07, 0x73, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x2a, 0x2b, 0x0a, 0x04, 0x45, 0x6e,
|
||||
0x75, 0x6d, 0x12, 0x08, 0x0a, 0x04, 0x5a, 0x45, 0x52, 0x4f, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03,
|
||||
0x4f, 0x4e, 0x45, 0x10, 0x01, 0x12, 0x07, 0x0a, 0x03, 0x54, 0x57, 0x4f, 0x10, 0x02, 0x12, 0x07,
|
||||
0x0a, 0x03, 0x54, 0x45, 0x4e, 0x10, 0x0a, 0x42, 0x3e, 0x5a, 0x3c, 0x67, 0x69, 0x74, 0x68, 0x75,
|
||||
0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2f, 0x70, 0x72, 0x6f,
|
||||
0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x76, 0x32, 0x2f, 0x65, 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e,
|
||||
0x67, 0x2f, 0x74, 0x65, 0x78, 0x74, 0x70, 0x62, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x70, 0x72, 0x6f,
|
||||
0x74, 0x6f, 0x73, 0x2f, 0x70, 0x62, 0x33, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
|
||||
}
|
||||
|
||||
var fileDescriptor_0854715c5b41c422_gzipped = func() []byte {
|
||||
bb := new(bytes.Buffer)
|
||||
zw, _ := gzip.NewWriterLevel(bb, gzip.NoCompression)
|
||||
zw.Write(fileDescriptor_0854715c5b41c422)
|
||||
zw.Close()
|
||||
return bb.Bytes()
|
||||
}()
|
||||
|
||||
const _ = protoimpl.EnforceVersion(protoimpl.Version - 0)
|
||||
|
||||
var Test_protoFile protoreflect.FileDescriptor
|
||||
|
||||
var xxx_Test_protoFile_enumTypes [2]protoreflect.EnumType
|
||||
var xxx_Test_protoFile_messageTypes [4]protoimpl.MessageType
|
||||
var xxx_Test_protoFile_goTypes = []interface{}{
|
||||
(Enum)(0), // 0: pb3.Enum
|
||||
(Enums_NestedEnum)(0), // 1: pb3.Enums.NestedEnum
|
||||
(*Scalars)(nil), // 2: pb3.Scalars
|
||||
(*Enums)(nil), // 3: pb3.Enums
|
||||
(*Nests)(nil), // 4: pb3.Nests
|
||||
(*Nested)(nil), // 5: pb3.Nested
|
||||
}
|
||||
var xxx_Test_protoFile_depIdxs = []int32{
|
||||
0, // pb3.Enums.s_enum:type_name -> pb3.Enum
|
||||
1, // pb3.Enums.s_nested_enum:type_name -> pb3.Enums.NestedEnum
|
||||
5, // pb3.Nests.s_nested:type_name -> pb3.Nested
|
||||
5, // pb3.Nested.s_nested:type_name -> pb3.Nested
|
||||
}
|
||||
|
||||
func init() {
|
||||
var messageTypes [4]protoreflect.MessageType
|
||||
Test_protoFile = protoimpl.FileBuilder{
|
||||
RawDescriptor: fileDescriptor_0854715c5b41c422,
|
||||
GoTypes: xxx_Test_protoFile_goTypes,
|
||||
DependencyIndexes: xxx_Test_protoFile_depIdxs,
|
||||
EnumOutputTypes: xxx_Test_protoFile_enumTypes[:],
|
||||
MessageOutputTypes: messageTypes[:],
|
||||
}.Init()
|
||||
messageGoTypes := xxx_Test_protoFile_goTypes[2:][:4]
|
||||
for i, mt := range messageTypes[:] {
|
||||
xxx_Test_protoFile_messageTypes[i].GoType = reflect.TypeOf(messageGoTypes[i])
|
||||
xxx_Test_protoFile_messageTypes[i].PBType = mt
|
||||
}
|
||||
xxx_Test_protoFile_goTypes = nil
|
||||
xxx_Test_protoFile_depIdxs = nil
|
||||
}
|
@ -59,9 +59,9 @@ PROTOC_GEN_GO_ENABLE_REFLECT=1 protoc -I$tmpdir/src \
|
||||
$tmpdir/src/google/protobuf/compiler/plugin.proto
|
||||
cp $tmpdir/src/google/protobuf/compiler/plugin.pb.go ./types/plugin/plugin.pb.go
|
||||
|
||||
echo "# encoding/textpb/testprotos/pb?/test.proto"
|
||||
echo "# encoding/testprotos/pb?/test.proto"
|
||||
PROTOC_GEN_GO_ENABLE_REFLECT=1 protoc --go_out=paths=source_relative:. \
|
||||
encoding/textpb/testprotos/pb?/test.proto
|
||||
encoding/testprotos/pb?/test.proto
|
||||
|
||||
echo "# reflect/protoregistry/testprotos/test.proto"
|
||||
PROTOC_GEN_GO_ENABLE_REFLECT=1 protoc --go_out=paths=source_relative:. \
|
||||
|
Loading…
x
Reference in New Issue
Block a user