diff options
Diffstat (limited to 'src/google/protobuf/dynamic_message_unittest.cc')
-rw-r--r-- | src/google/protobuf/dynamic_message_unittest.cc | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/src/google/protobuf/dynamic_message_unittest.cc b/src/google/protobuf/dynamic_message_unittest.cc index 5f7af94e..41b89ab5 100644 --- a/src/google/protobuf/dynamic_message_unittest.cc +++ b/src/google/protobuf/dynamic_message_unittest.cc @@ -61,6 +61,8 @@ class DynamicMessageTest : public testing::Test { const Message* prototype_; const Descriptor* extensions_descriptor_; const Message* extensions_prototype_; + const Descriptor* packed_descriptor_; + const Message* packed_prototype_; DynamicMessageTest(): factory_(&pool_) {} @@ -87,6 +89,11 @@ class DynamicMessageTest : public testing::Test { pool_.FindMessageTypeByName("protobuf_unittest.TestAllExtensions"); ASSERT_TRUE(extensions_descriptor_ != NULL); extensions_prototype_ = factory_.GetPrototype(extensions_descriptor_); + + packed_descriptor_ = + pool_.FindMessageTypeByName("protobuf_unittest.TestPackedTypes"); + ASSERT_TRUE(packed_descriptor_ != NULL); + packed_prototype_ = factory_.GetPrototype(packed_descriptor_); } }; @@ -127,6 +134,15 @@ TEST_F(DynamicMessageTest, Extensions) { reflection_tester.ExpectAllFieldsSetViaReflection(*message); } +TEST_F(DynamicMessageTest, PackedFields) { + // Check that packed fields work properly. + scoped_ptr<Message> message(packed_prototype_->New()); + TestUtil::ReflectionTester reflection_tester(packed_descriptor_); + + reflection_tester.SetPackedFieldsViaReflection(message.get()); + reflection_tester.ExpectPackedFieldsSetViaReflection(*message); +} + TEST_F(DynamicMessageTest, SpaceUsed) { // Test that SpaceUsed() works properly |