1// Protocol Buffers - Google's data interchange format 2// Copyright 2008 Google Inc. All rights reserved. 3// https://developers.google.com/protocol-buffers/ 4// 5// Redistribution and use in source and binary forms, with or without 6// modification, are permitted provided that the following conditions are 7// met: 8// 9// * Redistributions of source code must retain the above copyright 10// notice, this list of conditions and the following disclaimer. 11// * Redistributions in binary form must reproduce the above 12// copyright notice, this list of conditions and the following disclaimer 13// in the documentation and/or other materials provided with the 14// distribution. 15// * Neither the name of Google Inc. nor the names of its 16// contributors may be used to endorse or promote products derived from 17// this software without specific prior written permission. 18// 19// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 20// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 21// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 22// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 23// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 24// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 25// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 26// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 27// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 28// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 29// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 30 31// Author: kenton@google.com (Kenton Varda) 32// Based on original Protocol Buffers design by 33// Sanjay Ghemawat, Jeff Dean, and others. 34// 35// A proto file we will use for unit testing. 36 37syntax = "proto2"; 38 39package protobuf_unittest; 40 41message TestFlagsAndStrings { 42 required int32 A = 1; 43 repeated group RepeatedGroup = 2 { 44 required string f = 3; 45 } 46} 47 48message TestBase64ByteArrays { 49 required bytes a = 1; 50} 51 52message TestJavaScriptJSON { 53 optional int32 a = 1; 54 optional float final = 2; 55 optional string in = 3; 56 optional string Var = 4; 57} 58 59message TestJavaScriptOrderJSON1 { 60 optional int32 d = 1; 61 optional int32 c = 2; 62 optional bool x = 3; 63 optional int32 b = 4; 64 optional int32 a = 5; 65} 66 67message TestJavaScriptOrderJSON2 { 68 optional int32 d = 1; 69 optional int32 c = 2; 70 optional bool x = 3; 71 optional int32 b = 4; 72 optional int32 a = 5; 73 repeated TestJavaScriptOrderJSON1 z = 6; 74} 75 76message TestLargeInt { 77 required int64 a = 1; 78 required uint64 b = 2; 79} 80 81message TestNumbers { 82 enum MyType { 83 OK = 0; 84 WARNING = 1; 85 ERROR = 2; 86 } 87 optional MyType a = 1; 88 optional int32 b = 2; 89 optional float c = 3; 90 optional bool d = 4; 91 optional double e = 5; 92 optional uint32 f = 6; 93} 94 95 96message TestCamelCase { 97 optional string normal_field = 1; 98 optional int32 CAPITAL_FIELD = 2; 99 optional int32 CamelCaseField = 3; 100} 101 102message TestBoolMap { 103 map<bool, int32> bool_map = 1; 104} 105 106message TestRecursion { 107 optional int32 value = 1; 108 optional TestRecursion child = 2; 109} 110 111message TestStringMap { 112 map<string, string> string_map = 1; 113} 114 115message TestStringSerializer { 116 optional string scalar_string = 1; 117 repeated string repeated_string = 2; 118 map<string, string> string_map = 3; 119} 120 121message TestMessageWithExtension { 122 extensions 100 to max; 123} 124 125message TestExtension { 126 extend TestMessageWithExtension { 127 optional TestExtension ext = 100; 128 } 129 optional string value = 1; 130} 131