| Index: third_party/protobuf/src/google/protobuf/compiler/cpp/cpp_unittest.cc
|
| diff --git a/third_party/protobuf/src/google/protobuf/compiler/cpp/cpp_unittest.cc b/third_party/protobuf/src/google/protobuf/compiler/cpp/cpp_unittest.cc
|
| index a7e852de264f4f027d9ff5e67eae15d3200f1b97..301a7ce677e6c4ff43dcc451e2728902f494d48e 100644
|
| --- a/third_party/protobuf/src/google/protobuf/compiler/cpp/cpp_unittest.cc
|
| +++ b/third_party/protobuf/src/google/protobuf/compiler/cpp/cpp_unittest.cc
|
| @@ -167,6 +167,13 @@ TEST(GeneratedMessageTest, FloatingPointDefaults) {
|
| EXPECT_TRUE(extreme_default.nan_float() != extreme_default.nan_float());
|
| }
|
|
|
| +TEST(GeneratedMessageTest, Trigraph) {
|
| + const unittest::TestExtremeDefaultValues& extreme_default =
|
| + unittest::TestExtremeDefaultValues::default_instance();
|
| +
|
| + EXPECT_EQ("? ? ?? ?? ??? ?\?/ ?\?-", extreme_default.cpp_trigraph());
|
| +}
|
| +
|
| TEST(GeneratedMessageTest, Accessors) {
|
| // Set every field to a unique value then go back and check all those
|
| // values.
|
| @@ -195,6 +202,48 @@ TEST(GeneratedMessageTest, MutableStringDefault) {
|
| EXPECT_EQ("hello", *message.mutable_default_string());
|
| }
|
|
|
| +TEST(GeneratedMessageTest, ReleaseString) {
|
| + // Check that release_foo() starts out NULL, and gives us a value
|
| + // that we can delete after it's been set.
|
| + unittest::TestAllTypes message;
|
| +
|
| + EXPECT_EQ(NULL, message.release_default_string());
|
| + EXPECT_FALSE(message.has_default_string());
|
| + EXPECT_EQ("hello", message.default_string());
|
| +
|
| + message.set_default_string("blah");
|
| + EXPECT_TRUE(message.has_default_string());
|
| + string* str = message.release_default_string();
|
| + EXPECT_FALSE(message.has_default_string());
|
| + ASSERT_TRUE(str != NULL);
|
| + EXPECT_EQ("blah", *str);
|
| + delete str;
|
| +
|
| + EXPECT_EQ(NULL, message.release_default_string());
|
| + EXPECT_FALSE(message.has_default_string());
|
| + EXPECT_EQ("hello", message.default_string());
|
| +}
|
| +
|
| +TEST(GeneratedMessageTest, ReleaseMessage) {
|
| + // Check that release_foo() starts out NULL, and gives us a value
|
| + // that we can delete after it's been set.
|
| + unittest::TestAllTypes message;
|
| +
|
| + EXPECT_EQ(NULL, message.release_optional_nested_message());
|
| + EXPECT_FALSE(message.has_optional_nested_message());
|
| +
|
| + message.mutable_optional_nested_message()->set_bb(1);
|
| + unittest::TestAllTypes::NestedMessage* nest =
|
| + message.release_optional_nested_message();
|
| + EXPECT_FALSE(message.has_optional_nested_message());
|
| + ASSERT_TRUE(nest != NULL);
|
| + EXPECT_EQ(1, nest->bb());
|
| + delete nest;
|
| +
|
| + EXPECT_EQ(NULL, message.release_optional_nested_message());
|
| + EXPECT_FALSE(message.has_optional_nested_message());
|
| +}
|
| +
|
| TEST(GeneratedMessageTest, Clear) {
|
| // Set every field to a unique value, clear the message, then check that
|
| // it is cleared.
|
| @@ -282,6 +331,7 @@ TEST(GeneratedMessageTest, CopyFrom) {
|
| TestUtil::ExpectAllFieldsSet(message2);
|
| }
|
|
|
| +
|
| TEST(GeneratedMessageTest, SwapWithEmpty) {
|
| unittest::TestAllTypes message1, message2;
|
| TestUtil::SetAllFields(&message1);
|
| @@ -376,7 +426,7 @@ TEST(GeneratedMessageTest, CopyAssignmentOperator) {
|
| TestUtil::ExpectAllFieldsSet(message2);
|
|
|
| // Make sure that self-assignment does something sane.
|
| - message2 = message2;
|
| + message2.operator=(message2);
|
| TestUtil::ExpectAllFieldsSet(message2);
|
| }
|
|
|
| @@ -718,6 +768,7 @@ TEST(GeneratedMessageTest, TestSpaceUsed) {
|
|
|
| #endif // !PROTOBUF_TEST_NO_DESCRIPTORS
|
|
|
| +
|
| TEST(GeneratedMessageTest, FieldConstantValues) {
|
| unittest::TestRequired message;
|
| EXPECT_EQ(unittest::TestAllTypes_NestedMessage::kBbFieldNumber, 1);
|
| @@ -809,14 +860,14 @@ TEST(GeneratedEnumTest, MinAndMax) {
|
| EXPECT_EQ(12589235, unittest::TestSparseEnum_ARRAYSIZE);
|
|
|
| // Make sure we can take the address of _MIN, _MAX and _ARRAYSIZE.
|
| - void* nullptr = 0; // NULL may be integer-type, not pointer-type.
|
| - EXPECT_NE(nullptr, &unittest::TestAllTypes::NestedEnum_MIN);
|
| - EXPECT_NE(nullptr, &unittest::TestAllTypes::NestedEnum_MAX);
|
| - EXPECT_NE(nullptr, &unittest::TestAllTypes::NestedEnum_ARRAYSIZE);
|
| -
|
| - EXPECT_NE(nullptr, &unittest::ForeignEnum_MIN);
|
| - EXPECT_NE(nullptr, &unittest::ForeignEnum_MAX);
|
| - EXPECT_NE(nullptr, &unittest::ForeignEnum_ARRAYSIZE);
|
| + void* null_pointer = 0; // NULL may be integer-type, not pointer-type.
|
| + EXPECT_NE(null_pointer, &unittest::TestAllTypes::NestedEnum_MIN);
|
| + EXPECT_NE(null_pointer, &unittest::TestAllTypes::NestedEnum_MAX);
|
| + EXPECT_NE(null_pointer, &unittest::TestAllTypes::NestedEnum_ARRAYSIZE);
|
| +
|
| + EXPECT_NE(null_pointer, &unittest::ForeignEnum_MIN);
|
| + EXPECT_NE(null_pointer, &unittest::ForeignEnum_MAX);
|
| + EXPECT_NE(null_pointer, &unittest::ForeignEnum_ARRAYSIZE);
|
|
|
| // Make sure we can use _MIN, _MAX and _ARRAYSIZE as switch cases.
|
| switch (unittest::SPARSE_A) {
|
|
|