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

Side by Side Diff: cc/base/list_container_unittest.cc

Issue 1340703002: cc: Add RandomAccessListContainer, which has more restricted API. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 3 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
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "cc/base/list_container.h" 5 #include "cc/base/list_container.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <vector> 8 #include <vector>
9 #include "testing/gmock/include/gmock/gmock.h" 9 #include "testing/gmock/include/gmock/gmock.h"
10 #include "testing/gtest/include/gtest/gtest.h" 10 #include "testing/gtest/include/gtest/gtest.h"
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after
79 } 79 }
80 80
81 const int kMagicNumberToUseForSimpleDerivedElementOne = 42; 81 const int kMagicNumberToUseForSimpleDerivedElementOne = 42;
82 const int kMagicNumberToUseForSimpleDerivedElementTwo = 314; 82 const int kMagicNumberToUseForSimpleDerivedElementTwo = 314;
83 const int kMagicNumberToUseForSimpleDerivedElementThree = 1618; 83 const int kMagicNumberToUseForSimpleDerivedElementThree = 1618;
84 84
85 class SimpleDerivedElement : public DerivedElement { 85 class SimpleDerivedElement : public DerivedElement {
86 public: 86 public:
87 ~SimpleDerivedElement() override {} 87 ~SimpleDerivedElement() override {}
88 void set_value(int val) { value = val; } 88 void set_value(int val) { value = val; }
89 int get_value() { return value; } 89 int get_value() const { return value; }
90 90
91 private: 91 private:
92 int value; 92 int value;
93 }; 93 };
94 94
95 class SimpleDerivedElementConstructMagicNumberOne 95 class SimpleDerivedElementConstructMagicNumberOne
96 : public SimpleDerivedElement { 96 : public SimpleDerivedElement {
97 public: 97 public:
98 SimpleDerivedElementConstructMagicNumberOne() { 98 SimpleDerivedElementConstructMagicNumberOne() {
99 set_value(kMagicNumberToUseForSimpleDerivedElementOne); 99 set_value(kMagicNumberToUseForSimpleDerivedElementOne);
(...skipping 1094 matching lines...) Expand 10 before | Expand all | Expand 10 after
1194 // The capacity should shrink with the list. 1194 // The capacity should shrink with the list.
1195 for (int i = 0; i < iterations; i++) { 1195 for (int i = 0; i < iterations; i++) {
1196 size_t capacity = list.GetCapacityInBytes(); 1196 size_t capacity = list.GetCapacityInBytes();
1197 ASSERT_GE(capacity, list.size() * LargestDerivedElementSize()); 1197 ASSERT_GE(capacity, list.size() * LargestDerivedElementSize());
1198 ASSERT_LE(capacity, std::max(list.size(), upper_bound_on_min_capacity) * 1198 ASSERT_LE(capacity, std::max(list.size(), upper_bound_on_min_capacity) *
1199 max_waste_factor * LargestDerivedElementSize()); 1199 max_waste_factor * LargestDerivedElementSize());
1200 list.RemoveLast(); 1200 list.RemoveLast();
1201 } 1201 }
1202 } 1202 }
1203 1203
1204 TEST(RandomAccessListContainerTest, RandomAccess) {
1205 RandomAccessListContainer<SimpleDerivedElement> list(
1206 LargestDerivedElementSize(), 1);
1207
1208 list.AllocateAndConstruct<SimpleDerivedElementConstructMagicNumberOne>();
1209 list.AllocateAndConstruct<SimpleDerivedElementConstructMagicNumberTwo>();
1210 list.AllocateAndConstruct<SimpleDerivedElementConstructMagicNumberThree>();
1211 list.AllocateAndConstruct<SimpleDerivedElementConstructMagicNumberOne>();
1212 list.AllocateAndConstruct<SimpleDerivedElementConstructMagicNumberTwo>();
1213 list.AllocateAndConstruct<SimpleDerivedElementConstructMagicNumberThree>();
1214
1215 EXPECT_EQ(kMagicNumberToUseForSimpleDerivedElementOne, list[0]->get_value());
1216 EXPECT_EQ(kMagicNumberToUseForSimpleDerivedElementTwo, list[1]->get_value());
1217 EXPECT_EQ(kMagicNumberToUseForSimpleDerivedElementThree,
1218 list[2]->get_value());
1219 EXPECT_EQ(kMagicNumberToUseForSimpleDerivedElementOne, list[3]->get_value());
1220 EXPECT_EQ(kMagicNumberToUseForSimpleDerivedElementTwo, list[4]->get_value());
1221 EXPECT_EQ(kMagicNumberToUseForSimpleDerivedElementThree,
1222 list[5]->get_value());
1223
1224 list.RemoveLast();
1225 list.RemoveLast();
1226 list.RemoveLast();
1227
1228 EXPECT_EQ(kMagicNumberToUseForSimpleDerivedElementOne, list[0]->get_value());
1229 EXPECT_EQ(kMagicNumberToUseForSimpleDerivedElementTwo, list[1]->get_value());
1230 EXPECT_EQ(kMagicNumberToUseForSimpleDerivedElementThree,
1231 list[2]->get_value());
1232 }
1233
1204 } // namespace 1234 } // namespace
1205 } // namespace cc 1235 } // namespace cc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698