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

Unified Diff: third_party/protobuf/src/google/protobuf/repeated_field_unittest.cc

Issue 2495533002: third_party/protobuf: Update to HEAD (83d681ee2c) (Closed)
Patch Set: Make chrome settings proto generated file a component Created 4 years 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 side-by-side diff with in-line comments
Download patch
Index: third_party/protobuf/src/google/protobuf/repeated_field_unittest.cc
diff --git a/third_party/protobuf/src/google/protobuf/repeated_field_unittest.cc b/third_party/protobuf/src/google/protobuf/repeated_field_unittest.cc
index 39b24b3375ee35ef0ee5e823322f2ae0a8a498b4..ec1074c9cec16d9325afe44b667e79fba93fc4b4 100644
--- a/third_party/protobuf/src/google/protobuf/repeated_field_unittest.cc
+++ b/third_party/protobuf/src/google/protobuf/repeated_field_unittest.cc
@@ -95,7 +95,7 @@ TEST(RepeatedField, Small) {
EXPECT_EQ(field.size(), 0);
// Additional bytes are for 'struct Rep' header.
int expected_usage = 4 * sizeof(int) + sizeof(Arena*);
- EXPECT_EQ(field.SpaceUsedExcludingSelf(), expected_usage);
+ EXPECT_GE(field.SpaceUsedExcludingSelf(), expected_usage);
}
@@ -207,7 +207,7 @@ TEST(RepeatedField, ReserveMoreThanDouble) {
RepeatedField<int> field;
field.Reserve(20);
- EXPECT_EQ(20, ReservedSpace(&field));
+ EXPECT_LE(20, ReservedSpace(&field));
}
TEST(RepeatedField, ReserveLessThanDouble) {
@@ -215,9 +215,10 @@ TEST(RepeatedField, ReserveLessThanDouble) {
// field to grow by double instead.
RepeatedField<int> field;
field.Reserve(20);
- field.Reserve(30);
+ int capacity = field.Capacity();
+ field.Reserve(capacity * 1.5);
- EXPECT_EQ(40, ReservedSpace(&field));
+ EXPECT_LE(2 * capacity, ReservedSpace(&field));
}
TEST(RepeatedField, ReserveLessThanExisting) {
@@ -229,7 +230,7 @@ TEST(RepeatedField, ReserveLessThanExisting) {
field.Reserve(10);
EXPECT_EQ(previous_ptr, field.data());
- EXPECT_EQ(20, ReservedSpace(&field));
+ EXPECT_LE(20, ReservedSpace(&field));
}
TEST(RepeatedField, Resize) {
@@ -267,11 +268,13 @@ TEST(RepeatedField, MergeFrom) {
}
#ifdef PROTOBUF_HAS_DEATH_TEST
+#ifndef NDEBUG
TEST(RepeatedField, MergeFromSelf) {
RepeatedField<int> me;
me.Add(3);
EXPECT_DEATH(me.MergeFrom(me), "");
}
+#endif // NDEBUG
#endif // PROTOBUF_HAS_DEATH_TEST
TEST(RepeatedField, CopyFrom) {
@@ -343,7 +346,7 @@ TEST(RepeatedField, CopyConstruct) {
}
TEST(RepeatedField, IteratorConstruct) {
- vector<int> values;
+ std::vector<int> values;
values.push_back(1);
values.push_back(2);
@@ -397,6 +400,16 @@ TEST(RepeatedField, MutableDataIsMutable) {
EXPECT_EQ(2, field.Get(0));
}
+TEST(RepeatedField, SubscriptOperators) {
+ RepeatedField<int> field;
+ field.Add(1);
+ EXPECT_EQ(1, field.Get(0));
+ EXPECT_EQ(1, field[0]);
+ EXPECT_EQ(field.Mutable(0), &field[0]);
+ const RepeatedField<int>& const_field = field;
+ EXPECT_EQ(field.data(), &const_field[0]);
+}
+
TEST(RepeatedField, Truncate) {
RepeatedField<int> field;
@@ -470,11 +483,11 @@ TEST(RepeatedField, ClearThenReserveMore) {
EXPECT_EQ(32, field.size());
field.Clear();
EXPECT_EQ(0, field.size());
- EXPECT_EQ(32, field.Capacity());
+ EXPECT_LE(32, field.Capacity());
field.Reserve(1024);
EXPECT_EQ(0, field.size());
- EXPECT_EQ(1024, field.Capacity());
+ EXPECT_LE(1024, field.Capacity());
// Finish test -- |field| should destroy the cleared-but-not-yet-destroyed
// strings.
}
@@ -629,15 +642,18 @@ TEST(RepeatedPtrField, ReserveMoreThanDouble) {
RepeatedPtrField<string> field;
field.Reserve(20);
- EXPECT_EQ(20, ReservedSpace(&field));
+ EXPECT_LE(20, ReservedSpace(&field));
}
TEST(RepeatedPtrField, ReserveLessThanDouble) {
RepeatedPtrField<string> field;
field.Reserve(20);
- field.Reserve(30);
- EXPECT_EQ(40, ReservedSpace(&field));
+ int capacity = field.Capacity();
+ // Grow by 1.5x
+ field.Reserve(capacity + (capacity >> 2));
+
+ EXPECT_LE(2 * capacity, ReservedSpace(&field));
}
TEST(RepeatedPtrField, ReserveLessThanExisting) {
@@ -647,7 +663,7 @@ TEST(RepeatedPtrField, ReserveLessThanExisting) {
field.Reserve(10);
EXPECT_EQ(previous_ptr, field.data());
- EXPECT_EQ(20, ReservedSpace(&field));
+ EXPECT_LE(20, ReservedSpace(&field));
}
TEST(RepeatedPtrField, ReserveDoesntLoseAllocated) {
@@ -844,7 +860,7 @@ TEST(RepeatedPtrField, CopyConstruct) {
}
TEST(RepeatedPtrField, IteratorConstruct_String) {
- vector<string> values;
+ std::vector<string> values;
values.push_back("1");
values.push_back("2");
@@ -861,7 +877,7 @@ TEST(RepeatedPtrField, IteratorConstruct_String) {
TEST(RepeatedPtrField, IteratorConstruct_Proto) {
typedef TestAllTypes::NestedMessage Nested;
- vector<Nested> values;
+ std::vector<Nested> values;
values.push_back(Nested());
values.back().set_bb(1);
values.push_back(Nested());
@@ -918,6 +934,16 @@ TEST(RepeatedPtrField, MutableDataIsMutable) {
EXPECT_EQ("2", field.Get(0));
}
+TEST(RepeatedPtrField, SubscriptOperators) {
+ RepeatedPtrField<string> field;
+ *field.Add() = "1";
+ EXPECT_EQ("1", field.Get(0));
+ EXPECT_EQ("1", field[0]);
+ EXPECT_EQ(field.Mutable(0), &field[0]);
+ const RepeatedPtrField<string>& const_field = field;
+ EXPECT_EQ(*field.data(), &const_field[0]);
+}
+
TEST(RepeatedPtrField, ExtractSubrange) {
// Exhaustively test every subrange in arrays of all sizes from 0 through 9
// with 0 through 3 cleared elements at the end.
@@ -925,7 +951,7 @@ TEST(RepeatedPtrField, ExtractSubrange) {
for (int num = 0; num <= sz; ++num) {
for (int start = 0; start < sz - num; ++start) {
for (int extra = 0; extra < 4; ++extra) {
- vector<string*> subject;
+ std::vector<string*> subject;
// Create an array with "sz" elements and "extra" cleared elements.
RepeatedPtrField<string> field;
@@ -1487,7 +1513,7 @@ TEST_F(RepeatedFieldInsertionIteratorsTest, Nesteds) {
TEST_F(RepeatedFieldInsertionIteratorsTest,
AllocatedRepeatedPtrFieldWithStringIntData) {
- vector<Nested*> data;
+ std::vector<Nested*> data;
TestAllTypes goldenproto;
for (int i = 0; i < 10; ++i) {
Nested* new_data = new Nested;
@@ -1506,7 +1532,7 @@ TEST_F(RepeatedFieldInsertionIteratorsTest,
TEST_F(RepeatedFieldInsertionIteratorsTest,
AllocatedRepeatedPtrFieldWithString) {
- vector<string*> data;
+ std::vector<string*> data;
TestAllTypes goldenproto;
for (int i = 0; i < 10; ++i) {
string* new_data = new string;
@@ -1524,7 +1550,7 @@ TEST_F(RepeatedFieldInsertionIteratorsTest,
TEST_F(RepeatedFieldInsertionIteratorsTest,
UnsafeArenaAllocatedRepeatedPtrFieldWithStringIntData) {
- vector<Nested*> data;
+ std::vector<Nested*> data;
TestAllTypes goldenproto;
for (int i = 0; i < 10; ++i) {
Nested* new_data = new Nested;
@@ -1543,7 +1569,7 @@ TEST_F(RepeatedFieldInsertionIteratorsTest,
TEST_F(RepeatedFieldInsertionIteratorsTest,
UnsafeArenaAllocatedRepeatedPtrFieldWithString) {
- vector<string*> data;
+ std::vector<string*> data;
TestAllTypes goldenproto;
for (int i = 0; i < 10; ++i) {
string* new_data = new string;

Powered by Google App Engine
This is Rietveld 408576698