Home | History | Annotate | Download | only in protos
      1 syntax = "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
      7 option csharp_namespace = "UnitTest.Issues.TestProtos";
      8 
      9 package unittest_issues;
     10 option 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.
     14 message 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 
     45 enum NegativeEnum {
     46     NEGATIVE_ENUM_ZERO = 0;
     47     FiveBelow = -5;
     48     MinusOne = -1;
     49 }
     50 
     51 message 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 
     60 message DeprecatedChild {
     61 }
     62 
     63 enum DeprecatedEnum {
     64     DEPRECATED_ZERO = 0;
     65     one = 1;
     66 }
     67 
     68 message 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
     80 message ItemField {
     81   int32 item = 1;
     82 }
     83 
     84 message ReservedNames {
     85   // Force a nested type called Types
     86   message SomeNestedType {
     87   }
     88 
     89   int32 types = 1;
     90   int32 descriptor = 2;
     91 }
     92 
     93 message 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 
    121 message 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