49 #include <google/protobuf/unittest.pb.h>
71 TEST(GeneratedMessageReflectionTest, Defaults) {
74 TestUtil::ReflectionTester reflection_tester(
77 reflection_tester.ExpectClearViaReflection(
message);
79 const Reflection* reflection =
message.GetReflection();
84 EXPECT_EQ(&unittest::TestAllTypes::OptionalGroup::default_instance(),
85 &reflection->GetMessage(
message,
F(
"optionalgroup")));
86 EXPECT_EQ(&unittest::TestAllTypes::NestedMessage::default_instance(),
87 &reflection->GetMessage(
message,
F(
"optional_nested_message")));
88 EXPECT_EQ(&unittest::ForeignMessage::default_instance(),
89 &reflection->GetMessage(
message,
F(
"optional_foreign_message")));
90 EXPECT_EQ(&unittest_import::ImportMessage::default_instance(),
91 &reflection->GetMessage(
message,
F(
"optional_import_message")));
94 TEST(GeneratedMessageReflectionTest, Accessors) {
98 TestUtil::ReflectionTester reflection_tester(
101 reflection_tester.SetAllFieldsViaReflection(&
message);
103 reflection_tester.ExpectAllFieldsSetViaReflection(
message);
105 reflection_tester.ModifyRepeatedFieldsViaReflection(&
message);
106 TestUtil::ExpectRepeatedFieldsModified(
message);
109 TEST(GeneratedMessageReflectionTest, GetStringReference) {
112 unittest::TestAllTypes
message;
113 message.set_optional_string(
"foo");
114 message.add_repeated_string(
"foo");
116 const Reflection* reflection =
message.GetReflection();
121 &reflection->GetStringReference(
message,
F(
"optional_string"), &scratch))
122 <<
"For simple string fields, GetStringReference() should return a "
123 "reference to the underlying string.";
125 &reflection->GetRepeatedStringReference(
126 message,
F(
"repeated_string"), 0, &scratch))
127 <<
"For simple string fields, GetRepeatedStringReference() should "
129 "a reference to the underlying string.";
133 TEST(GeneratedMessageReflectionTest, DefaultsAfterClear) {
136 unittest::TestAllTypes
message;
137 TestUtil::ReflectionTester reflection_tester(
143 const Reflection* reflection =
message.GetReflection();
145 EXPECT_NE(&unittest::TestAllTypes::OptionalGroup::default_instance(),
146 &reflection->GetMessage(
message,
F(
"optionalgroup")));
147 EXPECT_NE(&unittest::TestAllTypes::NestedMessage::default_instance(),
148 &reflection->GetMessage(
message,
F(
"optional_nested_message")));
149 EXPECT_NE(&unittest::ForeignMessage::default_instance(),
150 &reflection->GetMessage(
message,
F(
"optional_foreign_message")));
151 EXPECT_NE(&unittest_import::ImportMessage::default_instance(),
152 &reflection->GetMessage(
message,
F(
"optional_import_message")));
155 TEST(GeneratedMessageReflectionTest, Swap) {
156 unittest::TestAllTypes message1;
157 unittest::TestAllTypes message2;
161 const Reflection* reflection = message1.GetReflection();
162 reflection->Swap(&message1, &message2);
164 TestUtil::ExpectClear(message1);
168 TEST(GeneratedMessageReflectionTest, SwapWithBothSet) {
169 unittest::TestAllTypes message1;
170 unittest::TestAllTypes message2;
174 TestUtil::ModifyRepeatedFields(&message2);
176 const Reflection* reflection = message1.GetReflection();
177 reflection->Swap(&message1, &message2);
179 TestUtil::ExpectRepeatedFieldsModified(message1);
182 message1.set_optional_int32(532819);
184 reflection->Swap(&message1, &message2);
186 EXPECT_EQ(532819, message2.optional_int32());
189 TEST(GeneratedMessageReflectionTest, SwapExtensions) {
190 unittest::TestAllExtensions message1;
191 unittest::TestAllExtensions message2;
195 const Reflection* reflection = message1.GetReflection();
196 reflection->Swap(&message1, &message2);
198 TestUtil::ExpectExtensionsClear(message1);
199 TestUtil::ExpectAllExtensionsSet(message2);
202 TEST(GeneratedMessageReflectionTest, SwapUnknown) {
203 unittest::TestEmptyMessage message1, message2;
205 message1.mutable_unknown_fields()->AddVarint(1234, 1);
207 EXPECT_EQ(1, message1.unknown_fields().field_count());
208 EXPECT_EQ(0, message2.unknown_fields().field_count());
209 const Reflection* reflection = message1.GetReflection();
210 reflection->Swap(&message1, &message2);
211 EXPECT_EQ(0, message1.unknown_fields().field_count());
212 EXPECT_EQ(1, message2.unknown_fields().field_count());
215 TEST(GeneratedMessageReflectionTest, SwapFields) {
216 unittest::TestAllTypes message1, message2;
217 message1.set_optional_double(12.3);
218 message1.mutable_repeated_int32()->Add(10);
219 message1.mutable_repeated_int32()->Add(20);
221 message2.set_optional_string(
"hello");
222 message2.mutable_repeated_int64()->Add(30);
224 std::vector<const FieldDescriptor*>
fields;
231 const Reflection* reflection = message1.GetReflection();
232 reflection->SwapFields(&message1, &message2,
fields);
235 EXPECT_EQ(0, message1.repeated_int32_size());
237 EXPECT_EQ(
"hello", message1.optional_string());
238 EXPECT_EQ(0, message1.repeated_int64_size());
242 EXPECT_EQ(12.3, message2.optional_double());
243 EXPECT_EQ(2, message2.repeated_int32_size());
244 EXPECT_EQ(10, message2.repeated_int32(0));
245 EXPECT_EQ(20, message2.repeated_int32(1));
247 EXPECT_EQ(1, message2.repeated_int64_size());
251 TEST(GeneratedMessageReflectionTest, SwapFieldsAll) {
252 unittest::TestAllTypes message1;
253 unittest::TestAllTypes message2;
257 std::vector<const FieldDescriptor*>
fields;
258 const Reflection* reflection = message1.GetReflection();
259 reflection->ListFields(message2, &
fields);
260 reflection->SwapFields(&message1, &message2,
fields);
263 TestUtil::ExpectClear(message2);
266 TEST(GeneratedMessageReflectionTest, SwapFieldsAllExtension) {
267 unittest::TestAllExtensions message1;
268 unittest::TestAllExtensions message2;
272 std::vector<const FieldDescriptor*>
fields;
273 const Reflection* reflection = message1.GetReflection();
274 reflection->ListFields(message1, &
fields);
275 reflection->SwapFields(&message1, &message2,
fields);
277 TestUtil::ExpectExtensionsClear(message1);
278 TestUtil::ExpectAllExtensionsSet(message2);
281 TEST(GeneratedMessageReflectionTest, SwapOneof) {
282 unittest::TestOneof2 message1, message2;
283 TestUtil::SetOneof1(&message1);
285 const Reflection* reflection = message1.GetReflection();
286 reflection->Swap(&message1, &message2);
288 TestUtil::ExpectOneofClear(message1);
289 TestUtil::ExpectOneofSet1(message2);
292 TEST(GeneratedMessageReflectionTest, SwapOneofBothSet) {
293 unittest::TestOneof2 message1, message2;
294 TestUtil::SetOneof1(&message1);
295 TestUtil::SetOneof2(&message2);
297 const Reflection* reflection = message1.GetReflection();
298 reflection->Swap(&message1, &message2);
300 TestUtil::ExpectOneofSet2(message1);
301 TestUtil::ExpectOneofSet1(message2);
304 TEST(GeneratedMessageReflectionTest, SwapFieldsOneof) {
305 unittest::TestOneof2 message1, message2;
306 TestUtil::SetOneof1(&message1);
308 std::vector<const FieldDescriptor*>
fields;
313 const Reflection* reflection = message1.GetReflection();
314 reflection->SwapFields(&message1, &message2,
fields);
316 TestUtil::ExpectOneofClear(message1);
317 TestUtil::ExpectOneofSet1(message2);
320 TEST(GeneratedMessageReflectionTest, RemoveLast) {
321 unittest::TestAllTypes
message;
322 TestUtil::ReflectionTester reflection_tester(
327 reflection_tester.RemoveLastRepeatedsViaReflection(&
message);
329 TestUtil::ExpectLastRepeatedsRemoved(
message);
332 TEST(GeneratedMessageReflectionTest, RemoveLastExtensions) {
333 unittest::TestAllExtensions
message;
334 TestUtil::ReflectionTester reflection_tester(
339 reflection_tester.RemoveLastRepeatedsViaReflection(&
message);
341 TestUtil::ExpectLastRepeatedExtensionsRemoved(
message);
344 TEST(GeneratedMessageReflectionTest, ReleaseLast) {
345 unittest::TestAllTypes
message;
347 TestUtil::ReflectionTester reflection_tester(
descriptor);
351 reflection_tester.ReleaseLastRepeatedsViaReflection(&
message,
false);
353 TestUtil::ExpectLastRepeatedsReleased(
message);
359 const protobuf_unittest::ForeignMessage* expected =
360 message.mutable_repeated_foreign_message(1);
361 std::unique_ptr<Message> released(
message.GetReflection()->ReleaseLast(
366 TEST(GeneratedMessageReflectionTest, ReleaseLastExtensions) {
367 unittest::TestAllExtensions
message;
369 TestUtil::ReflectionTester reflection_tester(
descriptor);
373 reflection_tester.ReleaseLastRepeatedsViaReflection(&
message,
true);
375 TestUtil::ExpectLastRepeatedExtensionsReleased(
message);
381 2,
message.ExtensionSize(unittest::repeated_foreign_message_extension));
382 const protobuf_unittest::ForeignMessage* expected =
383 message.MutableExtension(unittest::repeated_foreign_message_extension, 1);
384 std::unique_ptr<Message> released(
message.GetReflection()->ReleaseLast(
386 "repeated_foreign_message_extension")));
390 TEST(GeneratedMessageReflectionTest, SwapRepeatedElements) {
391 unittest::TestAllTypes
message;
392 TestUtil::ReflectionTester reflection_tester(
398 reflection_tester.SwapRepeatedsViaReflection(&
message);
399 TestUtil::ExpectRepeatedsSwapped(
message);
402 reflection_tester.SwapRepeatedsViaReflection(&
message);
406 TEST(GeneratedMessageReflectionTest, SwapRepeatedElementsExtension) {
407 unittest::TestAllExtensions
message;
408 TestUtil::ReflectionTester reflection_tester(
414 reflection_tester.SwapRepeatedsViaReflection(&
message);
415 TestUtil::ExpectRepeatedExtensionsSwapped(
message);
418 reflection_tester.SwapRepeatedsViaReflection(&
message);
419 TestUtil::ExpectAllExtensionsSet(
message);
425 unittest::TestAllExtensions
message;
426 TestUtil::ReflectionTester reflection_tester(
429 reflection_tester.SetAllFieldsViaReflection(&
message);
430 TestUtil::ExpectAllExtensionsSet(
message);
431 reflection_tester.ExpectAllFieldsSetViaReflection(
message);
433 reflection_tester.ModifyRepeatedFieldsViaReflection(&
message);
434 TestUtil::ExpectRepeatedExtensionsModified(
message);
437 TEST(GeneratedMessageReflectionTest, FindExtensionTypeByNumber) {
438 const Reflection* reflection =
439 unittest::TestAllExtensions::default_instance().GetReflection();
443 "optional_int32_extension");
446 "repeated_string_extension");
449 reflection->FindKnownExtensionByNumber(extension1->number()));
451 reflection->FindKnownExtensionByNumber(extension2->number()));
458 EXPECT_TRUE(unittest::TestAllTypes::default_instance()
460 ->FindKnownExtensionByNumber(extension1->number()) ==
NULL);
463 TEST(GeneratedMessageReflectionTest, FindKnownExtensionByName) {
464 const Reflection* reflection =
465 unittest::TestAllExtensions::default_instance().GetReflection();
469 "optional_int32_extension");
472 "repeated_string_extension");
475 reflection->FindKnownExtensionByName(extension1->full_name()));
477 reflection->FindKnownExtensionByName(extension2->full_name()));
480 EXPECT_TRUE(reflection->FindKnownExtensionByName(
"no_such_ext") ==
NULL);
484 EXPECT_TRUE(unittest::TestAllTypes::default_instance()
486 ->FindKnownExtensionByName(extension1->full_name()) ==
NULL);
489 TEST(GeneratedMessageReflectionTest, SetAllocatedMessageTest) {
490 unittest::TestAllTypes from_message1;
491 unittest::TestAllTypes from_message2;
492 unittest::TestAllTypes to_message;
493 TestUtil::ReflectionTester reflection_tester(
495 reflection_tester.SetAllFieldsViaReflection(&from_message1);
496 reflection_tester.SetAllFieldsViaReflection(&from_message2);
499 reflection_tester.ExpectMessagesReleasedViaReflection(
503 reflection_tester.SetAllocatedOptionalMessageFieldsToMessageViaReflection(
504 &from_message1, &to_message);
505 reflection_tester.ExpectMessagesReleasedViaReflection(
509 reflection_tester.SetAllocatedOptionalMessageFieldsToMessageViaReflection(
510 &from_message2, &to_message);
511 reflection_tester.ExpectMessagesReleasedViaReflection(
516 reflection_tester.SetAllocatedOptionalMessageFieldsToNullViaReflection(
518 reflection_tester.ExpectMessagesReleasedViaReflection(
522 TEST(GeneratedMessageReflectionTest, SetAllocatedMessageOnArenaTest) {
523 unittest::TestAllTypes from_message1;
524 unittest::TestAllTypes from_message2;
526 unittest::TestAllTypes* to_message =
527 Arena::CreateMessage<unittest::TestAllTypes>(&arena);
528 TestUtil::ReflectionTester reflection_tester(
530 reflection_tester.SetAllFieldsViaReflection(&from_message1);
531 reflection_tester.SetAllFieldsViaReflection(&from_message2);
534 reflection_tester.ExpectMessagesReleasedViaReflection(
538 reflection_tester.SetAllocatedOptionalMessageFieldsToMessageViaReflection(
539 &from_message1, to_message);
540 reflection_tester.ExpectMessagesReleasedViaReflection(
544 reflection_tester.SetAllocatedOptionalMessageFieldsToMessageViaReflection(
545 &from_message2, to_message);
546 reflection_tester.ExpectMessagesReleasedViaReflection(
551 reflection_tester.SetAllocatedOptionalMessageFieldsToNullViaReflection(
553 reflection_tester.ExpectMessagesReleasedViaReflection(
557 TEST(GeneratedMessageReflectionTest, SetAllocatedExtensionMessageTest) {
558 unittest::TestAllExtensions from_message1;
559 unittest::TestAllExtensions from_message2;
560 unittest::TestAllExtensions to_message;
561 TestUtil::ReflectionTester reflection_tester(
563 reflection_tester.SetAllFieldsViaReflection(&from_message1);
564 reflection_tester.SetAllFieldsViaReflection(&from_message2);
567 reflection_tester.ExpectMessagesReleasedViaReflection(
571 reflection_tester.SetAllocatedOptionalMessageFieldsToMessageViaReflection(
572 &from_message1, &to_message);
573 reflection_tester.ExpectMessagesReleasedViaReflection(
577 reflection_tester.SetAllocatedOptionalMessageFieldsToMessageViaReflection(
578 &from_message2, &to_message);
579 reflection_tester.ExpectMessagesReleasedViaReflection(
584 reflection_tester.SetAllocatedOptionalMessageFieldsToNullViaReflection(
586 reflection_tester.ExpectMessagesReleasedViaReflection(
590 TEST(GeneratedMessageReflectionTest, SetAllocatedExtensionMessageOnArenaTest) {
592 unittest::TestAllExtensions* to_message =
593 Arena::CreateMessage<unittest::TestAllExtensions>(&arena);
594 unittest::TestAllExtensions from_message1;
595 unittest::TestAllExtensions from_message2;
596 TestUtil::ReflectionTester reflection_tester(
598 reflection_tester.SetAllFieldsViaReflection(&from_message1);
599 reflection_tester.SetAllFieldsViaReflection(&from_message2);
602 reflection_tester.ExpectMessagesReleasedViaReflection(
606 reflection_tester.SetAllocatedOptionalMessageFieldsToMessageViaReflection(
607 &from_message1, to_message);
608 reflection_tester.ExpectMessagesReleasedViaReflection(
612 reflection_tester.SetAllocatedOptionalMessageFieldsToMessageViaReflection(
613 &from_message2, to_message);
614 reflection_tester.ExpectMessagesReleasedViaReflection(
619 reflection_tester.SetAllocatedOptionalMessageFieldsToNullViaReflection(
621 reflection_tester.ExpectMessagesReleasedViaReflection(
625 TEST(GeneratedMessageReflectionTest, AddRepeatedMessage) {
626 unittest::TestAllTypes
message;
628 const Reflection* reflection =
message.GetReflection();
629 const Reflection* nested_reflection =
630 unittest::TestAllTypes::NestedMessage::default_instance().GetReflection();
637 reflection->AddMessage(&
message,
F(
"repeated_nested_message"));
638 nested_reflection->SetInt32(nested, nested_bb, 11);
643 TEST(GeneratedMessageReflectionTest, MutableRepeatedMessage) {
644 unittest::TestAllTypes
message;
646 const Reflection* reflection =
message.GetReflection();
647 const Reflection* nested_reflection =
648 unittest::TestAllTypes::NestedMessage::default_instance().GetReflection();
654 message.add_repeated_nested_message()->set_bb(12);
656 Message* nested = reflection->MutableRepeatedMessage(
657 &
message,
F(
"repeated_nested_message"), 0);
658 EXPECT_EQ(12, nested_reflection->GetInt32(*nested, nested_bb));
659 nested_reflection->SetInt32(nested, nested_bb, 13);
663 TEST(GeneratedMessageReflectionTest, AddAllocatedMessage) {
664 unittest::TestAllTypes
message;
666 const Reflection* reflection =
message.GetReflection();
668 unittest::TestAllTypes::NestedMessage* nested =
669 new unittest::TestAllTypes::NestedMessage();
671 reflection->AddAllocatedMessage(&
message,
F(
"repeated_nested_message"),
677 TEST(GeneratedMessageReflectionTest, ListFieldsOneOf) {
681 const Reflection* reflection =
message.GetReflection();
682 std::vector<const FieldDescriptor*>
fields;
687 TEST(GeneratedMessageReflectionTest,
Oneof) {
690 const Reflection* reflection =
message.GetReflection();
704 unittest::TestOneof2::FOO,
707 EXPECT_EQ(&unittest::TestOneof2::NestedMessage::default_instance(),
708 &reflection->GetMessage(
710 EXPECT_EQ(&unittest::TestOneof2::FooGroup::default_instance(),
711 &reflection->GetMessage(
message,
713 EXPECT_NE(&unittest::TestOneof2::FooGroup::default_instance(),
714 &reflection->GetMessage(
718 EXPECT_EQ(
"STRING", reflection->GetString(
723 reflection->GetString(
725 EXPECT_EQ(
"BYTES", reflection->GetString(
728 unittest::TestOneof2::BAR,
742 EXPECT_EQ(
"bytes", reflection->GetString(
749 reflection->SetString(&
message,
753 reflection->GetString(
758 TestUtil::ExpectOneofClear(
message);
761 TEST(GeneratedMessageReflectionTest, SetAllocatedOneofMessageTest) {
762 unittest::TestOneof2 from_message1;
763 unittest::TestOneof2 from_message2;
764 unittest::TestOneof2 to_message;
766 const Reflection* reflection = to_message.GetReflection();
768 Message* released = reflection->ReleaseMessage(
771 released = reflection->ReleaseMessage(
781 const Message& sub_message = reflection->GetMessage(
783 released = reflection->ReleaseMessage(
791 reflection->MutableMessage(&from_message2,
798 const Message& sub_message2 = reflection->GetMessage(
800 released = reflection->ReleaseMessage(
807 TEST(GeneratedMessageReflectionTest, SetAllocatedOneofMessageOnArenaTest) {
808 unittest::TestOneof2 from_message1;
809 unittest::TestOneof2 from_message2;
811 unittest::TestOneof2* to_message =
812 Arena::CreateMessage<unittest::TestOneof2>(&arena);
814 const Reflection* reflection = to_message->GetReflection();
816 Message* released = reflection->ReleaseMessage(
819 released = reflection->ReleaseMessage(
829 const Message& sub_message = reflection->GetMessage(
831 released = reflection->ReleaseMessage(
841 reflection->MutableMessage(&from_message2,
848 const Message& sub_message2 = reflection->GetMessage(
850 released = reflection->ReleaseMessage(
859 TEST(GeneratedMessageReflectionTest, ReleaseMessageTest) {
860 unittest::TestAllTypes
message;
861 TestUtil::ReflectionTester reflection_tester(
865 reflection_tester.ExpectMessagesReleasedViaReflection(
869 reflection_tester.SetAllFieldsViaReflection(&
message);
870 reflection_tester.ExpectMessagesReleasedViaReflection(
875 reflection_tester.SetAllFieldsViaReflection(&
message);
877 reflection_tester.ExpectMessagesReleasedViaReflection(
885 TEST(GeneratedMessageReflectionTest, ReleaseExtensionMessageTest) {
886 unittest::TestAllExtensions
message;
887 TestUtil::ReflectionTester reflection_tester(
891 reflection_tester.ExpectMessagesReleasedViaReflection(
895 reflection_tester.SetAllFieldsViaReflection(&
message);
896 reflection_tester.ExpectMessagesReleasedViaReflection(
901 reflection_tester.SetAllFieldsViaReflection(&
message);
903 reflection_tester.ExpectMessagesReleasedViaReflection(
908 TestUtil::ExpectAllExtensionsSet(
message);
911 TEST(GeneratedMessageReflectionTest, ReleaseOneofMessageTest) {
916 const Reflection* reflection =
message.GetReflection();
917 const Message& sub_message = reflection->GetMessage(
919 Message* released = reflection->ReleaseMessage(
926 released = reflection->ReleaseMessage(
931 TEST(GeneratedMessageReflectionTest, ArenaReleaseMessageTest) {
933 unittest::TestAllTypes*
message =
934 Arena::CreateMessage<unittest::TestAllTypes>(&arena);
935 TestUtil::ReflectionTester reflection_tester(
939 reflection_tester.ExpectMessagesReleasedViaReflection(
943 reflection_tester.SetAllFieldsViaReflection(
message);
944 reflection_tester.ExpectMessagesReleasedViaReflection(
949 reflection_tester.SetAllFieldsViaReflection(
message);
951 reflection_tester.ExpectMessagesReleasedViaReflection(
955 TEST(GeneratedMessageReflectionTest, ArenaReleaseExtensionMessageTest) {
957 unittest::TestAllExtensions*
message =
958 Arena::CreateMessage<unittest::TestAllExtensions>(&arena);
959 TestUtil::ReflectionTester reflection_tester(
963 reflection_tester.ExpectMessagesReleasedViaReflection(
967 reflection_tester.SetAllFieldsViaReflection(
message);
968 reflection_tester.ExpectMessagesReleasedViaReflection(
973 reflection_tester.SetAllFieldsViaReflection(
message);
975 reflection_tester.ExpectMessagesReleasedViaReflection(
979 TEST(GeneratedMessageReflectionTest, ArenaReleaseOneofMessageTest) {
981 unittest::TestOneof2*
message =
982 Arena::CreateMessage<unittest::TestOneof2>(&arena);
986 const Reflection* reflection =
message->GetReflection();
987 Message* released = reflection->ReleaseMessage(
993 released = reflection->ReleaseMessage(
998 #ifdef PROTOBUF_HAS_DEATH_TEST
1000 TEST(GeneratedMessageReflectionTest, UsageErrors) {
1001 unittest::TestAllTypes
message;
1002 const Reflection* reflection =
message.GetReflection();
1005 #define f(NAME) descriptor->FindFieldByName(NAME)
1012 "Protocol Buffer reflection usage error:\n"
1013 " Method : google::protobuf::Reflection::GetInt32\n"
1014 " Message type: protobuf_unittest\\.TestAllTypes\n"
1015 " Field : protobuf_unittest\\.TestAllTypes\\.optional_int64\n"
1016 " Problem : Field is not the right type for this message:\n"
1017 " Expected : CPPTYPE_INT32\n"
1018 " Field type: CPPTYPE_INT64");
1019 EXPECT_DEATH(reflection->GetInt32(
1021 "Protocol Buffer reflection usage error:\n"
1022 " Method : google::protobuf::Reflection::GetInt32\n"
1023 " Message type: protobuf_unittest.TestAllTypes\n"
1024 " Field : protobuf_unittest.TestAllTypes.repeated_int32\n"
1025 " Problem : Field is repeated; the method requires a "
1028 reflection->GetInt32(
1031 "Protocol Buffer reflection usage error:\n"
1032 " Method : google::protobuf::Reflection::GetInt32\n"
1033 " Message type: protobuf_unittest.TestAllTypes\n"
1034 " Field : protobuf_unittest.ForeignMessage.c\n"
1035 " Problem : Field does not match message type.");
1037 reflection->HasField(
1040 "Protocol Buffer reflection usage error:\n"
1041 " Method : google::protobuf::Reflection::HasField\n"
1042 " Message type: protobuf_unittest.TestAllTypes\n"
1043 " Field : protobuf_unittest.ForeignMessage.c\n"
1044 " Problem : Field does not match message type.");
1049 #endif // PROTOBUF_HAS_DEATH_TEST