Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1259)

Side by Side Diff: third_party/protobuf/src/google/protobuf/compiler/cpp/cpp_unittest.cc

Issue 6737030: third_party/protobuf: update to upstream r371 (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 9 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Protocol Buffers - Google's data interchange format 1 // Protocol Buffers - Google's data interchange format
2 // Copyright 2008 Google Inc. All rights reserved. 2 // Copyright 2008 Google Inc. All rights reserved.
3 // http://code.google.com/p/protobuf/ 3 // http://code.google.com/p/protobuf/
4 // 4 //
5 // Redistribution and use in source and binary forms, with or without 5 // Redistribution and use in source and binary forms, with or without
6 // modification, are permitted provided that the following conditions are 6 // modification, are permitted provided that the following conditions are
7 // met: 7 // met:
8 // 8 //
9 // * Redistributions of source code must retain the above copyright 9 // * Redistributions of source code must retain the above copyright
10 // notice, this list of conditions and the following disclaimer. 10 // notice, this list of conditions and the following disclaimer.
(...skipping 149 matching lines...) Expand 10 before | Expand all | Expand 10 after
160 EXPECT_EQ(-numeric_limits<double>::infinity(), 160 EXPECT_EQ(-numeric_limits<double>::infinity(),
161 extreme_default.neg_inf_double()); 161 extreme_default.neg_inf_double());
162 EXPECT_TRUE(extreme_default.nan_double() != extreme_default.nan_double()); 162 EXPECT_TRUE(extreme_default.nan_double() != extreme_default.nan_double());
163 EXPECT_EQ(numeric_limits<float>::infinity(), 163 EXPECT_EQ(numeric_limits<float>::infinity(),
164 extreme_default.inf_float()); 164 extreme_default.inf_float());
165 EXPECT_EQ(-numeric_limits<float>::infinity(), 165 EXPECT_EQ(-numeric_limits<float>::infinity(),
166 extreme_default.neg_inf_float()); 166 extreme_default.neg_inf_float());
167 EXPECT_TRUE(extreme_default.nan_float() != extreme_default.nan_float()); 167 EXPECT_TRUE(extreme_default.nan_float() != extreme_default.nan_float());
168 } 168 }
169 169
170 TEST(GeneratedMessageTest, Trigraph) {
171 const unittest::TestExtremeDefaultValues& extreme_default =
172 unittest::TestExtremeDefaultValues::default_instance();
173
174 EXPECT_EQ("? ? ?? ?? ??? ?\?/ ?\?-", extreme_default.cpp_trigraph());
175 }
176
170 TEST(GeneratedMessageTest, Accessors) { 177 TEST(GeneratedMessageTest, Accessors) {
171 // Set every field to a unique value then go back and check all those 178 // Set every field to a unique value then go back and check all those
172 // values. 179 // values.
173 unittest::TestAllTypes message; 180 unittest::TestAllTypes message;
174 181
175 TestUtil::SetAllFields(&message); 182 TestUtil::SetAllFields(&message);
176 TestUtil::ExpectAllFieldsSet(message); 183 TestUtil::ExpectAllFieldsSet(message);
177 184
178 TestUtil::ModifyRepeatedFields(&message); 185 TestUtil::ModifyRepeatedFields(&message);
179 TestUtil::ExpectRepeatedFieldsModified(message); 186 TestUtil::ExpectRepeatedFieldsModified(message);
180 } 187 }
181 188
182 TEST(GeneratedMessageTest, MutableStringDefault) { 189 TEST(GeneratedMessageTest, MutableStringDefault) {
183 // mutable_foo() for a string should return a string initialized to its 190 // mutable_foo() for a string should return a string initialized to its
184 // default value. 191 // default value.
185 unittest::TestAllTypes message; 192 unittest::TestAllTypes message;
186 193
187 EXPECT_EQ("hello", *message.mutable_default_string()); 194 EXPECT_EQ("hello", *message.mutable_default_string());
188 195
189 // Note that the first time we call mutable_foo(), we get a newly-allocated 196 // Note that the first time we call mutable_foo(), we get a newly-allocated
190 // string, but if we clear it and call it again, we get the same object again. 197 // string, but if we clear it and call it again, we get the same object again.
191 // We should verify that it has its default value in both cases. 198 // We should verify that it has its default value in both cases.
192 message.set_default_string("blah"); 199 message.set_default_string("blah");
193 message.Clear(); 200 message.Clear();
194 201
195 EXPECT_EQ("hello", *message.mutable_default_string()); 202 EXPECT_EQ("hello", *message.mutable_default_string());
196 } 203 }
197 204
205 TEST(GeneratedMessageTest, ReleaseString) {
206 // Check that release_foo() starts out NULL, and gives us a value
207 // that we can delete after it's been set.
208 unittest::TestAllTypes message;
209
210 EXPECT_EQ(NULL, message.release_default_string());
211 EXPECT_FALSE(message.has_default_string());
212 EXPECT_EQ("hello", message.default_string());
213
214 message.set_default_string("blah");
215 EXPECT_TRUE(message.has_default_string());
216 string* str = message.release_default_string();
217 EXPECT_FALSE(message.has_default_string());
218 ASSERT_TRUE(str != NULL);
219 EXPECT_EQ("blah", *str);
220 delete str;
221
222 EXPECT_EQ(NULL, message.release_default_string());
223 EXPECT_FALSE(message.has_default_string());
224 EXPECT_EQ("hello", message.default_string());
225 }
226
227 TEST(GeneratedMessageTest, ReleaseMessage) {
228 // Check that release_foo() starts out NULL, and gives us a value
229 // that we can delete after it's been set.
230 unittest::TestAllTypes message;
231
232 EXPECT_EQ(NULL, message.release_optional_nested_message());
233 EXPECT_FALSE(message.has_optional_nested_message());
234
235 message.mutable_optional_nested_message()->set_bb(1);
236 unittest::TestAllTypes::NestedMessage* nest =
237 message.release_optional_nested_message();
238 EXPECT_FALSE(message.has_optional_nested_message());
239 ASSERT_TRUE(nest != NULL);
240 EXPECT_EQ(1, nest->bb());
241 delete nest;
242
243 EXPECT_EQ(NULL, message.release_optional_nested_message());
244 EXPECT_FALSE(message.has_optional_nested_message());
245 }
246
198 TEST(GeneratedMessageTest, Clear) { 247 TEST(GeneratedMessageTest, Clear) {
199 // Set every field to a unique value, clear the message, then check that 248 // Set every field to a unique value, clear the message, then check that
200 // it is cleared. 249 // it is cleared.
201 unittest::TestAllTypes message; 250 unittest::TestAllTypes message;
202 251
203 TestUtil::SetAllFields(&message); 252 TestUtil::SetAllFields(&message);
204 message.Clear(); 253 message.Clear();
205 TestUtil::ExpectClear(message); 254 TestUtil::ExpectClear(message);
206 255
207 // Unlike with the defaults test, we do NOT expect that requesting embedded 256 // Unlike with the defaults test, we do NOT expect that requesting embedded
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after
275 324
276 TestUtil::SetAllFields(&message1); 325 TestUtil::SetAllFields(&message1);
277 message2.CopyFrom(message1); 326 message2.CopyFrom(message1);
278 TestUtil::ExpectAllFieldsSet(message2); 327 TestUtil::ExpectAllFieldsSet(message2);
279 328
280 // Copying from self should be a no-op. 329 // Copying from self should be a no-op.
281 message2.CopyFrom(message2); 330 message2.CopyFrom(message2);
282 TestUtil::ExpectAllFieldsSet(message2); 331 TestUtil::ExpectAllFieldsSet(message2);
283 } 332 }
284 333
334
285 TEST(GeneratedMessageTest, SwapWithEmpty) { 335 TEST(GeneratedMessageTest, SwapWithEmpty) {
286 unittest::TestAllTypes message1, message2; 336 unittest::TestAllTypes message1, message2;
287 TestUtil::SetAllFields(&message1); 337 TestUtil::SetAllFields(&message1);
288 338
289 TestUtil::ExpectAllFieldsSet(message1); 339 TestUtil::ExpectAllFieldsSet(message1);
290 TestUtil::ExpectClear(message2); 340 TestUtil::ExpectClear(message2);
291 message1.Swap(&message2); 341 message1.Swap(&message2);
292 TestUtil::ExpectAllFieldsSet(message2); 342 TestUtil::ExpectAllFieldsSet(message2);
293 TestUtil::ExpectClear(message1); 343 TestUtil::ExpectClear(message1);
294 } 344 }
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after
369 419
370 TEST(GeneratedMessageTest, CopyAssignmentOperator) { 420 TEST(GeneratedMessageTest, CopyAssignmentOperator) {
371 unittest::TestAllTypes message1; 421 unittest::TestAllTypes message1;
372 TestUtil::SetAllFields(&message1); 422 TestUtil::SetAllFields(&message1);
373 423
374 unittest::TestAllTypes message2; 424 unittest::TestAllTypes message2;
375 message2 = message1; 425 message2 = message1;
376 TestUtil::ExpectAllFieldsSet(message2); 426 TestUtil::ExpectAllFieldsSet(message2);
377 427
378 // Make sure that self-assignment does something sane. 428 // Make sure that self-assignment does something sane.
379 message2 = message2; 429 message2.operator=(message2);
380 TestUtil::ExpectAllFieldsSet(message2); 430 TestUtil::ExpectAllFieldsSet(message2);
381 } 431 }
382 432
383 TEST(GeneratedMessageTest, UpcastCopyFrom) { 433 TEST(GeneratedMessageTest, UpcastCopyFrom) {
384 // Test the CopyFrom method that takes in the generic const Message& 434 // Test the CopyFrom method that takes in the generic const Message&
385 // parameter. 435 // parameter.
386 unittest::TestAllTypes message1, message2; 436 unittest::TestAllTypes message1, message2;
387 437
388 TestUtil::SetAllFields(&message1); 438 TestUtil::SetAllFields(&message1);
389 439
(...skipping 321 matching lines...) Expand 10 before | Expand all | Expand 10 after
711 message1.mutable_optional_nested_message(); 761 message1.mutable_optional_nested_message();
712 ASSERT_EQ(sizeof(unittest::TestAllTypes::NestedMessage), 762 ASSERT_EQ(sizeof(unittest::TestAllTypes::NestedMessage),
713 message1.optional_nested_message().SpaceUsed()); 763 message1.optional_nested_message().SpaceUsed());
714 EXPECT_EQ(previous_size + 764 EXPECT_EQ(previous_size +
715 sizeof(unittest::TestAllTypes::NestedMessage), 765 sizeof(unittest::TestAllTypes::NestedMessage),
716 message1.SpaceUsed()); 766 message1.SpaceUsed());
717 } 767 }
718 768
719 #endif // !PROTOBUF_TEST_NO_DESCRIPTORS 769 #endif // !PROTOBUF_TEST_NO_DESCRIPTORS
720 770
771
721 TEST(GeneratedMessageTest, FieldConstantValues) { 772 TEST(GeneratedMessageTest, FieldConstantValues) {
722 unittest::TestRequired message; 773 unittest::TestRequired message;
723 EXPECT_EQ(unittest::TestAllTypes_NestedMessage::kBbFieldNumber, 1); 774 EXPECT_EQ(unittest::TestAllTypes_NestedMessage::kBbFieldNumber, 1);
724 EXPECT_EQ(unittest::TestAllTypes::kOptionalInt32FieldNumber, 1); 775 EXPECT_EQ(unittest::TestAllTypes::kOptionalInt32FieldNumber, 1);
725 EXPECT_EQ(unittest::TestAllTypes::kOptionalgroupFieldNumber, 16); 776 EXPECT_EQ(unittest::TestAllTypes::kOptionalgroupFieldNumber, 16);
726 EXPECT_EQ(unittest::TestAllTypes::kOptionalNestedMessageFieldNumber, 18); 777 EXPECT_EQ(unittest::TestAllTypes::kOptionalNestedMessageFieldNumber, 18);
727 EXPECT_EQ(unittest::TestAllTypes::kOptionalNestedEnumFieldNumber, 21); 778 EXPECT_EQ(unittest::TestAllTypes::kOptionalNestedEnumFieldNumber, 21);
728 EXPECT_EQ(unittest::TestAllTypes::kRepeatedInt32FieldNumber, 31); 779 EXPECT_EQ(unittest::TestAllTypes::kRepeatedInt32FieldNumber, 31);
729 EXPECT_EQ(unittest::TestAllTypes::kRepeatedgroupFieldNumber, 46); 780 EXPECT_EQ(unittest::TestAllTypes::kRepeatedgroupFieldNumber, 46);
730 EXPECT_EQ(unittest::TestAllTypes::kRepeatedNestedMessageFieldNumber, 48); 781 EXPECT_EQ(unittest::TestAllTypes::kRepeatedNestedMessageFieldNumber, 48);
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after
802 853
803 EXPECT_EQ(1, unittest::TestEnumWithDupValue_MIN); 854 EXPECT_EQ(1, unittest::TestEnumWithDupValue_MIN);
804 EXPECT_EQ(3, unittest::TestEnumWithDupValue_MAX); 855 EXPECT_EQ(3, unittest::TestEnumWithDupValue_MAX);
805 EXPECT_EQ(4, unittest::TestEnumWithDupValue_ARRAYSIZE); 856 EXPECT_EQ(4, unittest::TestEnumWithDupValue_ARRAYSIZE);
806 857
807 EXPECT_EQ(unittest::SPARSE_E, unittest::TestSparseEnum_MIN); 858 EXPECT_EQ(unittest::SPARSE_E, unittest::TestSparseEnum_MIN);
808 EXPECT_EQ(unittest::SPARSE_C, unittest::TestSparseEnum_MAX); 859 EXPECT_EQ(unittest::SPARSE_C, unittest::TestSparseEnum_MAX);
809 EXPECT_EQ(12589235, unittest::TestSparseEnum_ARRAYSIZE); 860 EXPECT_EQ(12589235, unittest::TestSparseEnum_ARRAYSIZE);
810 861
811 // Make sure we can take the address of _MIN, _MAX and _ARRAYSIZE. 862 // Make sure we can take the address of _MIN, _MAX and _ARRAYSIZE.
812 void* nullptr = 0; // NULL may be integer-type, not pointer-type. 863 void* null_pointer = 0; // NULL may be integer-type, not pointer-type.
813 EXPECT_NE(nullptr, &unittest::TestAllTypes::NestedEnum_MIN); 864 EXPECT_NE(null_pointer, &unittest::TestAllTypes::NestedEnum_MIN);
814 EXPECT_NE(nullptr, &unittest::TestAllTypes::NestedEnum_MAX); 865 EXPECT_NE(null_pointer, &unittest::TestAllTypes::NestedEnum_MAX);
815 EXPECT_NE(nullptr, &unittest::TestAllTypes::NestedEnum_ARRAYSIZE); 866 EXPECT_NE(null_pointer, &unittest::TestAllTypes::NestedEnum_ARRAYSIZE);
816 867
817 EXPECT_NE(nullptr, &unittest::ForeignEnum_MIN); 868 EXPECT_NE(null_pointer, &unittest::ForeignEnum_MIN);
818 EXPECT_NE(nullptr, &unittest::ForeignEnum_MAX); 869 EXPECT_NE(null_pointer, &unittest::ForeignEnum_MAX);
819 EXPECT_NE(nullptr, &unittest::ForeignEnum_ARRAYSIZE); 870 EXPECT_NE(null_pointer, &unittest::ForeignEnum_ARRAYSIZE);
820 871
821 // Make sure we can use _MIN, _MAX and _ARRAYSIZE as switch cases. 872 // Make sure we can use _MIN, _MAX and _ARRAYSIZE as switch cases.
822 switch (unittest::SPARSE_A) { 873 switch (unittest::SPARSE_A) {
823 case unittest::TestSparseEnum_MIN: 874 case unittest::TestSparseEnum_MIN:
824 case unittest::TestSparseEnum_MAX: 875 case unittest::TestSparseEnum_MAX:
825 case unittest::TestSparseEnum_ARRAYSIZE: 876 case unittest::TestSparseEnum_ARRAYSIZE:
826 break; 877 break;
827 default: 878 default:
828 break; 879 break;
829 } 880 }
(...skipping 391 matching lines...) Expand 10 before | Expand all | Expand 10 after
1221 DescriptorPool::generated_pool()->InternalIsFileLoaded( 1272 DescriptorPool::generated_pool()->InternalIsFileLoaded(
1222 "google/protobuf/unittest.proto")); 1273 "google/protobuf/unittest.proto"));
1223 } 1274 }
1224 1275
1225 } // namespace cpp_unittest 1276 } // namespace cpp_unittest
1226 1277
1227 } // namespace cpp 1278 } // namespace cpp
1228 } // namespace compiler 1279 } // namespace compiler
1229 } // namespace protobuf 1280 } // namespace protobuf
1230 } // namespace google 1281 } // namespace google
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698