Index: third_party/protobuf/src/google/protobuf/extension_set_unittest.cc |
diff --git a/third_party/protobuf/src/google/protobuf/extension_set_unittest.cc b/third_party/protobuf/src/google/protobuf/extension_set_unittest.cc |
index 684ce002553f28c6b54e99c382895e8ef820acae..559de6e138f759f9c01c7ddf8d602c18588254a6 100644 |
--- a/third_party/protobuf/src/google/protobuf/extension_set_unittest.cc |
+++ b/third_party/protobuf/src/google/protobuf/extension_set_unittest.cc |
@@ -1,6 +1,6 @@ |
// Protocol Buffers - Google's data interchange format |
// Copyright 2008 Google Inc. All rights reserved. |
-// https://developers.google.com/protocol-buffers/ |
+// http://code.google.com/p/protobuf/ |
// |
// Redistribution and use in source and binary forms, with or without |
// modification, are permitted provided that the following conditions are |
@@ -37,7 +37,6 @@ |
#include <google/protobuf/unittest_mset.pb.h> |
#include <google/protobuf/test_util.h> |
#include <google/protobuf/descriptor.pb.h> |
-#include <google/protobuf/arena.h> |
#include <google/protobuf/descriptor.h> |
#include <google/protobuf/dynamic_message.h> |
#include <google/protobuf/wire_format.h> |
@@ -143,7 +142,7 @@ TEST(ExtensionSetTest, ClearOneField) { |
TestUtil::ExpectAllExtensionsSet(message); |
} |
-TEST(ExtensionSetTest, SetAllocatedExtension) { |
+TEST(ExtensionSetTest, SetAllocatedExtensin) { |
unittest::TestAllExtensions message; |
EXPECT_FALSE(message.HasExtension( |
unittest::optional_foreign_message_extension)); |
@@ -163,11 +162,11 @@ TEST(ExtensionSetTest, SetAllocatedExtension) { |
// SetAllocatedExtension should delete the previously existing extension. |
// (We reply on unittest to check memory leaks for this case) |
message.SetAllocatedExtension(unittest::optional_foreign_message_extension, |
- new unittest::ForeignMessage()); |
+ new unittest::ForeignMessage()); |
// SetAllocatedExtension with a NULL parameter is equivalent to ClearExtenion. |
message.SetAllocatedExtension(unittest::optional_foreign_message_extension, |
- NULL); |
+ NULL); |
EXPECT_FALSE(message.HasExtension( |
unittest::optional_foreign_message_extension)); |
} |
@@ -187,7 +186,7 @@ TEST(ExtensionSetTest, ReleaseExtension) { |
// Release the extension using ReleaseExtension |
unittest::TestMessageSetExtension1* released_extension = |
message.ReleaseExtension( |
- unittest::TestMessageSetExtension1::message_set_extension); |
+ unittest::TestMessageSetExtension1::message_set_extension); |
EXPECT_EQ(extension, released_extension); |
EXPECT_FALSE(message.HasExtension( |
unittest::TestMessageSetExtension1::message_set_extension)); |
@@ -199,7 +198,7 @@ TEST(ExtensionSetTest, ReleaseExtension) { |
message.ClearExtension( |
unittest::TestMessageSetExtension1::message_set_extension); |
released_extension = message.ReleaseExtension( |
- unittest::TestMessageSetExtension1::message_set_extension); |
+ unittest::TestMessageSetExtension1::message_set_extension); |
EXPECT_TRUE(released_extension != NULL); |
delete released_extension; |
} |
@@ -257,193 +256,6 @@ TEST(ExtensionSetTest, SwapWithSelf) { |
TestUtil::ExpectAllExtensionsSet(message); |
} |
-TEST(ExtensionSetTest, SwapExtension) { |
- unittest::TestAllExtensions message1; |
- unittest::TestAllExtensions message2; |
- |
- TestUtil::SetAllExtensions(&message1); |
- vector<const FieldDescriptor*> fields; |
- |
- // Swap empty fields. |
- const Reflection* reflection = message1.GetReflection(); |
- reflection->SwapFields(&message1, &message2, fields); |
- TestUtil::ExpectAllExtensionsSet(message1); |
- TestUtil::ExpectExtensionsClear(message2); |
- |
- // Swap two extensions. |
- fields.push_back( |
- reflection->FindKnownExtensionByNumber(12)); |
- fields.push_back( |
- reflection->FindKnownExtensionByNumber(25)); |
- reflection->SwapFields(&message1, &message2, fields); |
- |
- EXPECT_TRUE(message1.HasExtension(unittest::optional_int32_extension)); |
- EXPECT_FALSE(message1.HasExtension(unittest::optional_double_extension)); |
- EXPECT_FALSE(message1.HasExtension(unittest::optional_cord_extension)); |
- |
- EXPECT_FALSE(message2.HasExtension(unittest::optional_int32_extension)); |
- EXPECT_TRUE(message2.HasExtension(unittest::optional_double_extension)); |
- EXPECT_TRUE(message2.HasExtension(unittest::optional_cord_extension)); |
-} |
- |
-TEST(ExtensionSetTest, SwapExtensionWithEmpty) { |
- unittest::TestAllExtensions message1; |
- unittest::TestAllExtensions message2; |
- unittest::TestAllExtensions message3; |
- |
- TestUtil::SetAllExtensions(&message3); |
- |
- const Reflection* reflection = message3.GetReflection(); |
- vector<const FieldDescriptor*> fields; |
- reflection->ListFields(message3, &fields); |
- |
- reflection->SwapFields(&message1, &message2, fields); |
- |
- TestUtil::ExpectExtensionsClear(message1); |
- TestUtil::ExpectExtensionsClear(message2); |
-} |
- |
-TEST(ExtensionSetTest, SwapExtensionBothFull) { |
- unittest::TestAllExtensions message1; |
- unittest::TestAllExtensions message2; |
- |
- TestUtil::SetAllExtensions(&message1); |
- TestUtil::SetAllExtensions(&message2); |
- |
- const Reflection* reflection = message1.GetReflection(); |
- vector<const FieldDescriptor*> fields; |
- reflection->ListFields(message1, &fields); |
- |
- reflection->SwapFields(&message1, &message2, fields); |
- |
- TestUtil::ExpectAllExtensionsSet(message1); |
- TestUtil::ExpectAllExtensionsSet(message2); |
-} |
- |
-TEST(ExtensionSetTest, ArenaSetAllExtension) { |
- ::google::protobuf::Arena arena1; |
- unittest::TestAllExtensions* message1 = |
- ::google::protobuf::Arena::CreateMessage<unittest::TestAllExtensions>(&arena1); |
- TestUtil::SetAllExtensions(message1); |
- TestUtil::ExpectAllExtensionsSet(*message1); |
-} |
- |
-TEST(ExtensionSetTest, ArenaCopyConstructor) { |
- ::google::protobuf::Arena arena1; |
- unittest::TestAllExtensions* message1 = |
- ::google::protobuf::Arena::CreateMessage<unittest::TestAllExtensions>(&arena1); |
- TestUtil::SetAllExtensions(message1); |
- unittest::TestAllExtensions message2(*message1); |
- arena1.Reset(); |
- TestUtil::ExpectAllExtensionsSet(message2); |
-} |
- |
-TEST(ExtensionSetTest, ArenaMergeFrom) { |
- ::google::protobuf::Arena arena1; |
- unittest::TestAllExtensions* message1 = |
- ::google::protobuf::Arena::CreateMessage<unittest::TestAllExtensions>(&arena1); |
- TestUtil::SetAllExtensions(message1); |
- unittest::TestAllExtensions message2; |
- message2.MergeFrom(*message1); |
- arena1.Reset(); |
- TestUtil::ExpectAllExtensionsSet(message2); |
-} |
- |
-TEST(ExtensionSetTest, ArenaSetAllocatedMessageAndRelease) { |
- ::google::protobuf::Arena arena; |
- unittest::TestAllExtensions* message = |
- ::google::protobuf::Arena::CreateMessage<unittest::TestAllExtensions>(&arena); |
- EXPECT_FALSE(message->HasExtension( |
- unittest::optional_foreign_message_extension)); |
- // Add a extension using SetAllocatedExtension |
- unittest::ForeignMessage* foreign_message = new unittest::ForeignMessage(); |
- message->SetAllocatedExtension(unittest::optional_foreign_message_extension, |
- foreign_message); |
- // foreign_message is copied underneath, as foreign_message is on heap |
- // and extension_set is on an arena. |
- EXPECT_NE(foreign_message, |
- message->MutableExtension( |
- unittest::optional_foreign_message_extension)); |
- |
- // Underlying message is copied, and returned. |
- unittest::ForeignMessage* released_message = message->ReleaseExtension( |
- unittest::optional_foreign_message_extension); |
- delete released_message; |
- EXPECT_FALSE(message->HasExtension( |
- unittest::optional_foreign_message_extension)); |
-} |
- |
-TEST(ExtensionSetTest, SwapExtensionBothFullWithArena) { |
- ::google::protobuf::Arena arena1; |
- google::protobuf::scoped_ptr<google::protobuf::Arena> arena2(new ::google::protobuf::Arena()); |
- |
- unittest::TestAllExtensions* message1 = |
- Arena::CreateMessage<unittest::TestAllExtensions>(&arena1); |
- unittest::TestAllExtensions* message2 = |
- Arena::CreateMessage<unittest::TestAllExtensions>(arena2.get()); |
- |
- TestUtil::SetAllExtensions(message1); |
- TestUtil::SetAllExtensions(message2); |
- message1->SetExtension(unittest::optional_int32_extension, 1); |
- message2->SetExtension(unittest::optional_int32_extension, 2); |
- message1->Swap(message2); |
- EXPECT_EQ(2, message1->GetExtension(unittest::optional_int32_extension)); |
- EXPECT_EQ(1, message2->GetExtension(unittest::optional_int32_extension)); |
- // Re-set the original values so ExpectAllExtensionsSet is happy. |
- message1->SetExtension(unittest::optional_int32_extension, 101); |
- message2->SetExtension(unittest::optional_int32_extension, 101); |
- TestUtil::ExpectAllExtensionsSet(*message1); |
- TestUtil::ExpectAllExtensionsSet(*message2); |
- arena2.reset(NULL); |
- TestUtil::ExpectAllExtensionsSet(*message1); |
- // Test corner cases, when one is empty and other is not. |
- ::google::protobuf::Arena arena3, arena4; |
- |
- unittest::TestAllExtensions* message3 = |
- Arena::CreateMessage<unittest::TestAllExtensions>(&arena3); |
- unittest::TestAllExtensions* message4 = |
- Arena::CreateMessage<unittest::TestAllExtensions>(&arena4); |
- TestUtil::SetAllExtensions(message3); |
- message3->Swap(message4); |
- arena3.Reset(); |
- TestUtil::ExpectAllExtensionsSet(*message4); |
-} |
- |
-TEST(ExtensionSetTest, SwapFieldsOfExtensionBothFullWithArena) { |
- google::protobuf::Arena arena1; |
- google::protobuf::Arena* arena2 = new ::google::protobuf::Arena(); |
- |
- unittest::TestAllExtensions* message1 = |
- Arena::CreateMessage<unittest::TestAllExtensions>(&arena1); |
- unittest::TestAllExtensions* message2 = |
- Arena::CreateMessage<unittest::TestAllExtensions>(arena2); |
- |
- TestUtil::SetAllExtensions(message1); |
- TestUtil::SetAllExtensions(message2); |
- |
- const Reflection* reflection = message1->GetReflection(); |
- vector<const FieldDescriptor*> fields; |
- reflection->ListFields(*message1, &fields); |
- reflection->SwapFields(message1, message2, fields); |
- TestUtil::ExpectAllExtensionsSet(*message1); |
- TestUtil::ExpectAllExtensionsSet(*message2); |
- delete arena2; |
- TestUtil::ExpectAllExtensionsSet(*message1); |
-} |
- |
-TEST(ExtensionSetTest, SwapExtensionWithSelf) { |
- unittest::TestAllExtensions message1; |
- |
- TestUtil::SetAllExtensions(&message1); |
- |
- vector<const FieldDescriptor*> fields; |
- const Reflection* reflection = message1.GetReflection(); |
- reflection->ListFields(message1, &fields); |
- reflection->SwapFields(&message1, &message1, fields); |
- |
- TestUtil::ExpectAllExtensionsSet(message1); |
-} |
- |
TEST(ExtensionSetTest, SerializationToArray) { |
// Serialize as TestAllExtensions and parse as TestAllTypes to insure wire |
// compatibility of extensions. |
@@ -541,7 +353,6 @@ TEST(ExtensionSetTest, Parsing) { |
TestUtil::SetAllFields(&source); |
source.SerializeToString(&data); |
EXPECT_TRUE(destination.ParseFromString(data)); |
- TestUtil::SetOneofFields(&destination); |
TestUtil::ExpectAllExtensionsSet(destination); |
} |
@@ -557,48 +368,6 @@ TEST(ExtensionSetTest, PackedParsing) { |
TestUtil::ExpectPackedExtensionsSet(destination); |
} |
-TEST(ExtensionSetTest, PackedToUnpackedParsing) { |
- unittest::TestPackedTypes source; |
- unittest::TestUnpackedExtensions destination; |
- string data; |
- |
- TestUtil::SetPackedFields(&source); |
- source.SerializeToString(&data); |
- EXPECT_TRUE(destination.ParseFromString(data)); |
- TestUtil::ExpectUnpackedExtensionsSet(destination); |
- |
- // Reserialize |
- unittest::TestUnpackedTypes unpacked; |
- TestUtil::SetUnpackedFields(&unpacked); |
- EXPECT_TRUE(unpacked.SerializeAsString() == destination.SerializeAsString()); |
- |
- // Make sure we can add extensions. |
- destination.AddExtension(unittest::unpacked_int32_extension, 1); |
- destination.AddExtension(unittest::unpacked_enum_extension, |
- protobuf_unittest::FOREIGN_BAR); |
-} |
- |
-TEST(ExtensionSetTest, UnpackedToPackedParsing) { |
- unittest::TestUnpackedTypes source; |
- unittest::TestPackedExtensions destination; |
- string data; |
- |
- TestUtil::SetUnpackedFields(&source); |
- source.SerializeToString(&data); |
- EXPECT_TRUE(destination.ParseFromString(data)); |
- TestUtil::ExpectPackedExtensionsSet(destination); |
- |
- // Reserialize |
- unittest::TestPackedTypes packed; |
- TestUtil::SetPackedFields(&packed); |
- EXPECT_TRUE(packed.SerializeAsString() == destination.SerializeAsString()); |
- |
- // Make sure we can add extensions. |
- destination.AddExtension(unittest::packed_int32_extension, 1); |
- destination.AddExtension(unittest::packed_enum_extension, |
- protobuf_unittest::FOREIGN_BAR); |
-} |
- |
TEST(ExtensionSetTest, IsInitialized) { |
// Test that IsInitialized() returns false if required fields in nested |
// extensions are missing. |
@@ -781,256 +550,6 @@ TEST(ExtensionSetTest, SpaceUsedExcludingSelf) { |
} |
} |
-// N.B.: We do not test range-based for here because we remain C++03 compatible. |
-template<typename T, typename M, typename ID> |
-inline T SumAllExtensions(const M& message, ID extension, T zero) { |
- T sum = zero; |
- typename RepeatedField<T>::const_iterator iter = |
- message.GetRepeatedExtension(extension).begin(); |
- typename RepeatedField<T>::const_iterator end = |
- message.GetRepeatedExtension(extension).end(); |
- for (; iter != end; ++iter) { |
- sum += *iter; |
- } |
- return sum; |
-} |
- |
-template<typename T, typename M, typename ID> |
-inline void IncAllExtensions(M* message, ID extension, |
- T val) { |
- typename RepeatedField<T>::iterator iter = |
- message->MutableRepeatedExtension(extension)->begin(); |
- typename RepeatedField<T>::iterator end = |
- message->MutableRepeatedExtension(extension)->end(); |
- for (; iter != end; ++iter) { |
- *iter += val; |
- } |
-} |
- |
-TEST(ExtensionSetTest, RepeatedFields) { |
- unittest::TestAllExtensions message; |
- |
- // Test empty repeated-field case (b/12926163) |
- ASSERT_EQ(0, message.GetRepeatedExtension( |
- unittest::repeated_int32_extension).size()); |
- ASSERT_EQ(0, message.GetRepeatedExtension( |
- unittest::repeated_nested_enum_extension).size()); |
- ASSERT_EQ(0, message.GetRepeatedExtension( |
- unittest::repeated_string_extension).size()); |
- ASSERT_EQ(0, message.GetRepeatedExtension( |
- unittest::repeated_nested_message_extension).size()); |
- |
- unittest::TestAllTypes::NestedMessage nested_message; |
- nested_message.set_bb(42); |
- unittest::TestAllTypes::NestedEnum nested_enum = |
- unittest::TestAllTypes::NestedEnum_MIN; |
- |
- for (int i = 0; i < 10; ++i) { |
- message.AddExtension(unittest::repeated_int32_extension, 1); |
- message.AddExtension(unittest::repeated_int64_extension, 2); |
- message.AddExtension(unittest::repeated_uint32_extension, 3); |
- message.AddExtension(unittest::repeated_uint64_extension, 4); |
- message.AddExtension(unittest::repeated_sint32_extension, 5); |
- message.AddExtension(unittest::repeated_sint64_extension, 6); |
- message.AddExtension(unittest::repeated_fixed32_extension, 7); |
- message.AddExtension(unittest::repeated_fixed64_extension, 8); |
- message.AddExtension(unittest::repeated_sfixed32_extension, 7); |
- message.AddExtension(unittest::repeated_sfixed64_extension, 8); |
- message.AddExtension(unittest::repeated_float_extension, 9.0); |
- message.AddExtension(unittest::repeated_double_extension, 10.0); |
- message.AddExtension(unittest::repeated_bool_extension, true); |
- message.AddExtension(unittest::repeated_nested_enum_extension, nested_enum); |
- message.AddExtension(unittest::repeated_string_extension, |
- ::std::string("test")); |
- message.AddExtension(unittest::repeated_bytes_extension, |
- ::std::string("test\xFF")); |
- message.AddExtension( |
- unittest::repeated_nested_message_extension)->CopyFrom(nested_message); |
- message.AddExtension(unittest::repeated_nested_enum_extension, |
- nested_enum); |
- } |
- |
- ASSERT_EQ(10, SumAllExtensions<int32>( |
- message, unittest::repeated_int32_extension, 0)); |
- IncAllExtensions<int32>( |
- &message, unittest::repeated_int32_extension, 1); |
- ASSERT_EQ(20, SumAllExtensions<int32>( |
- message, unittest::repeated_int32_extension, 0)); |
- |
- ASSERT_EQ(20, SumAllExtensions<int64>( |
- message, unittest::repeated_int64_extension, 0)); |
- IncAllExtensions<int64>( |
- &message, unittest::repeated_int64_extension, 1); |
- ASSERT_EQ(30, SumAllExtensions<int64>( |
- message, unittest::repeated_int64_extension, 0)); |
- |
- ASSERT_EQ(30, SumAllExtensions<uint32>( |
- message, unittest::repeated_uint32_extension, 0)); |
- IncAllExtensions<uint32>( |
- &message, unittest::repeated_uint32_extension, 1); |
- ASSERT_EQ(40, SumAllExtensions<uint32>( |
- message, unittest::repeated_uint32_extension, 0)); |
- |
- ASSERT_EQ(40, SumAllExtensions<uint64>( |
- message, unittest::repeated_uint64_extension, 0)); |
- IncAllExtensions<uint64>( |
- &message, unittest::repeated_uint64_extension, 1); |
- ASSERT_EQ(50, SumAllExtensions<uint64>( |
- message, unittest::repeated_uint64_extension, 0)); |
- |
- ASSERT_EQ(50, SumAllExtensions<int32>( |
- message, unittest::repeated_sint32_extension, 0)); |
- IncAllExtensions<int32>( |
- &message, unittest::repeated_sint32_extension, 1); |
- ASSERT_EQ(60, SumAllExtensions<int32>( |
- message, unittest::repeated_sint32_extension, 0)); |
- |
- ASSERT_EQ(60, SumAllExtensions<int64>( |
- message, unittest::repeated_sint64_extension, 0)); |
- IncAllExtensions<int64>( |
- &message, unittest::repeated_sint64_extension, 1); |
- ASSERT_EQ(70, SumAllExtensions<int64>( |
- message, unittest::repeated_sint64_extension, 0)); |
- |
- ASSERT_EQ(70, SumAllExtensions<uint32>( |
- message, unittest::repeated_fixed32_extension, 0)); |
- IncAllExtensions<uint32>( |
- &message, unittest::repeated_fixed32_extension, 1); |
- ASSERT_EQ(80, SumAllExtensions<uint32>( |
- message, unittest::repeated_fixed32_extension, 0)); |
- |
- ASSERT_EQ(80, SumAllExtensions<uint64>( |
- message, unittest::repeated_fixed64_extension, 0)); |
- IncAllExtensions<uint64>( |
- &message, unittest::repeated_fixed64_extension, 1); |
- ASSERT_EQ(90, SumAllExtensions<uint64>( |
- message, unittest::repeated_fixed64_extension, 0)); |
- |
- // Usually, floating-point arithmetic cannot be trusted to be exact, so it is |
- // a Bad Idea to assert equality in a test like this. However, we're dealing |
- // with integers with a small number of significant mantissa bits, so we |
- // should actually have exact precision here. |
- ASSERT_EQ(90, SumAllExtensions<float>( |
- message, unittest::repeated_float_extension, 0)); |
- IncAllExtensions<float>( |
- &message, unittest::repeated_float_extension, 1); |
- ASSERT_EQ(100, SumAllExtensions<float>( |
- message, unittest::repeated_float_extension, 0)); |
- |
- ASSERT_EQ(100, SumAllExtensions<double>( |
- message, unittest::repeated_double_extension, 0)); |
- IncAllExtensions<double>( |
- &message, unittest::repeated_double_extension, 1); |
- ASSERT_EQ(110, SumAllExtensions<double>( |
- message, unittest::repeated_double_extension, 0)); |
- |
- RepeatedPtrField< ::std::string>::iterator string_iter; |
- RepeatedPtrField< ::std::string>::iterator string_end; |
- for (string_iter = message.MutableRepeatedExtension( |
- unittest::repeated_string_extension)->begin(), |
- string_end = message.MutableRepeatedExtension( |
- unittest::repeated_string_extension)->end(); |
- string_iter != string_end; ++string_iter) { |
- *string_iter += "test"; |
- } |
- RepeatedPtrField< ::std::string>::const_iterator string_const_iter; |
- RepeatedPtrField< ::std::string>::const_iterator string_const_end; |
- for (string_const_iter = message.GetRepeatedExtension( |
- unittest::repeated_string_extension).begin(), |
- string_const_end = message.GetRepeatedExtension( |
- unittest::repeated_string_extension).end(); |
- string_iter != string_end; ++string_iter) { |
- ASSERT_TRUE(*string_iter == "testtest"); |
- } |
- |
- RepeatedField<unittest::TestAllTypes_NestedEnum>::iterator enum_iter; |
- RepeatedField<unittest::TestAllTypes_NestedEnum>::iterator enum_end; |
- for (enum_iter = message.MutableRepeatedExtension( |
- unittest::repeated_nested_enum_extension)->begin(), |
- enum_end = message.MutableRepeatedExtension( |
- unittest::repeated_nested_enum_extension)->end(); |
- enum_iter != enum_end; ++enum_iter) { |
- *enum_iter = unittest::TestAllTypes::NestedEnum_MAX; |
- } |
- RepeatedField<unittest::TestAllTypes_NestedEnum>::const_iterator |
- enum_const_iter; |
- RepeatedField<unittest::TestAllTypes_NestedEnum>::const_iterator |
- enum_const_end; |
- for (enum_const_iter = message.GetRepeatedExtension( |
- unittest::repeated_nested_enum_extension).begin(), |
- enum_const_end = message.GetRepeatedExtension( |
- unittest::repeated_nested_enum_extension).end(); |
- enum_iter != enum_end; ++enum_iter) { |
- ASSERT_EQ(*enum_const_iter, unittest::TestAllTypes::NestedEnum_MAX); |
- } |
- |
- RepeatedPtrField<unittest::TestAllTypes_NestedMessage>::iterator |
- msg_iter; |
- RepeatedPtrField<unittest::TestAllTypes_NestedMessage>::iterator |
- msg_end; |
- for (msg_iter = message.MutableRepeatedExtension( |
- unittest::repeated_nested_message_extension)->begin(), |
- msg_end = message.MutableRepeatedExtension( |
- unittest::repeated_nested_message_extension)->end(); |
- msg_iter != msg_end; ++msg_iter) { |
- msg_iter->set_bb(1234); |
- } |
- RepeatedPtrField<unittest::TestAllTypes_NestedMessage>:: |
- const_iterator msg_const_iter; |
- RepeatedPtrField<unittest::TestAllTypes_NestedMessage>:: |
- const_iterator msg_const_end; |
- for (msg_const_iter = message.GetRepeatedExtension( |
- unittest::repeated_nested_message_extension).begin(), |
- msg_const_end = message.GetRepeatedExtension( |
- unittest::repeated_nested_message_extension).end(); |
- msg_const_iter != msg_const_end; ++msg_const_iter) { |
- ASSERT_EQ(msg_const_iter->bb(), 1234); |
- } |
- |
- // Test range-based for as well, but only if compiled as C++11. |
-#if __cplusplus >= 201103L |
- // Test one primitive field. |
- for (auto& x : *message.MutableRepeatedExtension( |
- unittest::repeated_int32_extension)) { |
- x = 4321; |
- } |
- for (const auto& x : message.GetRepeatedExtension( |
- unittest::repeated_int32_extension)) { |
- ASSERT_EQ(x, 4321); |
- } |
- // Test one string field. |
- for (auto& x : *message.MutableRepeatedExtension( |
- unittest::repeated_string_extension)) { |
- x = "test_range_based_for"; |
- } |
- for (const auto& x : message.GetRepeatedExtension( |
- unittest::repeated_string_extension)) { |
- ASSERT_TRUE(x == "test_range_based_for"); |
- } |
- // Test one message field. |
- for (auto& x : *message.MutableRepeatedExtension( |
- unittest::repeated_nested_message_extension)) { |
- x.set_bb(4321); |
- } |
- for (const auto& x : *message.MutableRepeatedExtension( |
- unittest::repeated_nested_message_extension)) { |
- ASSERT_EQ(x.bb(), 4321); |
- } |
-#endif |
-} |
- |
-// From b/12926163 |
-TEST(ExtensionSetTest, AbsentExtension) { |
- unittest::TestAllExtensions message; |
- message.MutableRepeatedExtension(unittest::repeated_nested_message_extension) |
- ->Add()->set_bb(123); |
- ASSERT_EQ(1, message.ExtensionSize( |
- unittest::repeated_nested_message_extension)); |
- EXPECT_EQ( |
- 123, message.GetExtension( |
- unittest::repeated_nested_message_extension, 0).bb()); |
-} |
- |
#ifdef PROTOBUF_HAS_DEATH_TEST |
TEST(ExtensionSetTest, InvalidEnumDeath) { |