diff options
author | Feng Xiao <xfxyjwf@gmail.com> | 2014-10-01 18:26:48 -0700 |
---|---|---|
committer | Feng Xiao <xfxyjwf@gmail.com> | 2014-10-01 18:26:48 -0700 |
commit | f5691a617ee2e72bac6a0eb97764497a223702d9 (patch) | |
tree | 08049c3969b158a8c716cc09260c07e0cb5fdbf2 /java/src/test | |
parent | 61477681710871dab2a5832d0d6324aa9b7d7867 (diff) | |
download | protobuf-f5691a617ee2e72bac6a0eb97764497a223702d9.tar.gz protobuf-f5691a617ee2e72bac6a0eb97764497a223702d9.tar.bz2 protobuf-f5691a617ee2e72bac6a0eb97764497a223702d9.zip |
Fix descriptor validation logic for packed enum fields.
Diffstat (limited to 'java/src/test')
-rw-r--r-- | java/src/test/java/com/google/protobuf/DescriptorsTest.java | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/java/src/test/java/com/google/protobuf/DescriptorsTest.java b/java/src/test/java/com/google/protobuf/DescriptorsTest.java index 13da1e81..0092771b 100644 --- a/java/src/test/java/com/google/protobuf/DescriptorsTest.java +++ b/java/src/test/java/com/google/protobuf/DescriptorsTest.java @@ -705,4 +705,31 @@ public class DescriptorsTest extends TestCase { assertFalse(TestMultipleExtensionRanges.getDescriptor().isExtensionNumber(4142)); assertTrue(TestMultipleExtensionRanges.getDescriptor().isExtensionNumber(4143)); } + + public void testPackedEnumField() throws Exception { + FileDescriptorProto fileDescriptorProto = FileDescriptorProto.newBuilder() + .setName("foo.proto") + .addEnumType(EnumDescriptorProto.newBuilder() + .setName("Enum") + .addValue(EnumValueDescriptorProto.newBuilder() + .setName("FOO") + .setNumber(1) + .build()) + .build()) + .addMessageType(DescriptorProto.newBuilder() + .setName("Message") + .addField(FieldDescriptorProto.newBuilder() + .setName("foo") + .setTypeName("Enum") + .setNumber(1) + .setLabel(FieldDescriptorProto.Label.LABEL_REPEATED) + .setOptions(DescriptorProtos.FieldOptions.newBuilder() + .setPacked(true) + .build()) + .build()) + .build()) + .build(); + Descriptors.FileDescriptor.buildFrom( + fileDescriptorProto, new FileDescriptor[0]); + } } |