blob: 35e6feb23d592d068c24d361832a936eb3c5f6c9 [file] [log] [blame]
syntax = "proto2";
enum NonZeroBasedEnum {
Two = 2;
Three = 3;
Four = 4;
}
message SubMessage {
required string substuff1 = 1 [default = "1"];
required int32 substuff2 = 2 [default = 2];
optional fixed32 substuff3 = 12365535 [default = 3];
}
message EmptyMessage {
}
enum HugeEnum {
Negative = -2147483647; /* protoc doesn't accept -2147483648 here */
Positive = 2147483647;
}
message Limits {
required int32 int32_min = 1;
required int32 int32_max = 2;
required uint32 uint32_min = 3;
required uint32 uint32_max = 4;
required int64 int64_min = 5;
required int64 int64_max = 6;
required uint64 uint64_min = 7;
required uint64 uint64_max = 8;
required HugeEnum enum_min = 9;
required HugeEnum enum_max = 10;
required int32 largetag = 65535 [default = 0];
}
message IntSizes {
required int32 req_int8 = 1 ;
required uint32 req_uint8 = 2 ;
required sint32 req_sint8 = 3 ;
required int32 req_int16 = 4 ;
required uint32 req_uint16 = 5 ;
required sint32 req_sint16 = 6 ;
}
message DescriptorSize8 {
required int32 first = 1;
required int32 second = 22222;
}
enum MyEnum {
Zero = 0;
First = 1;
Second = 2;
Truth = 42;
}
message AllTypes {
required int32 req_int32 = 1;
required int64 req_int64 = 2;
required uint32 req_uint32 = 3;
required uint64 req_uint64 = 4;
required sint32 req_sint32 = 5;
required sint64 req_sint64 = 6;
required bool req_bool = 7;
required fixed32 req_fixed32 = 8;
required sfixed32 req_sfixed32= 9;
required float req_float = 10;
required fixed64 req_fixed64 = 11;
required sfixed64 req_sfixed64= 12;
required double req_double = 13;
required string req_string = 14;
required bytes req_bytes = 15;
required SubMessage req_submsg = 16;
required MyEnum req_enum = 17;
required EmptyMessage req_emptymsg = 18;
required bytes req_fbytes = 19;
repeated int32 rep_int32 = 21;
repeated int64 rep_int64 = 22;
repeated uint32 rep_uint32 = 23;
repeated uint64 rep_uint64 = 24;
repeated sint32 rep_sint32 = 25;
repeated sint64 rep_sint64 = 26;
repeated bool rep_bool = 27;
repeated fixed32 rep_fixed32 = 28;
repeated sfixed32 rep_sfixed32= 29;
repeated float rep_float = 30;
repeated fixed64 rep_fixed64 = 10031;
repeated sfixed64 rep_sfixed64= 10032;
repeated double rep_double = 10033;
repeated string rep_string = 10034;
repeated bytes rep_bytes = 10035;
repeated SubMessage rep_submsg = 10036;
repeated MyEnum rep_enum = 10037;
repeated EmptyMessage rep_emptymsg = 10038;
repeated bytes rep_fbytes = 10039;
repeated int32 rep_farray = 10040;
optional int32 opt_int32 = 10041 [default = 4041];
optional int64 opt_int64 = 10042 [default = 4042];
optional uint32 opt_uint32 = 10043 [default = 4043];
optional uint64 opt_uint64 = 10044 [default = 4044];
optional sint32 opt_sint32 = 10045 [default = 4045];
optional sint64 opt_sint64 = 10046 [default = 4046];
optional bool opt_bool = 10047 [default = false];
optional fixed32 opt_fixed32 = 10048 [default = 4048];
optional sfixed32 opt_sfixed32= 10049 [default = 4049];
optional float opt_float = 10050 [default = 4050];
optional fixed64 opt_fixed64 = 10051 [default = 4051];
optional sfixed64 opt_sfixed64= 10052 [default = 4052];
optional double opt_double = 10053 [default = 4053];
optional string opt_string = 10054 [default = "4054"];
optional bytes opt_bytes = 10055 [default = "\x34\x5C\x00\xff"];
optional SubMessage opt_submsg = 10056;
optional MyEnum opt_enum = 10057 [default = Second];
optional EmptyMessage opt_emptymsg = 10058;
optional bytes opt_fbytes = 10059 [default = "4059"];
oneof oneof
{
SubMessage oneof_msg1 = 10060;
EmptyMessage oneof_msg2 = 10061;
}
optional NonZeroBasedEnum opt_non_zero_based_enum = 10062;
// Second fixed length array field to test the length check logic.
repeated fixed32 rep_farray2 = 95 [packed = true];
// Check support for custom integer sizes
required IntSizes req_intsizes = 96;
// Check support for 8-word descriptors
required DescriptorSize8 req_ds8 = 97;
// Check that extreme integer values are handled correctly
required Limits req_limits = 98;
// Just to make sure that the size of the fields has been calculated
// properly, i.e. otherwise a bug in last field might not be detected.
required int32 end = 13432099;
extensions 200 to 255;
}