test.proto 6.18 KB
Newer Older
1 2
syntax = "proto3";

3
import 'proto/test_include.proto';
4
import 'proto/test_no_namespace.proto';
5 6
import 'proto/test_php_namespace.proto';
import 'proto/test_empty_php_namespace.proto';
7
import 'proto/test_prefix.proto';
8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96

package foo;

message TestMessage {
  // Singular
  int32 optional_int32 = 1;
  int64 optional_int64 = 2;
  uint32 optional_uint32 = 3;
  uint64 optional_uint64 = 4;
  sint32 optional_sint32 = 5;
  sint64 optional_sint64 = 6;
  fixed32 optional_fixed32 = 7;
  fixed64 optional_fixed64 = 8;
  sfixed32 optional_sfixed32 = 9;
  sfixed64 optional_sfixed64 = 10;
  float optional_float = 11;
  double optional_double = 12;
  bool optional_bool = 13;
  string optional_string = 14;
  bytes optional_bytes = 15;

  TestEnum optional_enum = 16;
  Sub optional_message = 17;
  bar.TestInclude optional_included_message = 18;
  TestMessage recursive = 19;

  // Repeated
  repeated    int32 repeated_int32    = 31;
  repeated    int64 repeated_int64    = 32;
  repeated   uint32 repeated_uint32   = 33;
  repeated   uint64 repeated_uint64   = 34;
  repeated   sint32 repeated_sint32   = 35;
  repeated   sint64 repeated_sint64   = 36;
  repeated  fixed32 repeated_fixed32  = 37;
  repeated  fixed64 repeated_fixed64  = 38;
  repeated sfixed32 repeated_sfixed32 = 39;
  repeated sfixed64 repeated_sfixed64 = 40;
  repeated    float repeated_float    = 41;
  repeated   double repeated_double   = 42;
  repeated     bool repeated_bool     = 43;
  repeated   string repeated_string   = 44;
  repeated    bytes repeated_bytes    = 45;

  repeated TestEnum repeated_enum = 46;
  repeated Sub repeated_message = 47;
  repeated TestMessage repeated_recursive = 48;

  oneof my_oneof {
    int32  oneof_int32    = 51;
    int64  oneof_int64    = 52;
    uint32 oneof_uint32   = 53;
    uint64 oneof_uint64   = 54;
    uint32 oneof_sint32   = 55;
    uint64 oneof_sint64   = 56;
    uint32 oneof_fixed32  = 57;
    uint64 oneof_fixed64  = 58;
    uint32 oneof_sfixed32 = 59;
    uint64 oneof_sfixed64 = 60;
    double oneof_double   = 61;
    float  oneof_float    = 62;
    bool   oneof_bool     = 63;
    string oneof_string   = 64;
    bytes  oneof_bytes    = 65;
    TestEnum oneof_enum   = 66;
    Sub    oneof_message  = 67;
  }

  map<int32,       int32> map_int32_int32       = 71;
  map<int64,       int64> map_int64_int64       = 72;
  map<uint32,     uint32> map_uint32_uint32     = 73;
  map<uint64,     uint64> map_uint64_uint64     = 74;
  map<sint32,     sint32> map_sint32_sint32     = 75;
  map<sint64,     sint64> map_sint64_sint64     = 76;
  map<fixed32,   fixed32> map_fixed32_fixed32   = 77;
  map<fixed64,   fixed64> map_fixed64_fixed64   = 78;
  map<sfixed32, sfixed32> map_sfixed32_sfixed32 = 79;
  map<sfixed64, sfixed64> map_sfixed64_sfixed64 = 80;
  map<int32,       float> map_int32_float       = 81;
  map<int32,      double> map_int32_double      = 82;
  map<bool,         bool> map_bool_bool         = 83;
  map<string,     string> map_string_string     = 84;
  map<int32,       bytes> map_int32_bytes       = 85;
  map<int32,    TestEnum> map_int32_enum        = 86;
  map<int32,         Sub> map_int32_message     = 87;

  map<int32, TestMessage> map_recursive = 88;

  message Sub {
    int32 a = 1;
97
    repeated int32 b = 2;
98 99
  }

100 101
  // Reserved for non-existing field test.
  // int32 non_exist = 89;
102 103 104 105 106

  NoNamespaceMessage optional_no_namespace_message = 91;
  NoNamespaceEnum optional_no_namespace_enum = 92;
  repeated NoNamespaceMessage repeated_no_namespace_message = 93;
  repeated NoNamespaceEnum repeated_no_namespace_enum = 94;
107 108 109 110 111 112

  enum NestedEnum {
    ZERO = 0;
  }

  NestedEnum optional_nested_enum = 101;
113 114 115 116 117

  // Test prefix for reserved words.
  message Empty {
    int32 a = 1;
  }
118 119

  reserved 111;
120 121 122 123 124
}

