test.proto 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176
  1. syntax = "proto3";
  2. import 'proto/test_include.proto';
  3. import 'proto/test_no_namespace.proto';
  4. import 'proto/test_prefix.proto';
  5. package foo;
  6. message TestMessage {
  7. // Singular
  8. int32 optional_int32 = 1;
  9. int64 optional_int64 = 2;
  10. uint32 optional_uint32 = 3;
  11. uint64 optional_uint64 = 4;
  12. sint32 optional_sint32 = 5;
  13. sint64 optional_sint64 = 6;
  14. fixed32 optional_fixed32 = 7;
  15. fixed64 optional_fixed64 = 8;
  16. sfixed32 optional_sfixed32 = 9;
  17. sfixed64 optional_sfixed64 = 10;
  18. float optional_float = 11;
  19. double optional_double = 12;
  20. bool optional_bool = 13;
  21. string optional_string = 14;
  22. bytes optional_bytes = 15;
  23. TestEnum optional_enum = 16;
  24. Sub optional_message = 17;
  25. bar.TestInclude optional_included_message = 18;
  26. TestMessage recursive = 19;
  27. // Repeated
  28. repeated int32 repeated_int32 = 31;
  29. repeated int64 repeated_int64 = 32;
  30. repeated uint32 repeated_uint32 = 33;
  31. repeated uint64 repeated_uint64 = 34;
  32. repeated sint32 repeated_sint32 = 35;
  33. repeated sint64 repeated_sint64 = 36;
  34. repeated fixed32 repeated_fixed32 = 37;
  35. repeated fixed64 repeated_fixed64 = 38;
  36. repeated sfixed32 repeated_sfixed32 = 39;
  37. repeated sfixed64 repeated_sfixed64 = 40;
  38. repeated float repeated_float = 41;
  39. repeated double repeated_double = 42;
  40. repeated bool repeated_bool = 43;
  41. repeated string repeated_string = 44;
  42. repeated bytes repeated_bytes = 45;
  43. repeated TestEnum repeated_enum = 46;
  44. repeated Sub repeated_message = 47;
  45. repeated TestMessage repeated_recursive = 48;
  46. oneof my_oneof {
  47. int32 oneof_int32 = 51;
  48. int64 oneof_int64 = 52;
  49. uint32 oneof_uint32 = 53;
  50. uint64 oneof_uint64 = 54;
  51. uint32 oneof_sint32 = 55;
  52. uint64 oneof_sint64 = 56;
  53. uint32 oneof_fixed32 = 57;
  54. uint64 oneof_fixed64 = 58;
  55. uint32 oneof_sfixed32 = 59;
  56. uint64 oneof_sfixed64 = 60;
  57. double oneof_double = 61;
  58. float oneof_float = 62;
  59. bool oneof_bool = 63;
  60. string oneof_string = 64;
  61. bytes oneof_bytes = 65;
  62. TestEnum oneof_enum = 66;
  63. Sub oneof_message = 67;
  64. }
  65. map<int32, int32> map_int32_int32 = 71;
  66. map<int64, int64> map_int64_int64 = 72;
  67. map<uint32, uint32> map_uint32_uint32 = 73;
  68. map<uint64, uint64> map_uint64_uint64 = 74;
  69. map<sint32, sint32> map_sint32_sint32 = 75;
  70. map<sint64, sint64> map_sint64_sint64 = 76;
  71. map<fixed32, fixed32> map_fixed32_fixed32 = 77;
  72. map<fixed64, fixed64> map_fixed64_fixed64 = 78;
  73. map<sfixed32, sfixed32> map_sfixed32_sfixed32 = 79;
  74. map<sfixed64, sfixed64> map_sfixed64_sfixed64 = 80;
  75. map<int32, float> map_int32_float = 81;
  76. map<int32, double> map_int32_double = 82;
  77. map<bool, bool> map_bool_bool = 83;
  78. map<string, string> map_string_string = 84;
  79. map<int32, bytes> map_int32_bytes = 85;
  80. map<int32, TestEnum> map_int32_enum = 86;
  81. map<int32, Sub> map_int32_message = 87;
  82. map<int32, TestMessage> map_recursive = 88;
  83. message Sub {
  84. int32 a = 1;
  85. repeated int32 b = 2;
  86. }
  87. // Reserved for non-existing field test.
  88. // int32 non_exist = 89;
  89. NoNamespaceMessage optional_no_namespace_message = 91;
  90. NoNamespaceEnum optional_no_namespace_enum = 92;
  91. repeated NoNamespaceMessage repeated_no_namespace_message = 93;
  92. repeated NoNamespaceEnum repeated_no_namespace_enum = 94;
  93. enum NestedEnum {
  94. ZERO = 0;
  95. }
  96. NestedEnum optional_nested_enum = 101;
  97. // Test prefix for reserved words.
  98. message Empty {
  99. int32 a = 1;
  100. }
  101. }
  102. enum TestEnum {
  103. ZERO = 0;
  104. ONE = 1;
  105. TWO = 2;
  106. ECHO = 3; // Test reserved name.
  107. }
  108. // Test prefix for reserved words.
  109. message Empty {
  110. int32 a = 1;
  111. }
  112. message ARRAY {
  113. int32 a = 1;
  114. }
  115. message TestPackedMessage {
  116. repeated int32 repeated_int32 = 90 [packed = true];
  117. repeated int64 repeated_int64 = 91 [packed = true];
  118. repeated uint32 repeated_uint32 = 92 [packed = true];
  119. repeated uint64 repeated_uint64 = 93 [packed = true];
  120. repeated sint32 repeated_sint32 = 94 [packed = true];
  121. repeated sint64 repeated_sint64 = 95 [packed = true];
  122. repeated fixed32 repeated_fixed32 = 96 [packed = true];
  123. repeated fixed64 repeated_fixed64 = 97 [packed = true];
  124. repeated sfixed32 repeated_sfixed32 = 98 [packed = true];
  125. repeated sfixed64 repeated_sfixed64 = 99 [packed = true];
  126. repeated float repeated_float = 100 [packed = true];
  127. repeated double repeated_double = 101 [packed = true];
  128. repeated bool repeated_bool = 102 [packed = true];
  129. repeated TestEnum repeated_enum = 103 [packed = true];
  130. }
  131. // Need to be in sync with TestPackedMessage.
  132. message TestUnpackedMessage {
  133. repeated int32 repeated_int32 = 90 [packed = false];
  134. repeated int64 repeated_int64 = 91 [packed = false];
  135. repeated uint32 repeated_uint32 = 92 [packed = false];
  136. repeated uint64 repeated_uint64 = 93 [packed = false];
  137. repeated sint32 repeated_sint32 = 94 [packed = false];
  138. repeated sint64 repeated_sint64 = 95 [packed = false];
  139. repeated fixed32 repeated_fixed32 = 96 [packed = false];
  140. repeated fixed64 repeated_fixed64 = 97 [packed = false];
  141. repeated sfixed32 repeated_sfixed32 = 98 [packed = false];
  142. repeated sfixed64 repeated_sfixed64 = 99 [packed = false];
  143. repeated float repeated_float = 100 [packed = false];
  144. repeated double repeated_double = 101 [packed = false];
  145. repeated bool repeated_bool = 102 [packed = false];
  146. repeated TestEnum repeated_enum = 103 [packed = false];
  147. }
  148. // /**/@<>&\{
  149. message TestPhpDoc {
  150. int32 a = 1;
  151. }
  152. message TestIncludePrefixMessage {
  153. TestPrefix prefix_message = 1;
  154. }