1*1c12ee1eSDan Willemsen// Copyright 2018 The Go Authors. All rights reserved. 2*1c12ee1eSDan Willemsen// Use of this source code is governed by a BSD-style 3*1c12ee1eSDan Willemsen// license that can be found in the LICENSE file. 4*1c12ee1eSDan Willemsen 5*1c12ee1eSDan Willemsensyntax = "proto2"; 6*1c12ee1eSDan Willemsen 7*1c12ee1eSDan Willemsenpackage goproto.proto.test; 8*1c12ee1eSDan Willemsen 9*1c12ee1eSDan Willemsenimport "internal/testprotos/enums/enums.proto"; 10*1c12ee1eSDan Willemsenimport "internal/testprotos/test/test_import.proto"; 11*1c12ee1eSDan Willemsenimport public "internal/testprotos/test/test_public.proto"; 12*1c12ee1eSDan Willemsenimport weak "internal/testprotos/test/weak1/test_weak.proto"; 13*1c12ee1eSDan Willemsenimport weak "internal/testprotos/test/weak2/test_weak.proto"; 14*1c12ee1eSDan Willemsen 15*1c12ee1eSDan Willemsenoption go_package = "google.golang.org/protobuf/internal/testprotos/test"; 16*1c12ee1eSDan Willemsen 17*1c12ee1eSDan Willemsenmessage TestAllTypes { 18*1c12ee1eSDan Willemsen message NestedMessage { 19*1c12ee1eSDan Willemsen optional int32 a = 1; 20*1c12ee1eSDan Willemsen optional TestAllTypes corecursive = 2; 21*1c12ee1eSDan Willemsen } 22*1c12ee1eSDan Willemsen 23*1c12ee1eSDan Willemsen enum NestedEnum { 24*1c12ee1eSDan Willemsen FOO = 0; 25*1c12ee1eSDan Willemsen BAR = 1; 26*1c12ee1eSDan Willemsen BAZ = 2; 27*1c12ee1eSDan Willemsen NEG = -1; // Intentionally negative. 28*1c12ee1eSDan Willemsen } 29*1c12ee1eSDan Willemsen 30*1c12ee1eSDan Willemsen optional int32 optional_int32 = 1; 31*1c12ee1eSDan Willemsen optional int64 optional_int64 = 2; 32*1c12ee1eSDan Willemsen optional uint32 optional_uint32 = 3; 33*1c12ee1eSDan Willemsen optional uint64 optional_uint64 = 4; 34*1c12ee1eSDan Willemsen optional sint32 optional_sint32 = 5; 35*1c12ee1eSDan Willemsen optional sint64 optional_sint64 = 6; 36*1c12ee1eSDan Willemsen optional fixed32 optional_fixed32 = 7; 37*1c12ee1eSDan Willemsen optional fixed64 optional_fixed64 = 8; 38*1c12ee1eSDan Willemsen optional sfixed32 optional_sfixed32 = 9; 39*1c12ee1eSDan Willemsen optional sfixed64 optional_sfixed64 = 10; 40*1c12ee1eSDan Willemsen optional float optional_float = 11; 41*1c12ee1eSDan Willemsen optional double optional_double = 12; 42*1c12ee1eSDan Willemsen optional bool optional_bool = 13; 43*1c12ee1eSDan Willemsen optional string optional_string = 14; 44*1c12ee1eSDan Willemsen optional bytes optional_bytes = 15; 45*1c12ee1eSDan Willemsen optional group OptionalGroup = 16 { 46*1c12ee1eSDan Willemsen optional int32 a = 17; 47*1c12ee1eSDan Willemsen optional NestedMessage optional_nested_message = 1000; 48*1c12ee1eSDan Willemsen optional int32 same_field_number = 16; 49*1c12ee1eSDan Willemsen } 50*1c12ee1eSDan Willemsen optional NestedMessage optional_nested_message = 18; 51*1c12ee1eSDan Willemsen optional ForeignMessage optional_foreign_message = 19; 52*1c12ee1eSDan Willemsen optional ImportMessage optional_import_message = 20; 53*1c12ee1eSDan Willemsen optional NestedEnum optional_nested_enum = 21; 54*1c12ee1eSDan Willemsen optional ForeignEnum optional_foreign_enum = 22; 55*1c12ee1eSDan Willemsen optional ImportEnum optional_import_enum = 23; 56*1c12ee1eSDan Willemsen 57*1c12ee1eSDan Willemsen repeated int32 repeated_int32 = 31; 58*1c12ee1eSDan Willemsen repeated int64 repeated_int64 = 32; 59*1c12ee1eSDan Willemsen repeated uint32 repeated_uint32 = 33; 60*1c12ee1eSDan Willemsen repeated uint64 repeated_uint64 = 34; 61*1c12ee1eSDan Willemsen repeated sint32 repeated_sint32 = 35; 62*1c12ee1eSDan Willemsen repeated sint64 repeated_sint64 = 36; 63*1c12ee1eSDan Willemsen repeated fixed32 repeated_fixed32 = 37; 64*1c12ee1eSDan Willemsen repeated fixed64 repeated_fixed64 = 38; 65*1c12ee1eSDan Willemsen repeated sfixed32 repeated_sfixed32 = 39; 66*1c12ee1eSDan Willemsen repeated sfixed64 repeated_sfixed64 = 40; 67*1c12ee1eSDan Willemsen repeated float repeated_float = 41; 68*1c12ee1eSDan Willemsen repeated double repeated_double = 42; 69*1c12ee1eSDan Willemsen repeated bool repeated_bool = 43; 70*1c12ee1eSDan Willemsen repeated string repeated_string = 44; 71*1c12ee1eSDan Willemsen repeated bytes repeated_bytes = 45; 72*1c12ee1eSDan Willemsen repeated group RepeatedGroup = 46 { 73*1c12ee1eSDan Willemsen optional int32 a = 47; 74*1c12ee1eSDan Willemsen optional NestedMessage optional_nested_message = 1001; 75*1c12ee1eSDan Willemsen } 76*1c12ee1eSDan Willemsen repeated NestedMessage repeated_nested_message = 48; 77*1c12ee1eSDan Willemsen repeated ForeignMessage repeated_foreign_message = 49; 78*1c12ee1eSDan Willemsen repeated ImportMessage repeated_importmessage = 50; 79*1c12ee1eSDan Willemsen repeated NestedEnum repeated_nested_enum = 51; 80*1c12ee1eSDan Willemsen repeated ForeignEnum repeated_foreign_enum = 52; 81*1c12ee1eSDan Willemsen repeated ImportEnum repeated_importenum = 53; 82*1c12ee1eSDan Willemsen 83*1c12ee1eSDan Willemsen map < int32, int32> map_int32_int32 = 56; 84*1c12ee1eSDan Willemsen map < int64, int64> map_int64_int64 = 57; 85*1c12ee1eSDan Willemsen map < uint32, uint32> map_uint32_uint32 = 58; 86*1c12ee1eSDan Willemsen map < uint64, uint64> map_uint64_uint64 = 59; 87*1c12ee1eSDan Willemsen map < sint32, sint32> map_sint32_sint32 = 60; 88*1c12ee1eSDan Willemsen map < sint64, sint64> map_sint64_sint64 = 61; 89*1c12ee1eSDan Willemsen map < fixed32, fixed32> map_fixed32_fixed32 = 62; 90*1c12ee1eSDan Willemsen map < fixed64, fixed64> map_fixed64_fixed64 = 63; 91*1c12ee1eSDan Willemsen map <sfixed32, sfixed32> map_sfixed32_sfixed32 = 64; 92*1c12ee1eSDan Willemsen map <sfixed64, sfixed64> map_sfixed64_sfixed64 = 65; 93*1c12ee1eSDan Willemsen map < int32, float> map_int32_float = 66; 94*1c12ee1eSDan Willemsen map < int32, double> map_int32_double = 67; 95*1c12ee1eSDan Willemsen map < bool, bool> map_bool_bool = 68; 96*1c12ee1eSDan Willemsen map < string, string> map_string_string = 69; 97*1c12ee1eSDan Willemsen map < string, bytes> map_string_bytes = 70; 98*1c12ee1eSDan Willemsen map < string, NestedMessage> map_string_nested_message = 71; 99*1c12ee1eSDan Willemsen map < string, NestedEnum> map_string_nested_enum = 73; 100*1c12ee1eSDan Willemsen 101*1c12ee1eSDan Willemsen // Singular with defaults 102*1c12ee1eSDan Willemsen optional int32 default_int32 = 81 [default = 81 ]; 103*1c12ee1eSDan Willemsen optional int64 default_int64 = 82 [default = 82 ]; 104*1c12ee1eSDan Willemsen optional uint32 default_uint32 = 83 [default = 83 ]; 105*1c12ee1eSDan Willemsen optional uint64 default_uint64 = 84 [default = 84 ]; 106*1c12ee1eSDan Willemsen optional sint32 default_sint32 = 85 [default = -85 ]; 107*1c12ee1eSDan Willemsen optional sint64 default_sint64 = 86 [default = 86 ]; 108*1c12ee1eSDan Willemsen optional fixed32 default_fixed32 = 87 [default = 87 ]; 109*1c12ee1eSDan Willemsen optional fixed64 default_fixed64 = 88 [default = 88 ]; 110*1c12ee1eSDan Willemsen optional sfixed32 default_sfixed32 = 89 [default = 89 ]; 111*1c12ee1eSDan Willemsen optional sfixed64 default_sfixed64 = 80 [default = -90 ]; 112*1c12ee1eSDan Willemsen optional float default_float = 91 [default = 91.5 ]; 113*1c12ee1eSDan Willemsen optional double default_double = 92 [default = 92e3 ]; 114*1c12ee1eSDan Willemsen optional bool default_bool = 93 [default = true ]; 115*1c12ee1eSDan Willemsen optional string default_string = 94 [default = "hello"]; 116*1c12ee1eSDan Willemsen optional bytes default_bytes = 95 [default = "world"]; 117*1c12ee1eSDan Willemsen optional NestedEnum default_nested_enum = 96 [default = BAR ]; 118*1c12ee1eSDan Willemsen optional ForeignEnum default_foreign_enum = 97 [default = FOREIGN_BAR]; 119*1c12ee1eSDan Willemsen 120*1c12ee1eSDan Willemsen oneof oneof_field { 121*1c12ee1eSDan Willemsen uint32 oneof_uint32 = 111; 122*1c12ee1eSDan Willemsen NestedMessage oneof_nested_message = 112; 123*1c12ee1eSDan Willemsen string oneof_string = 113; 124*1c12ee1eSDan Willemsen bytes oneof_bytes = 114; 125*1c12ee1eSDan Willemsen bool oneof_bool = 115; 126*1c12ee1eSDan Willemsen uint64 oneof_uint64 = 116; 127*1c12ee1eSDan Willemsen float oneof_float = 117; 128*1c12ee1eSDan Willemsen double oneof_double = 118; 129*1c12ee1eSDan Willemsen NestedEnum oneof_enum = 119; 130*1c12ee1eSDan Willemsen group OneofGroup = 121 { 131*1c12ee1eSDan Willemsen optional int32 a = 1; 132*1c12ee1eSDan Willemsen optional int32 b = 2; 133*1c12ee1eSDan Willemsen } 134*1c12ee1eSDan Willemsen } 135*1c12ee1eSDan Willemsen 136*1c12ee1eSDan Willemsen // A oneof with exactly one field. 137*1c12ee1eSDan Willemsen oneof oneof_optional { 138*1c12ee1eSDan Willemsen uint32 oneof_optional_uint32 = 120; 139*1c12ee1eSDan Willemsen } 140*1c12ee1eSDan Willemsen} 141*1c12ee1eSDan Willemsen 142*1c12ee1eSDan Willemsenmessage TestDeprecatedMessage { 143*1c12ee1eSDan Willemsen option deprecated = true; 144*1c12ee1eSDan Willemsen optional int32 deprecated_int32 = 1 [deprecated=true]; 145*1c12ee1eSDan Willemsen enum DeprecatedEnum { 146*1c12ee1eSDan Willemsen option deprecated = true; 147*1c12ee1eSDan Willemsen DEPRECATED = 0 [deprecated=true]; 148*1c12ee1eSDan Willemsen } 149*1c12ee1eSDan Willemsen oneof deprecated_oneof { 150*1c12ee1eSDan Willemsen int32 deprecated_oneof_field = 2 [deprecated = true]; 151*1c12ee1eSDan Willemsen } 152*1c12ee1eSDan Willemsen} 153*1c12ee1eSDan Willemsen 154*1c12ee1eSDan Willemsenmessage ForeignMessage { 155*1c12ee1eSDan Willemsen optional int32 c = 1; 156*1c12ee1eSDan Willemsen optional int32 d = 2; 157*1c12ee1eSDan Willemsen} 158*1c12ee1eSDan Willemsen 159*1c12ee1eSDan Willemsenenum ForeignEnum { 160*1c12ee1eSDan Willemsen FOREIGN_FOO = 4; 161*1c12ee1eSDan Willemsen FOREIGN_BAR = 5; 162*1c12ee1eSDan Willemsen FOREIGN_BAZ = 6; 163*1c12ee1eSDan Willemsen} 164*1c12ee1eSDan Willemsen 165*1c12ee1eSDan Willemsenmessage TestReservedFields { 166*1c12ee1eSDan Willemsen reserved 2, 15, 9 to 11; 167*1c12ee1eSDan Willemsen reserved "bar", "baz"; 168*1c12ee1eSDan Willemsen} 169*1c12ee1eSDan Willemsen 170*1c12ee1eSDan Willemsenenum TestReservedEnumFields { 171*1c12ee1eSDan Willemsen RESERVED_ENUM = 0; 172*1c12ee1eSDan Willemsen reserved 2, 15, 9 to 11; 173*1c12ee1eSDan Willemsen reserved "BAR", "BAZ"; 174*1c12ee1eSDan Willemsen} 175*1c12ee1eSDan Willemsen 176*1c12ee1eSDan Willemsenmessage TestAllExtensions { 177*1c12ee1eSDan Willemsen message NestedMessage { 178*1c12ee1eSDan Willemsen optional int32 a = 1; 179*1c12ee1eSDan Willemsen optional TestAllExtensions corecursive = 2; 180*1c12ee1eSDan Willemsen } 181*1c12ee1eSDan Willemsen 182*1c12ee1eSDan Willemsen extensions 1 to max; 183*1c12ee1eSDan Willemsen} 184*1c12ee1eSDan Willemsen 185*1c12ee1eSDan Willemsenextend TestAllExtensions { 186*1c12ee1eSDan Willemsen optional int32 optional_int32 = 1; 187*1c12ee1eSDan Willemsen optional int64 optional_int64 = 2; 188*1c12ee1eSDan Willemsen optional uint32 optional_uint32 = 3; 189*1c12ee1eSDan Willemsen optional uint64 optional_uint64 = 4; 190*1c12ee1eSDan Willemsen optional sint32 optional_sint32 = 5; 191*1c12ee1eSDan Willemsen optional sint64 optional_sint64 = 6; 192*1c12ee1eSDan Willemsen optional fixed32 optional_fixed32 = 7; 193*1c12ee1eSDan Willemsen optional fixed64 optional_fixed64 = 8; 194*1c12ee1eSDan Willemsen optional sfixed32 optional_sfixed32 = 9; 195*1c12ee1eSDan Willemsen optional sfixed64 optional_sfixed64 = 10; 196*1c12ee1eSDan Willemsen optional float optional_float = 11; 197*1c12ee1eSDan Willemsen optional double optional_double = 12; 198*1c12ee1eSDan Willemsen optional bool optional_bool = 13; 199*1c12ee1eSDan Willemsen optional string optional_string = 14; 200*1c12ee1eSDan Willemsen optional bytes optional_bytes = 15; 201*1c12ee1eSDan Willemsen 202*1c12ee1eSDan Willemsen optional group OptionalGroup = 16 { 203*1c12ee1eSDan Willemsen optional int32 a = 17; 204*1c12ee1eSDan Willemsen optional int32 same_field_number = 16; 205*1c12ee1eSDan Willemsen optional TestAllExtensions.NestedMessage optional_nested_message = 1000; 206*1c12ee1eSDan Willemsen } 207*1c12ee1eSDan Willemsen 208*1c12ee1eSDan Willemsen optional TestAllExtensions.NestedMessage optional_nested_message = 18; 209*1c12ee1eSDan Willemsen optional TestAllTypes.NestedEnum optional_nested_enum = 21; 210*1c12ee1eSDan Willemsen 211*1c12ee1eSDan Willemsen repeated int32 repeated_int32 = 31; 212*1c12ee1eSDan Willemsen repeated int64 repeated_int64 = 32; 213*1c12ee1eSDan Willemsen repeated uint32 repeated_uint32 = 33; 214*1c12ee1eSDan Willemsen repeated uint64 repeated_uint64 = 34; 215*1c12ee1eSDan Willemsen repeated sint32 repeated_sint32 = 35; 216*1c12ee1eSDan Willemsen repeated sint64 repeated_sint64 = 36; 217*1c12ee1eSDan Willemsen repeated fixed32 repeated_fixed32 = 37; 218*1c12ee1eSDan Willemsen repeated fixed64 repeated_fixed64 = 38; 219*1c12ee1eSDan Willemsen repeated sfixed32 repeated_sfixed32 = 39; 220*1c12ee1eSDan Willemsen repeated sfixed64 repeated_sfixed64 = 40; 221*1c12ee1eSDan Willemsen repeated float repeated_float = 41; 222*1c12ee1eSDan Willemsen repeated double repeated_double = 42; 223*1c12ee1eSDan Willemsen repeated bool repeated_bool = 43; 224*1c12ee1eSDan Willemsen repeated string repeated_string = 44; 225*1c12ee1eSDan Willemsen repeated bytes repeated_bytes = 45; 226*1c12ee1eSDan Willemsen 227*1c12ee1eSDan Willemsen repeated group RepeatedGroup = 46 { 228*1c12ee1eSDan Willemsen optional int32 a = 47; 229*1c12ee1eSDan Willemsen optional TestAllExtensions.NestedMessage optional_nested_message = 1001; 230*1c12ee1eSDan Willemsen } 231*1c12ee1eSDan Willemsen 232*1c12ee1eSDan Willemsen repeated TestAllExtensions.NestedMessage repeated_nested_message = 48; 233*1c12ee1eSDan Willemsen repeated TestAllTypes.NestedEnum repeated_nested_enum = 51; 234*1c12ee1eSDan Willemsen 235*1c12ee1eSDan Willemsen optional int32 default_int32 = 81 [default = 81 ]; 236*1c12ee1eSDan Willemsen optional int64 default_int64 = 82 [default = 82 ]; 237*1c12ee1eSDan Willemsen optional uint32 default_uint32 = 83 [default = 83 ]; 238*1c12ee1eSDan Willemsen optional uint64 default_uint64 = 84 [default = 84 ]; 239*1c12ee1eSDan Willemsen optional sint32 default_sint32 = 85 [default = -85 ]; 240*1c12ee1eSDan Willemsen optional sint64 default_sint64 = 86 [default = 86 ]; 241*1c12ee1eSDan Willemsen optional fixed32 default_fixed32 = 87 [default = 87 ]; 242*1c12ee1eSDan Willemsen optional fixed64 default_fixed64 = 88 [default = 88 ]; 243*1c12ee1eSDan Willemsen optional sfixed32 default_sfixed32 = 89 [default = 89 ]; 244*1c12ee1eSDan Willemsen optional sfixed64 default_sfixed64 = 80 [default = -90 ]; 245*1c12ee1eSDan Willemsen optional float default_float = 91 [default = 91.5 ]; 246*1c12ee1eSDan Willemsen optional double default_double = 92 [default = 92e3 ]; 247*1c12ee1eSDan Willemsen optional bool default_bool = 93 [default = true ]; 248*1c12ee1eSDan Willemsen optional string default_string = 94 [default = "hello"]; 249*1c12ee1eSDan Willemsen optional bytes default_bytes = 95 [default = "world"]; 250*1c12ee1eSDan Willemsen} 251*1c12ee1eSDan Willemsen 252*1c12ee1eSDan Willemsenmessage TestNestedExtension { 253*1c12ee1eSDan Willemsen extend TestAllExtensions { 254*1c12ee1eSDan Willemsen optional string nested_string_extension = 1003; 255*1c12ee1eSDan Willemsen } 256*1c12ee1eSDan Willemsen} 257*1c12ee1eSDan Willemsen 258*1c12ee1eSDan Willemsenmessage TestRequired { 259*1c12ee1eSDan Willemsen required int32 required_field = 1; 260*1c12ee1eSDan Willemsen 261*1c12ee1eSDan Willemsen extend TestAllExtensions { 262*1c12ee1eSDan Willemsen optional TestRequired single = 1000; 263*1c12ee1eSDan Willemsen repeated TestRequired multi = 1001; 264*1c12ee1eSDan Willemsen } 265*1c12ee1eSDan Willemsen} 266*1c12ee1eSDan Willemsen 267*1c12ee1eSDan Willemsenmessage TestRequiredForeign { 268*1c12ee1eSDan Willemsen optional TestRequired optional_message = 1; 269*1c12ee1eSDan Willemsen repeated TestRequired repeated_message = 2; 270*1c12ee1eSDan Willemsen map<int32, TestRequired> map_message = 3; 271*1c12ee1eSDan Willemsen oneof oneof_field { 272*1c12ee1eSDan Willemsen TestRequired oneof_message = 4; 273*1c12ee1eSDan Willemsen } 274*1c12ee1eSDan Willemsen} 275*1c12ee1eSDan Willemsen 276*1c12ee1eSDan Willemsenmessage TestRequiredGroupFields { 277*1c12ee1eSDan Willemsen optional group OptionalGroup = 1 { 278*1c12ee1eSDan Willemsen required int32 a = 2; 279*1c12ee1eSDan Willemsen } 280*1c12ee1eSDan Willemsen repeated group RepeatedGroup = 3 { 281*1c12ee1eSDan Willemsen required int32 a = 4; 282*1c12ee1eSDan Willemsen } 283*1c12ee1eSDan Willemsen} 284*1c12ee1eSDan Willemsen 285*1c12ee1eSDan Willemsenmessage TestWeak { 286*1c12ee1eSDan Willemsen optional goproto.proto.test.weak.WeakImportMessage1 weak_message1 = 1 [weak=true]; 287*1c12ee1eSDan Willemsen optional goproto.proto.test.weak.WeakImportMessage2 weak_message2 = 2 [weak=true]; 288*1c12ee1eSDan Willemsen} 289*1c12ee1eSDan Willemsen 290*1c12ee1eSDan Willemsenmessage TestPackedTypes { 291*1c12ee1eSDan Willemsen repeated int32 packed_int32 = 90 [packed = true]; 292*1c12ee1eSDan Willemsen repeated int64 packed_int64 = 91 [packed = true]; 293*1c12ee1eSDan Willemsen repeated uint32 packed_uint32 = 92 [packed = true]; 294*1c12ee1eSDan Willemsen repeated uint64 packed_uint64 = 93 [packed = true]; 295*1c12ee1eSDan Willemsen repeated sint32 packed_sint32 = 94 [packed = true]; 296*1c12ee1eSDan Willemsen repeated sint64 packed_sint64 = 95 [packed = true]; 297*1c12ee1eSDan Willemsen repeated fixed32 packed_fixed32 = 96 [packed = true]; 298*1c12ee1eSDan Willemsen repeated fixed64 packed_fixed64 = 97 [packed = true]; 299*1c12ee1eSDan Willemsen repeated sfixed32 packed_sfixed32 = 98 [packed = true]; 300*1c12ee1eSDan Willemsen repeated sfixed64 packed_sfixed64 = 99 [packed = true]; 301*1c12ee1eSDan Willemsen repeated float packed_float = 100 [packed = true]; 302*1c12ee1eSDan Willemsen repeated double packed_double = 101 [packed = true]; 303*1c12ee1eSDan Willemsen repeated bool packed_bool = 102 [packed = true]; 304*1c12ee1eSDan Willemsen repeated ForeignEnum packed_enum = 103 [packed = true]; 305*1c12ee1eSDan Willemsen} 306*1c12ee1eSDan Willemsen 307*1c12ee1eSDan Willemsenmessage TestUnpackedTypes { 308*1c12ee1eSDan Willemsen repeated int32 unpacked_int32 = 90 [packed = false]; 309*1c12ee1eSDan Willemsen repeated int64 unpacked_int64 = 91 [packed = false]; 310*1c12ee1eSDan Willemsen repeated uint32 unpacked_uint32 = 92 [packed = false]; 311*1c12ee1eSDan Willemsen repeated uint64 unpacked_uint64 = 93 [packed = false]; 312*1c12ee1eSDan Willemsen repeated sint32 unpacked_sint32 = 94 [packed = false]; 313*1c12ee1eSDan Willemsen repeated sint64 unpacked_sint64 = 95 [packed = false]; 314*1c12ee1eSDan Willemsen repeated fixed32 unpacked_fixed32 = 96 [packed = false]; 315*1c12ee1eSDan Willemsen repeated fixed64 unpacked_fixed64 = 97 [packed = false]; 316*1c12ee1eSDan Willemsen repeated sfixed32 unpacked_sfixed32 = 98 [packed = false]; 317*1c12ee1eSDan Willemsen repeated sfixed64 unpacked_sfixed64 = 99 [packed = false]; 318*1c12ee1eSDan Willemsen repeated float unpacked_float = 100 [packed = false]; 319*1c12ee1eSDan Willemsen repeated double unpacked_double = 101 [packed = false]; 320*1c12ee1eSDan Willemsen repeated bool unpacked_bool = 102 [packed = false]; 321*1c12ee1eSDan Willemsen repeated ForeignEnum unpacked_enum = 103 [packed = false]; 322*1c12ee1eSDan Willemsen} 323*1c12ee1eSDan Willemsen 324*1c12ee1eSDan Willemsenmessage TestPackedExtensions { 325*1c12ee1eSDan Willemsen extensions 1 to max; 326*1c12ee1eSDan Willemsen} 327*1c12ee1eSDan Willemsen 328*1c12ee1eSDan Willemsenextend TestPackedExtensions { 329*1c12ee1eSDan Willemsen repeated int32 packed_int32 = 90 [packed = true]; 330*1c12ee1eSDan Willemsen repeated int64 packed_int64 = 91 [packed = true]; 331*1c12ee1eSDan Willemsen repeated uint32 packed_uint32 = 92 [packed = true]; 332*1c12ee1eSDan Willemsen repeated uint64 packed_uint64 = 93 [packed = true]; 333*1c12ee1eSDan Willemsen repeated sint32 packed_sint32 = 94 [packed = true]; 334*1c12ee1eSDan Willemsen repeated sint64 packed_sint64 = 95 [packed = true]; 335*1c12ee1eSDan Willemsen repeated fixed32 packed_fixed32 = 96 [packed = true]; 336*1c12ee1eSDan Willemsen repeated fixed64 packed_fixed64 = 97 [packed = true]; 337*1c12ee1eSDan Willemsen repeated sfixed32 packed_sfixed32 = 98 [packed = true]; 338*1c12ee1eSDan Willemsen repeated sfixed64 packed_sfixed64 = 99 [packed = true]; 339*1c12ee1eSDan Willemsen repeated float packed_float = 100 [packed = true]; 340*1c12ee1eSDan Willemsen repeated double packed_double = 101 [packed = true]; 341*1c12ee1eSDan Willemsen repeated bool packed_bool = 102 [packed = true]; 342*1c12ee1eSDan Willemsen repeated ForeignEnum packed_enum = 103 [packed = true]; 343*1c12ee1eSDan Willemsen} 344*1c12ee1eSDan Willemsen 345*1c12ee1eSDan Willemsenmessage TestUnpackedExtensions { 346*1c12ee1eSDan Willemsen extensions 1 to max; 347*1c12ee1eSDan Willemsen} 348*1c12ee1eSDan Willemsen 349*1c12ee1eSDan Willemsenextend TestUnpackedExtensions { 350*1c12ee1eSDan Willemsen repeated int32 unpacked_int32 = 90 [packed = false]; 351*1c12ee1eSDan Willemsen repeated int64 unpacked_int64 = 91 [packed = false]; 352*1c12ee1eSDan Willemsen repeated uint32 unpacked_uint32 = 92 [packed = false]; 353*1c12ee1eSDan Willemsen repeated uint64 unpacked_uint64 = 93 [packed = false]; 354*1c12ee1eSDan Willemsen repeated sint32 unpacked_sint32 = 94 [packed = false]; 355*1c12ee1eSDan Willemsen repeated sint64 unpacked_sint64 = 95 [packed = false]; 356*1c12ee1eSDan Willemsen repeated fixed32 unpacked_fixed32 = 96 [packed = false]; 357*1c12ee1eSDan Willemsen repeated fixed64 unpacked_fixed64 = 97 [packed = false]; 358*1c12ee1eSDan Willemsen repeated sfixed32 unpacked_sfixed32 = 98 [packed = false]; 359*1c12ee1eSDan Willemsen repeated sfixed64 unpacked_sfixed64 = 99 [packed = false]; 360*1c12ee1eSDan Willemsen repeated float unpacked_float = 100 [packed = false]; 361*1c12ee1eSDan Willemsen repeated double unpacked_double = 101 [packed = false]; 362*1c12ee1eSDan Willemsen repeated bool unpacked_bool = 102 [packed = false]; 363*1c12ee1eSDan Willemsen repeated ForeignEnum unpacked_enum = 103 [packed = false]; 364*1c12ee1eSDan Willemsen} 365*1c12ee1eSDan Willemsen 366*1c12ee1eSDan Willemsen// Test that RPC services work. 367*1c12ee1eSDan Willemsenmessage FooRequest {} 368*1c12ee1eSDan Willemsenmessage FooResponse {} 369*1c12ee1eSDan Willemsen 370*1c12ee1eSDan Willemsenservice TestService { 371*1c12ee1eSDan Willemsen rpc Foo(FooRequest) returns (FooResponse); 372*1c12ee1eSDan Willemsen rpc TestStream(stream FooRequest) returns (stream FooResponse); 373*1c12ee1eSDan Willemsen} 374*1c12ee1eSDan Willemsen 375*1c12ee1eSDan Willemsenservice TestDeprecatedService { 376*1c12ee1eSDan Willemsen option deprecated = true; 377*1c12ee1eSDan Willemsen rpc Deprecated(TestDeprecatedMessage) returns (TestDeprecatedMessage) { 378*1c12ee1eSDan Willemsen option deprecated = true; 379*1c12ee1eSDan Willemsen } 380*1c12ee1eSDan Willemsen} 381*1c12ee1eSDan Willemsen 382*1c12ee1eSDan Willemsenmessage WeirdDefault { 383*1c12ee1eSDan Willemsen optional bytes weird_default = 1 [default = "hello, \"world!\"\ndead\xde\xad\xbe\xefbeef`"]; 384*1c12ee1eSDan Willemsen} 385*1c12ee1eSDan Willemsen 386*1c12ee1eSDan Willemsenmessage RemoteDefault { 387*1c12ee1eSDan Willemsen optional goproto.proto.enums.Enum default = 1; 388*1c12ee1eSDan Willemsen optional goproto.proto.enums.Enum zero = 2 [default = ZERO]; 389*1c12ee1eSDan Willemsen optional goproto.proto.enums.Enum one = 3 [default = ONE]; 390*1c12ee1eSDan Willemsen optional goproto.proto.enums.Enum elevent = 4 [default = ELEVENT]; 391*1c12ee1eSDan Willemsen optional goproto.proto.enums.Enum seventeen = 5 [default = SEVENTEEN]; 392*1c12ee1eSDan Willemsen optional goproto.proto.enums.Enum thirtyseven = 6 [default = THIRTYSEVEN]; 393*1c12ee1eSDan Willemsen optional goproto.proto.enums.Enum sixtyseven = 7 [default = SIXTYSEVEN]; 394*1c12ee1eSDan Willemsen optional goproto.proto.enums.Enum negative = 8 [default = NEGATIVE]; 395*1c12ee1eSDan Willemsen} 396