From eee38b0c018b3279f77d03dff796f440f40d3516 Mon Sep 17 00:00:00 2001 From: Feng Xiao Date: Sat, 22 Aug 2015 18:25:48 -0700 Subject: Down-integrate from google3. --- src/google/protobuf/proto3_arena_unittest.cc | 26 ++++++++++++++++++++------ 1 file changed, 20 insertions(+), 6 deletions(-) (limited to 'src/google/protobuf/proto3_arena_unittest.cc') diff --git a/src/google/protobuf/proto3_arena_unittest.cc b/src/google/protobuf/proto3_arena_unittest.cc index da4be673..2838e0fc 100644 --- a/src/google/protobuf/proto3_arena_unittest.cc +++ b/src/google/protobuf/proto3_arena_unittest.cc @@ -119,7 +119,7 @@ void ExpectAllFieldsSet(const TestAllTypes& m) { // proto3 and expect the arena support to be fully tested in proto2 unittests // because proto3 shares most code with proto2. -TEST(ArenaTest, Parsing) { +TEST(Proto3ArenaTest, Parsing) { TestAllTypes original; SetAllFields(&original); @@ -129,7 +129,7 @@ TEST(ArenaTest, Parsing) { ExpectAllFieldsSet(*arena_message); } -TEST(ArenaTest, UnknownFields) { +TEST(Proto3ArenaTest, UnknownFields) { TestAllTypes original; SetAllFields(&original); @@ -150,7 +150,7 @@ TEST(ArenaTest, UnknownFields) { arena_message->GetReflection()->GetUnknownFields(*arena_message).empty()); } -TEST(ArenaTest, Swap) { +TEST(Proto3ArenaTest, Swap) { Arena arena1; Arena arena2; @@ -162,7 +162,7 @@ TEST(ArenaTest, Swap) { EXPECT_EQ(&arena2, arena2_message->GetArena()); } -TEST(ArenaTest, SetAllocatedMessage) { +TEST(Proto3ArenaTest, SetAllocatedMessage) { Arena arena; TestAllTypes *arena_message = Arena::CreateMessage(&arena); TestAllTypes::NestedMessage* nested = new TestAllTypes::NestedMessage; @@ -171,7 +171,7 @@ TEST(ArenaTest, SetAllocatedMessage) { EXPECT_EQ(118, arena_message->optional_nested_message().bb()); } -TEST(ArenaTest, ReleaseMessage) { +TEST(Proto3ArenaTest, ReleaseMessage) { Arena arena; TestAllTypes* arena_message = Arena::CreateMessage(&arena); arena_message->mutable_optional_nested_message()->set_bb(118); @@ -180,7 +180,7 @@ TEST(ArenaTest, ReleaseMessage) { EXPECT_EQ(118, nested->bb()); } -TEST(ArenaTest, MessageFieldClear) { +TEST(Proto3ArenaTest, MessageFieldClear) { // GitHub issue #310: https://github.com/google/protobuf/issues/310 Arena arena; TestAllTypes* arena_message = Arena::CreateMessage(&arena); @@ -190,6 +190,20 @@ TEST(ArenaTest, MessageFieldClear) { arena_message->Clear(); } +TEST(Proto3ArenaTest, MessageFieldClearViaReflection) { + Arena arena; + TestAllTypes* message = Arena::CreateMessage(&arena); + const Reflection* r = message->GetReflection(); + const Descriptor* d = message->GetDescriptor(); + const FieldDescriptor* msg_field = d->FindFieldByName( + "optional_nested_message"); + + message->mutable_optional_nested_message()->set_bb(1); + r->ClearField(message, msg_field); + EXPECT_FALSE(message->has_optional_nested_message()); + EXPECT_EQ(0, message->optional_nested_message().bb()); +} + } // namespace } // namespace protobuf } // namespace google -- cgit v1.2.3