1syntax = "proto3"; 2 3// These proto descriptors have at one time been reported as an issue or defect. 4// They are kept here to replicate the issue, and continue to verify the fix. 5 6// Issue: Non-"Google.Protobuffers" namespace will ensure that protobuffer library types are qualified 7option csharp_namespace = "UnitTest.Issues.TestProtos"; 8 9package unittest_issues; 10option optimize_for = SPEED; 11 12// Issue 307: when generating doubly-nested types, any references 13// should be of the form A.Types.B.Types.C. 14message Issue307 { 15 message NestedOnce { 16 message NestedTwice { 17 } 18 } 19} 20 21// Old issue 13: http://code.google.com/p/protobuf-csharp-port/issues/detail?id=13 22// New issue 309: https://github.com/google/protobuf/issues/309 23 24// message A { 25// optional int32 _A = 1; 26// } 27 28// message B { 29// optional int32 B_ = 1; 30// } 31 32//message AB { 33// optional int32 a_b = 1; 34//} 35 36// Similar issue with numeric names 37// Java code failed too, so probably best for this to be a restriction. 38// See https://github.com/google/protobuf/issues/308 39// message NumberField { 40// optional int32 _01 = 1; 41// } 42 43// issue 19 - negative enum values 44 45enum NegativeEnum { 46 NEGATIVE_ENUM_ZERO = 0; 47 FiveBelow = -5; 48 MinusOne = -1; 49} 50 51message NegativeEnumMessage { 52 NegativeEnum value = 1; 53 repeated NegativeEnum values = 2 [packed = false]; 54 repeated NegativeEnum packed_values = 3 [packed=true]; 55} 56 57// Issue 21: http://code.google.com/p/protobuf-csharp-port/issues/detail?id=21 58// Decorate fields with [deprecated=true] as [System.Obsolete] 59 60message DeprecatedChild { 61} 62 63enum DeprecatedEnum { 64 DEPRECATED_ZERO = 0; 65 one = 1; 66} 67 68message DeprecatedFieldsMessage { 69 int32 PrimitiveValue = 1 [deprecated = true]; 70 repeated int32 PrimitiveArray = 2 [deprecated = true]; 71 72 DeprecatedChild MessageValue = 3 [deprecated = true]; 73 repeated DeprecatedChild MessageArray = 4 [deprecated = true]; 74 75 DeprecatedEnum EnumValue = 5 [deprecated = true]; 76 repeated DeprecatedEnum EnumArray = 6 [deprecated = true]; 77} 78 79// Issue 45: http://code.google.com/p/protobuf-csharp-port/issues/detail?id=45 80message ItemField { 81 int32 item = 1; 82} 83 84message ReservedNames { 85 // Force a nested type called Types 86 message SomeNestedType { 87 } 88 89 int32 types = 1; 90 int32 descriptor = 2; 91} 92 93message TestJsonFieldOrdering { 94 // These fields are deliberately not declared in numeric 95 // order, and the oneof fields aren't contiguous either. 96 // This allows for reasonably robust tests of JSON output 97 // ordering. 98 // TestFieldOrderings in unittest_proto3.proto is similar, 99 // but doesn't include oneofs. 100 // TODO: Consider adding oneofs to TestFieldOrderings, although 101 // that will require fixing other tests in multiple platforms. 102 // Alternatively, consider just adding this to 103 // unittest_proto3.proto if multiple platforms want it. 104 105 int32 plain_int32 = 4; 106 107 oneof o1 { 108 string o1_string = 2; 109 int32 o1_int32 = 5; 110 } 111 112 string plain_string = 1; 113 114 oneof o2 { 115 int32 o2_int32 = 6; 116 string o2_string = 3; 117 } 118 119} 120 121message TestJsonName { 122 // Message for testing the effects for of the json_name option 123 string name = 1; 124 string description = 2 [json_name = "desc"]; 125 string guid = 3 [json_name = "exid"]; 126} 127