xref: /aosp_15_r20/external/protobuf/ruby/tests/basic_test.proto (revision 1b3f573f81763fcece89efc2b6a5209149e44ab8)
1*1b3f573fSAndroid Build Coastguard Workersyntax = "proto3";
2*1b3f573fSAndroid Build Coastguard Worker
3*1b3f573fSAndroid Build Coastguard Workerpackage basic_test;
4*1b3f573fSAndroid Build Coastguard Worker
5*1b3f573fSAndroid Build Coastguard Workerimport "google/protobuf/wrappers.proto";
6*1b3f573fSAndroid Build Coastguard Workerimport "google/protobuf/timestamp.proto";
7*1b3f573fSAndroid Build Coastguard Workerimport "google/protobuf/duration.proto";
8*1b3f573fSAndroid Build Coastguard Workerimport "google/protobuf/struct.proto";
9*1b3f573fSAndroid Build Coastguard Workerimport "test_import_proto2.proto";
10*1b3f573fSAndroid Build Coastguard Worker
11*1b3f573fSAndroid Build Coastguard Workermessage Foo {
12*1b3f573fSAndroid Build Coastguard Worker  Bar bar = 1;
13*1b3f573fSAndroid Build Coastguard Worker  repeated Baz baz = 2;
14*1b3f573fSAndroid Build Coastguard Worker}
15*1b3f573fSAndroid Build Coastguard Worker
16*1b3f573fSAndroid Build Coastguard Workermessage Bar {
17*1b3f573fSAndroid Build Coastguard Worker  string msg = 1;
18*1b3f573fSAndroid Build Coastguard Worker}
19*1b3f573fSAndroid Build Coastguard Worker
20*1b3f573fSAndroid Build Coastguard Workermessage Baz {
21*1b3f573fSAndroid Build Coastguard Worker  string msg = 1;
22*1b3f573fSAndroid Build Coastguard Worker}
23*1b3f573fSAndroid Build Coastguard Worker
24*1b3f573fSAndroid Build Coastguard Workermessage TestMessage {
25*1b3f573fSAndroid Build Coastguard Worker  optional int32 optional_int32 = 1;
26*1b3f573fSAndroid Build Coastguard Worker  optional int64 optional_int64 = 2;
27*1b3f573fSAndroid Build Coastguard Worker  optional uint32 optional_uint32 = 3;
28*1b3f573fSAndroid Build Coastguard Worker  optional uint64 optional_uint64 = 4;
29*1b3f573fSAndroid Build Coastguard Worker  optional bool optional_bool = 5;
30*1b3f573fSAndroid Build Coastguard Worker  optional float optional_float = 6;
31*1b3f573fSAndroid Build Coastguard Worker  optional double optional_double = 7;
32*1b3f573fSAndroid Build Coastguard Worker  optional string optional_string = 8;
33*1b3f573fSAndroid Build Coastguard Worker  optional bytes optional_bytes = 9;
34*1b3f573fSAndroid Build Coastguard Worker  optional TestMessage2 optional_msg = 10;
35*1b3f573fSAndroid Build Coastguard Worker  optional TestEnum optional_enum = 11;
36*1b3f573fSAndroid Build Coastguard Worker  optional foo_bar.proto2.TestImportedMessage optional_proto2_submessage = 24;
37*1b3f573fSAndroid Build Coastguard Worker
38*1b3f573fSAndroid Build Coastguard Worker  repeated int32 repeated_int32 = 12;
39*1b3f573fSAndroid Build Coastguard Worker  repeated int64 repeated_int64 = 13;
40*1b3f573fSAndroid Build Coastguard Worker  repeated uint32 repeated_uint32 = 14;
41*1b3f573fSAndroid Build Coastguard Worker  repeated uint64 repeated_uint64 = 15;
42*1b3f573fSAndroid Build Coastguard Worker  repeated bool repeated_bool = 16;
43*1b3f573fSAndroid Build Coastguard Worker  repeated float repeated_float = 17;
44*1b3f573fSAndroid Build Coastguard Worker  repeated double repeated_double = 18;
45*1b3f573fSAndroid Build Coastguard Worker  repeated string repeated_string = 19;
46*1b3f573fSAndroid Build Coastguard Worker  repeated bytes repeated_bytes = 20;
47*1b3f573fSAndroid Build Coastguard Worker  repeated TestMessage2 repeated_msg = 21;
48*1b3f573fSAndroid Build Coastguard Worker  repeated TestEnum repeated_enum = 22;
49*1b3f573fSAndroid Build Coastguard Worker
50*1b3f573fSAndroid Build Coastguard Worker  optional TestSingularFields optional_msg2 = 23;
51*1b3f573fSAndroid Build Coastguard Worker}
52*1b3f573fSAndroid Build Coastguard Worker
53*1b3f573fSAndroid Build Coastguard Workermessage TestSingularFields {
54*1b3f573fSAndroid Build Coastguard Worker  int32 singular_int32 = 1;
55*1b3f573fSAndroid Build Coastguard Worker  int64 singular_int64 = 2;
56*1b3f573fSAndroid Build Coastguard Worker  uint32 singular_uint32 = 3;
57*1b3f573fSAndroid Build Coastguard Worker  uint64 singular_uint64 = 4;
58*1b3f573fSAndroid Build Coastguard Worker  bool singular_bool = 5;
59*1b3f573fSAndroid Build Coastguard Worker  float singular_float = 6;
60*1b3f573fSAndroid Build Coastguard Worker  double singular_double = 7;
61*1b3f573fSAndroid Build Coastguard Worker  string singular_string = 8;
62*1b3f573fSAndroid Build Coastguard Worker  bytes singular_bytes = 9;
63*1b3f573fSAndroid Build Coastguard Worker  TestMessage2 singular_msg = 10;
64*1b3f573fSAndroid Build Coastguard Worker  TestEnum singular_enum = 11;
65*1b3f573fSAndroid Build Coastguard Worker}
66*1b3f573fSAndroid Build Coastguard Worker
67*1b3f573fSAndroid Build Coastguard Workermessage TestMessage2 {
68*1b3f573fSAndroid Build Coastguard Worker  optional int32 foo = 1;
69*1b3f573fSAndroid Build Coastguard Worker}
70*1b3f573fSAndroid Build Coastguard Worker
71*1b3f573fSAndroid Build Coastguard Workerenum TestEnum {
72*1b3f573fSAndroid Build Coastguard Worker  Default = 0;
73*1b3f573fSAndroid Build Coastguard Worker  A = 1;
74*1b3f573fSAndroid Build Coastguard Worker  B = 2;
75*1b3f573fSAndroid Build Coastguard Worker  C = 3;
76*1b3f573fSAndroid Build Coastguard Worker  v0 = 4;
77*1b3f573fSAndroid Build Coastguard Worker}
78*1b3f573fSAndroid Build Coastguard Worker
79*1b3f573fSAndroid Build Coastguard Workermessage TestEmbeddedMessageParent {
80*1b3f573fSAndroid Build Coastguard Worker  TestEmbeddedMessageChild child_msg = 1;
81*1b3f573fSAndroid Build Coastguard Worker  int32 number = 2;
82*1b3f573fSAndroid Build Coastguard Worker
83*1b3f573fSAndroid Build Coastguard Worker  repeated TestEmbeddedMessageChild repeated_msg = 3;
84*1b3f573fSAndroid Build Coastguard Worker  repeated int32 repeated_number = 4;
85*1b3f573fSAndroid Build Coastguard Worker}
86*1b3f573fSAndroid Build Coastguard Worker
87*1b3f573fSAndroid Build Coastguard Workermessage TestEmbeddedMessageChild {
88*1b3f573fSAndroid Build Coastguard Worker  TestMessage sub_child = 1;
89*1b3f573fSAndroid Build Coastguard Worker}
90*1b3f573fSAndroid Build Coastguard Worker
91*1b3f573fSAndroid Build Coastguard Workermessage Recursive1 {
92*1b3f573fSAndroid Build Coastguard Worker  Recursive2 foo = 1;
93*1b3f573fSAndroid Build Coastguard Worker}
94*1b3f573fSAndroid Build Coastguard Worker
95*1b3f573fSAndroid Build Coastguard Workermessage Recursive2 {
96*1b3f573fSAndroid Build Coastguard Worker  Recursive1 foo = 1;
97*1b3f573fSAndroid Build Coastguard Worker}
98*1b3f573fSAndroid Build Coastguard Worker
99*1b3f573fSAndroid Build Coastguard Workermessage MapMessage {
100*1b3f573fSAndroid Build Coastguard Worker  map<string, int32> map_string_int32 = 1;
101*1b3f573fSAndroid Build Coastguard Worker  map<string, TestMessage2> map_string_msg = 2;
102*1b3f573fSAndroid Build Coastguard Worker  map<string, TestEnum> map_string_enum = 3;
103*1b3f573fSAndroid Build Coastguard Worker}
104*1b3f573fSAndroid Build Coastguard Worker
105*1b3f573fSAndroid Build Coastguard Workermessage MapMessageWireEquiv {
106*1b3f573fSAndroid Build Coastguard Worker  repeated MapMessageWireEquiv_entry1 map_string_int32 = 1;
107*1b3f573fSAndroid Build Coastguard Worker  repeated MapMessageWireEquiv_entry2 map_string_msg = 2;
108*1b3f573fSAndroid Build Coastguard Worker}
109*1b3f573fSAndroid Build Coastguard Worker
110*1b3f573fSAndroid Build Coastguard Workermessage MapMessageWireEquiv_entry1 {
111*1b3f573fSAndroid Build Coastguard Worker  string key = 1;
112*1b3f573fSAndroid Build Coastguard Worker  int32 value = 2;
113*1b3f573fSAndroid Build Coastguard Worker}
114*1b3f573fSAndroid Build Coastguard Worker
115*1b3f573fSAndroid Build Coastguard Workermessage MapMessageWireEquiv_entry2 {
116*1b3f573fSAndroid Build Coastguard Worker  string key = 1;
117*1b3f573fSAndroid Build Coastguard Worker  TestMessage2 value = 2;
118*1b3f573fSAndroid Build Coastguard Worker}
119*1b3f573fSAndroid Build Coastguard Worker
120*1b3f573fSAndroid Build Coastguard Workermessage OneofMessage {
121*1b3f573fSAndroid Build Coastguard Worker  oneof my_oneof {
122*1b3f573fSAndroid Build Coastguard Worker    string a = 1;
123*1b3f573fSAndroid Build Coastguard Worker    int32 b = 2;
124*1b3f573fSAndroid Build Coastguard Worker    TestMessage2 c = 3;
125*1b3f573fSAndroid Build Coastguard Worker    TestEnum d = 4;
126*1b3f573fSAndroid Build Coastguard Worker  }
127*1b3f573fSAndroid Build Coastguard Worker}
128*1b3f573fSAndroid Build Coastguard Worker
129*1b3f573fSAndroid Build Coastguard Workermessage Outer {
130*1b3f573fSAndroid Build Coastguard Worker  map<int32, Inner> items = 1;
131*1b3f573fSAndroid Build Coastguard Worker}
132*1b3f573fSAndroid Build Coastguard Worker
133*1b3f573fSAndroid Build Coastguard Workermessage Inner {
134*1b3f573fSAndroid Build Coastguard Worker}
135*1b3f573fSAndroid Build Coastguard Worker
136*1b3f573fSAndroid Build Coastguard Workermessage Wrapper {
137*1b3f573fSAndroid Build Coastguard Worker  google.protobuf.DoubleValue double = 1;
138*1b3f573fSAndroid Build Coastguard Worker  google.protobuf.FloatValue float = 2;
139*1b3f573fSAndroid Build Coastguard Worker  google.protobuf.Int32Value int32 = 3;
140*1b3f573fSAndroid Build Coastguard Worker  google.protobuf.Int64Value int64 = 4;
141*1b3f573fSAndroid Build Coastguard Worker  google.protobuf.UInt32Value uint32 = 5;
142*1b3f573fSAndroid Build Coastguard Worker  google.protobuf.UInt64Value uint64 = 6;
143*1b3f573fSAndroid Build Coastguard Worker  google.protobuf.BoolValue bool = 7;
144*1b3f573fSAndroid Build Coastguard Worker  google.protobuf.StringValue string = 8;
145*1b3f573fSAndroid Build Coastguard Worker  google.protobuf.BytesValue bytes = 9;
146*1b3f573fSAndroid Build Coastguard Worker  string real_string = 100;
147*1b3f573fSAndroid Build Coastguard Worker  oneof a_oneof {
148*1b3f573fSAndroid Build Coastguard Worker    string string_in_oneof = 10;
149*1b3f573fSAndroid Build Coastguard Worker  }
150*1b3f573fSAndroid Build Coastguard Worker
151*1b3f573fSAndroid Build Coastguard Worker  // Repeated wrappers don't make sense, but we still need to make sure they
152*1b3f573fSAndroid Build Coastguard Worker  // work and don't crash.
153*1b3f573fSAndroid Build Coastguard Worker  repeated google.protobuf.DoubleValue repeated_double = 11;
154*1b3f573fSAndroid Build Coastguard Worker  repeated google.protobuf.FloatValue repeated_float = 12;
155*1b3f573fSAndroid Build Coastguard Worker  repeated google.protobuf.Int32Value repeated_int32 = 13;
156*1b3f573fSAndroid Build Coastguard Worker  repeated google.protobuf.Int64Value repeated_int64 = 14;
157*1b3f573fSAndroid Build Coastguard Worker  repeated google.protobuf.UInt32Value repeated_uint32 = 15;
158*1b3f573fSAndroid Build Coastguard Worker  repeated google.protobuf.UInt64Value repeated_uint64 = 16;
159*1b3f573fSAndroid Build Coastguard Worker  repeated google.protobuf.BoolValue repeated_bool = 17;
160*1b3f573fSAndroid Build Coastguard Worker  repeated google.protobuf.StringValue repeated_string = 18;
161*1b3f573fSAndroid Build Coastguard Worker  repeated google.protobuf.BytesValue repeated_bytes = 19;
162*1b3f573fSAndroid Build Coastguard Worker
163*1b3f573fSAndroid Build Coastguard Worker  // Wrappers as map keys don't make sense, but we still need to make sure they
164*1b3f573fSAndroid Build Coastguard Worker  // work and don't crash.
165*1b3f573fSAndroid Build Coastguard Worker  map<int32, google.protobuf.DoubleValue> map_double = 21;
166*1b3f573fSAndroid Build Coastguard Worker  map<int32, google.protobuf.FloatValue> map_float = 22;
167*1b3f573fSAndroid Build Coastguard Worker  map<int32, google.protobuf.Int32Value> map_int32 = 23;
168*1b3f573fSAndroid Build Coastguard Worker  map<int32, google.protobuf.Int64Value> map_int64 = 24;
169*1b3f573fSAndroid Build Coastguard Worker  map<int32, google.protobuf.UInt32Value> map_uint32 = 25;
170*1b3f573fSAndroid Build Coastguard Worker  map<int32, google.protobuf.UInt64Value> map_uint64 = 26;
171*1b3f573fSAndroid Build Coastguard Worker  map<int32, google.protobuf.BoolValue> map_bool = 27;
172*1b3f573fSAndroid Build Coastguard Worker  map<int32, google.protobuf.StringValue> map_string = 28;
173*1b3f573fSAndroid Build Coastguard Worker  map<int32, google.protobuf.BytesValue> map_bytes = 29;
174*1b3f573fSAndroid Build Coastguard Worker
175*1b3f573fSAndroid Build Coastguard Worker  // Wrappers in oneofs don't make sense, but we still need to make sure they
176*1b3f573fSAndroid Build Coastguard Worker  // work and don't crash.
177*1b3f573fSAndroid Build Coastguard Worker  oneof wrapper_oneof {
178*1b3f573fSAndroid Build Coastguard Worker    google.protobuf.DoubleValue oneof_double = 31;
179*1b3f573fSAndroid Build Coastguard Worker    google.protobuf.FloatValue oneof_float = 32;
180*1b3f573fSAndroid Build Coastguard Worker    google.protobuf.Int32Value oneof_int32 = 33;
181*1b3f573fSAndroid Build Coastguard Worker    google.protobuf.Int64Value oneof_int64 = 34;
182*1b3f573fSAndroid Build Coastguard Worker    google.protobuf.UInt32Value oneof_uint32 = 35;
183*1b3f573fSAndroid Build Coastguard Worker    google.protobuf.UInt64Value oneof_uint64 = 36;
184*1b3f573fSAndroid Build Coastguard Worker    google.protobuf.BoolValue oneof_bool = 37;
185*1b3f573fSAndroid Build Coastguard Worker    google.protobuf.StringValue oneof_string = 38;
186*1b3f573fSAndroid Build Coastguard Worker    google.protobuf.BytesValue oneof_bytes = 39;
187*1b3f573fSAndroid Build Coastguard Worker    string oneof_plain_string = 101;
188*1b3f573fSAndroid Build Coastguard Worker  }
189*1b3f573fSAndroid Build Coastguard Worker}
190*1b3f573fSAndroid Build Coastguard Worker
191*1b3f573fSAndroid Build Coastguard Workermessage TimeMessage {
192*1b3f573fSAndroid Build Coastguard Worker  google.protobuf.Timestamp timestamp = 1;
193*1b3f573fSAndroid Build Coastguard Worker  google.protobuf.Duration duration = 2;
194*1b3f573fSAndroid Build Coastguard Worker}
195*1b3f573fSAndroid Build Coastguard Worker
196*1b3f573fSAndroid Build Coastguard Workermessage Enumer {
197*1b3f573fSAndroid Build Coastguard Worker  TestEnum optional_enum = 1;
198*1b3f573fSAndroid Build Coastguard Worker  repeated TestEnum repeated_enum = 2;
199*1b3f573fSAndroid Build Coastguard Worker  string a_const = 3;
200*1b3f573fSAndroid Build Coastguard Worker  oneof a_oneof {
201*1b3f573fSAndroid Build Coastguard Worker    string str = 10;
202*1b3f573fSAndroid Build Coastguard Worker    TestEnum const = 11;
203*1b3f573fSAndroid Build Coastguard Worker  }
204*1b3f573fSAndroid Build Coastguard Worker}
205*1b3f573fSAndroid Build Coastguard Worker
206*1b3f573fSAndroid Build Coastguard Workermessage MyRepeatedStruct {
207*1b3f573fSAndroid Build Coastguard Worker  repeated MyStruct structs = 1;
208*1b3f573fSAndroid Build Coastguard Worker}
209*1b3f573fSAndroid Build Coastguard Worker
210*1b3f573fSAndroid Build Coastguard Workermessage MyStruct {
211*1b3f573fSAndroid Build Coastguard Worker  string string = 1;
212*1b3f573fSAndroid Build Coastguard Worker  google.protobuf.Struct struct = 2;
213*1b3f573fSAndroid Build Coastguard Worker}
214*1b3f573fSAndroid Build Coastguard Worker
215*1b3f573fSAndroid Build Coastguard Workermessage WithJsonName {
216*1b3f573fSAndroid Build Coastguard Worker  optional int32 foo_bar = 1 [json_name="jsonFooBar"];
217*1b3f573fSAndroid Build Coastguard Worker  repeated WithJsonName baz = 2 [json_name="jsonBaz"];
218*1b3f573fSAndroid Build Coastguard Worker}
219*1b3f573fSAndroid Build Coastguard Worker
220*1b3f573fSAndroid Build Coastguard Workermessage HelloRequest {
221*1b3f573fSAndroid Build Coastguard Worker  optional uint32 id = 1;
222*1b3f573fSAndroid Build Coastguard Worker  optional uint32 random_name_a0 = 2;
223*1b3f573fSAndroid Build Coastguard Worker  optional uint32 random_name_a1 = 3;
224*1b3f573fSAndroid Build Coastguard Worker  optional uint32 random_name_a2 = 4;
225*1b3f573fSAndroid Build Coastguard Worker  optional uint32 random_name_a3 = 5;
226*1b3f573fSAndroid Build Coastguard Worker  optional uint32 random_name_a4 = 6;
227*1b3f573fSAndroid Build Coastguard Worker  optional uint32 random_name_a5 = 7;
228*1b3f573fSAndroid Build Coastguard Worker  optional uint32 random_name_a6 = 8;
229*1b3f573fSAndroid Build Coastguard Worker  optional uint32 random_name_a7 = 9;
230*1b3f573fSAndroid Build Coastguard Worker  optional uint32 random_name_a8 = 10;
231*1b3f573fSAndroid Build Coastguard Worker  optional uint32 random_name_a9 = 11;
232*1b3f573fSAndroid Build Coastguard Worker  optional uint32 random_name_b0 = 12;
233*1b3f573fSAndroid Build Coastguard Worker  optional uint32 random_name_b1 = 13;
234*1b3f573fSAndroid Build Coastguard Worker  optional uint32 random_name_b2 = 14;
235*1b3f573fSAndroid Build Coastguard Worker  optional uint32 random_name_b3 = 15;
236*1b3f573fSAndroid Build Coastguard Worker  optional uint32 random_name_b4 = 16;
237*1b3f573fSAndroid Build Coastguard Worker  optional uint32 random_name_b5 = 17;
238*1b3f573fSAndroid Build Coastguard Worker  optional uint32 random_name_b6 = 18;
239*1b3f573fSAndroid Build Coastguard Worker  optional uint32 random_name_b7 = 19;
240*1b3f573fSAndroid Build Coastguard Worker  optional uint32 random_name_b8 = 20;
241*1b3f573fSAndroid Build Coastguard Worker  optional uint32 random_name_b9 = 21;
242*1b3f573fSAndroid Build Coastguard Worker  optional uint32 random_name_c0 = 22;
243*1b3f573fSAndroid Build Coastguard Worker  optional uint32 random_name_c1 = 23;
244*1b3f573fSAndroid Build Coastguard Worker  optional uint32 random_name_c2 = 24;
245*1b3f573fSAndroid Build Coastguard Worker  optional uint32 random_name_c3 = 25;
246*1b3f573fSAndroid Build Coastguard Worker  optional uint32 random_name_c4 = 26;
247*1b3f573fSAndroid Build Coastguard Worker  optional uint32 random_name_c5 = 27;
248*1b3f573fSAndroid Build Coastguard Worker  optional uint32 random_name_c6 = 28;
249*1b3f573fSAndroid Build Coastguard Worker  optional uint32 random_name_c7 = 29;
250*1b3f573fSAndroid Build Coastguard Worker  optional uint32 random_name_c8 = 30;
251*1b3f573fSAndroid Build Coastguard Worker  optional uint32 random_name_c9 = 31;
252*1b3f573fSAndroid Build Coastguard Worker  optional string version = 32;
253*1b3f573fSAndroid Build Coastguard Worker}
254