enum TestEnum {
  ZERO = 0;
  ONE  = 1;
125
  TWO  = 2;
126
  ECHO = 3;  // Test reserved name.
127 128
}

129 130 131 132 133
// Test prefix for reserved words.
message Empty {
  int32 a = 1;
}

134 135 136 137
message ARRAY {
  int32 a = 1;
}

138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171
message TestPackedMessage {
  repeated int32    repeated_int32    = 90  [packed = true];
  repeated int64    repeated_int64    = 91  [packed = true];
  repeated uint32   repeated_uint32   = 92  [packed = true];
  repeated uint64   repeated_uint64   = 93  [packed = true];
  repeated sint32   repeated_sint32   = 94  [packed = true];
  repeated sint64   repeated_sint64   = 95  [packed = true];
  repeated fixed32  repeated_fixed32  = 96  [packed = true];
  repeated fixed64  repeated_fixed64  = 97  [packed = true];
  repeated sfixed32 repeated_sfixed32 = 98  [packed = true];
  repeated sfixed64 repeated_sfixed64 = 99  [packed = true];
  repeated float    repeated_float    = 100 [packed = true];
  repeated double   repeated_double   = 101 [packed = true];
  repeated bool     repeated_bool     = 102 [packed = true];
  repeated TestEnum repeated_enum     = 103 [packed = true];
}

// Need to be in sync with TestPackedMessage.
message TestUnpackedMessage {
  repeated int32    repeated_int32    = 90  [packed = false];
  repeated int64    repeated_int64    = 91  [packed = false];
  repeated uint32   repeated_uint32   = 92  [packed = false];
  repeated uint64   repeated_uint64   = 93  [packed = false];
  repeated sint32   repeated_sint32   = 94  [packed = false];
  repeated sint64   repeated_sint64   = 95  [packed = false];
  repeated fixed32  repeated_fixed32  = 96  [packed = false];
  repeated fixed64  repeated_fixed64  = 97  [packed = false];
  repeated sfixed32 repeated_sfixed32 = 98  [packed = false];
  repeated sfixed64 repeated_sfixed64 = 99  [packed = false];
  repeated float    repeated_float    = 100 [packed = false];
  repeated double   repeated_double   = 101 [packed = false];
  repeated bool     repeated_bool     = 102 [packed = false];
  repeated TestEnum repeated_enum     = 103 [packed = false];
}
172 173 174 175 176

// /**/@<>&\{
message TestPhpDoc {
  int32 a = 1;
}
177 178 179 180

message TestIncludePrefixMessage {
  TestPrefix prefix_message = 1;
}
181 182 183 184 185

message TestIncludeNamespaceMessage {
  TestNamespace namespace_message = 1;
  TestEmptyNamespace empty_namespace_message = 2;
}
186 187 188 189 190 191

// This will cause upb fields not ordered by the order in the generated code.
message TestRandomFieldOrder {
  int64 tag13 = 150;
  string tag14 = 160;
}
192 193 194 195 196

message TestReverseFieldOrder {
  repeated int32 a = 2;
  string b = 1;
}
197 198 199 200 201 202 203

message testLowerCaseMessage {
}

enum testLowerCaseEnum {
  VALUE = 0;
}