| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158 | syntax = "proto3";// These proto descriptors have at one time been reported as an issue or defect.// They are kept here to replicate the issue, and continue to verify the fix.// Issue: Non-"Google.Protobuffers" namespace will ensure that protobuffer library types are qualifiedoption csharp_namespace = "UnitTest.Issues.TestProtos";package unittest_issues;import "google/protobuf/struct.proto";// Issue 307: when generating doubly-nested types, any references// should be of the form A.Types.B.Types.C.message Issue307 {  message NestedOnce {    message NestedTwice {    }  }}// Old issue 13: http://code.google.com/p/protobuf-csharp-port/issues/detail?id=13// New issue 309: https://github.com/protocolbuffers/protobuf/issues/309// message A {//    optional int32 _A = 1;// }// message B {//    optional int32 B_ = 1;// }//message AB {//    optional int32 a_b = 1;//}// Similar issue with numeric names// Java code failed too, so probably best for this to be a restriction.// See https://github.com/protocolbuffers/protobuf/issues/308// message NumberField {//    optional int32 _01 = 1;// }// issue 19 - negative enum valuesenum NegativeEnum {    NEGATIVE_ENUM_ZERO = 0;    FiveBelow = -5;    MinusOne = -1;}message NegativeEnumMessage {    NegativeEnum value = 1;    repeated NegativeEnum values = 2 [packed = false];    repeated NegativeEnum packed_values = 3 [packed=true];}// Issue 21: http://code.google.com/p/protobuf-csharp-port/issues/detail?id=21// Decorate fields with [deprecated=true] as [System.Obsolete]message DeprecatedChild {}enum DeprecatedEnum {    DEPRECATED_ZERO = 0;    one = 1;}message DeprecatedFieldsMessage {    int32 PrimitiveValue = 1 [deprecated = true];    repeated int32 PrimitiveArray = 2 [deprecated = true];    DeprecatedChild MessageValue = 3 [deprecated = true];    repeated DeprecatedChild MessageArray = 4 [deprecated = true];    DeprecatedEnum EnumValue = 5 [deprecated = true];    repeated DeprecatedEnum EnumArray = 6 [deprecated = true];}// Issue 45: http://code.google.com/p/protobuf-csharp-port/issues/detail?id=45message ItemField {  int32 item = 1;}message ReservedNames {  // Force a nested type called Types  message SomeNestedType {  }  int32 types = 1;  int32 descriptor = 2;}message TestJsonFieldOrdering {  // These fields are deliberately not declared in numeric  // order, and the oneof fields aren't contiguous either.  // This allows for reasonably robust tests of JSON output  // ordering.  // TestFieldOrderings in unittest_proto3.proto is similar,  // but doesn't include oneofs.  // TODO: Consider adding oneofs to TestFieldOrderings, although  // that will require fixing other tests in multiple platforms.  // Alternatively, consider just adding this to  // unittest_proto3.proto if multiple platforms want it.  int32 plain_int32 = 4;  oneof o1 {    string o1_string = 2;    int32 o1_int32 = 5;  }  string plain_string = 1;  oneof o2 {    int32 o2_int32 = 6;    string o2_string = 3;  }}message TestJsonName {  // Message for testing the effects for of the json_name option  string name = 1;  string description = 2 [json_name = "desc"];  string guid = 3 [json_name = "exid"];}// Issue 3200: When merging two messages which use the same// oneof case, which is itself a message type, the submessages should// be merged.message OneofMerging {  message Nested {    int32 x = 1;    int32 y = 2;  }  oneof value {    string text = 1;    Nested nested = 2;  }}message NullValueOutsideStruct {  oneof value {    string string_value = 1;    google.protobuf.NullValue null_value = 2;  }}message NullValueNotInOneof {  google.protobuf.NullValue null_value = 2;}message MixedRegularAndOptional {  string regular_field = 1;  optional string optional_field = 2;}
 |