diff --git a/google/protobuf/compiler/java/message_serialization_unittest.proto b/google/protobuf/compiler/java/message_serialization_unittest.proto new file mode 100644 index 000000000000..9cfdf42b3253 --- /dev/null +++ b/google/protobuf/compiler/java/message_serialization_unittest.proto @@ -0,0 +1,56 @@ +// Protocol Buffers - Google's data interchange format +// Copyright 2008 Google Inc. All rights reserved. +// https://developers.google.com/protocol-buffers/ +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +syntax = "proto2"; + +package protobuf_unittest; + +option java_multiple_files = true; +option java_package = ""; + +// Each batch of extension ranges not separated by a non-extension field should +// be serialized using a single ExtensionWriter#writeUntil call. +message TestMessageWithManyExtensionRanges { + // First extension range: ends at field number 3 (exclusive) + extensions 1 to 2; + + optional int32 foo = 3; + optional int32 bar = 5; + + // Second extension range: ends at field number 13 (exclusive) + extensions 6; + extensions 8; + extensions 10 to 12; + + optional int32 baz = 23; + + // Third extension range: ends at field number 43 (exclusive) + extensions 42; +} diff --git a/google/protobuf/unittest.proto b/google/protobuf/unittest.proto index 2ac8f17f4a48..7176f0932502 100644 --- a/google/protobuf/unittest.proto +++ b/google/protobuf/unittest.proto @@ -1527,3 +1527,20 @@ message EnumParseTester { optional int32 other_field = 99; }; +// This message contains different kind of bool fields to exercise the different +// parsers in table-drived. +message BoolParseTester { + optional bool optional_bool_lowfield = 1; + optional bool optional_bool_midfield = 1001; + optional bool optional_bool_hifield = 1000001; + repeated bool repeated_bool_lowfield = 2; + repeated bool repeated_bool_midfield = 1002; + repeated bool repeated_bool_hifield = 1000002; + repeated bool packed_bool_lowfield = 3 [packed = true]; + repeated bool packed_bool_midfield = 1003 [packed = true]; + repeated bool packed_bool_hifield = 1000003 [packed = true]; + + // An arbitrary field we can append to to break the runs of repeated fields. + optional int32 other_field = 99; +}; +