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

Side by Side Diff: third_party/WebKit/Source/wtf/DequeTest.cpp

Issue 1611343002: wtf reformat test Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: pydent Created 4 years, 11 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
« no previous file with comments | « third_party/WebKit/Source/wtf/Deque.h ('k') | third_party/WebKit/Source/wtf/DoublyLinkedList.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2011 Apple Inc. All rights reserved. 2 * Copyright (C) 2011 Apple Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions 5 * modification, are permitted provided that the following conditions
6 * are met: 6 * are met:
7 * 1. Redistributions of source code must retain the above copyright 7 * 1. Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer. 8 * notice, this list of conditions and the following disclaimer.
9 * 2. Redistributions in binary form must reproduce the above copyright 9 * 2. Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the 10 * notice, this list of conditions and the following disclaimer in the
(...skipping 16 matching lines...) Expand all
27 27
28 #include "testing/gtest/include/gtest/gtest.h" 28 #include "testing/gtest/include/gtest/gtest.h"
29 #include "wtf/HashSet.h" 29 #include "wtf/HashSet.h"
30 #include "wtf/OwnPtr.h" 30 #include "wtf/OwnPtr.h"
31 #include "wtf/PassOwnPtr.h" 31 #include "wtf/PassOwnPtr.h"
32 32
33 namespace WTF { 33 namespace WTF {
34 34
35 namespace { 35 namespace {
36 36
37 TEST(DequeTest, Basic) 37 TEST(DequeTest, Basic) {
38 { 38 Deque<int> intDeque;
39 Deque<int> intDeque; 39 EXPECT_TRUE(intDeque.isEmpty());
40 EXPECT_TRUE(intDeque.isEmpty()); 40 EXPECT_EQ(0ul, intDeque.size());
41 EXPECT_EQ(0ul, intDeque.size()); 41 }
42 } 42
43 43 void checkNumberSequence(Deque<int>& deque, int from, int to, bool increment) {
44 void checkNumberSequence(Deque<int>& deque, int from, int to, bool increment) 44 Deque<int>::iterator it = increment ? deque.begin() : deque.end();
45 { 45 size_t index = increment ? 0 : deque.size();
46 Deque<int>::iterator it = increment ? deque.begin() : deque.end(); 46 int step = from < to ? 1 : -1;
47 size_t index = increment ? 0 : deque.size(); 47 for (int i = from; i != to + step; i += step) {
48 int step = from < to ? 1 : -1; 48 if (!increment) {
49 for (int i = from; i != to + step; i += step) { 49 --it;
50 if (!increment) { 50 --index;
51 --it; 51 }
52 --index; 52
53 } 53 EXPECT_EQ(i, *it);
54 54 EXPECT_EQ(i, deque[index]);
55 EXPECT_EQ(i, *it); 55
56 EXPECT_EQ(i, deque[index]); 56 if (increment) {
57 57 ++it;
58 if (increment) { 58 ++index;
59 ++it; 59 }
60 ++index; 60 }
61 } 61 EXPECT_EQ(increment ? deque.end() : deque.begin(), it);
62 } 62 EXPECT_EQ(increment ? deque.size() : 0, index);
63 EXPECT_EQ(increment ? deque.end() : deque.begin(), it); 63 }
64 EXPECT_EQ(increment ? deque.size() : 0, index); 64
65 } 65 void checkNumberSequenceReverse(Deque<int>& deque,
66 66 int from,
67 void checkNumberSequenceReverse(Deque<int>& deque, int from, int to, bool increm ent) 67 int to,
68 { 68 bool increment) {
69 Deque<int>::reverse_iterator it = increment ? deque.rbegin() : deque.rend(); 69 Deque<int>::reverse_iterator it = increment ? deque.rbegin() : deque.rend();
70 size_t index = increment ? 0 : deque.size(); 70 size_t index = increment ? 0 : deque.size();
71 int step = from < to ? 1 : -1; 71 int step = from < to ? 1 : -1;
72 for (int i = from; i != to + step; i += step) { 72 for (int i = from; i != to + step; i += step) {
73 if (!increment) { 73 if (!increment) {
74 --it; 74 --it;
75 --index; 75 --index;
76 } 76 }
77 77
78 EXPECT_EQ(i, *it); 78 EXPECT_EQ(i, *it);
79 EXPECT_EQ(i, deque.at(deque.size() - 1 - index)); 79 EXPECT_EQ(i, deque.at(deque.size() - 1 - index));
80 80
81 if (increment) { 81 if (increment) {
82 ++it; 82 ++it;
83 ++index; 83 ++index;
84 } 84 }
85 } 85 }
86 EXPECT_EQ(increment ? deque.rend() : deque.rbegin(), it); 86 EXPECT_EQ(increment ? deque.rend() : deque.rbegin(), it);
87 EXPECT_EQ(increment ? deque.size() : 0, index); 87 EXPECT_EQ(increment ? deque.size() : 0, index);
88 } 88 }
89 89
90 TEST(DequeTest, Reverse) 90 TEST(DequeTest, Reverse) {
91 { 91 Deque<int> intDeque;
92 Deque<int> intDeque; 92 intDeque.append(10);
93 intDeque.append(10); 93 intDeque.append(11);
94 intDeque.append(11); 94 intDeque.append(12);
95 intDeque.append(12); 95 intDeque.append(13);
96 intDeque.append(13); 96
97 97 checkNumberSequence(intDeque, 10, 13, true);
98 checkNumberSequence(intDeque, 10, 13, true); 98 checkNumberSequence(intDeque, 13, 10, false);
99 checkNumberSequence(intDeque, 13, 10, false); 99 checkNumberSequenceReverse(intDeque, 13, 10, true);
100 checkNumberSequenceReverse(intDeque, 13, 10, true); 100 checkNumberSequenceReverse(intDeque, 10, 13, false);
101 checkNumberSequenceReverse(intDeque, 10, 13, false); 101
102 102 intDeque.append(14);
103 intDeque.append(14); 103 intDeque.append(15);
104 intDeque.append(15); 104 EXPECT_EQ(10, intDeque.takeFirst());
105 EXPECT_EQ(10, intDeque.takeFirst()); 105 EXPECT_EQ(15, intDeque.takeLast());
106 EXPECT_EQ(15, intDeque.takeLast()); 106 checkNumberSequence(intDeque, 11, 14, true);
107 checkNumberSequence(intDeque, 11, 14, true); 107 checkNumberSequence(intDeque, 14, 11, false);
108 checkNumberSequence(intDeque, 14, 11, false); 108 checkNumberSequenceReverse(intDeque, 14, 11, true);
109 checkNumberSequenceReverse(intDeque, 14, 11, true); 109 checkNumberSequenceReverse(intDeque, 11, 14, false);
110 checkNumberSequenceReverse(intDeque, 11, 14, false); 110
111 111 for (int i = 15; i < 200; ++i)
112 for (int i = 15; i < 200; ++i) 112 intDeque.append(i);
113 intDeque.append(i); 113 checkNumberSequence(intDeque, 11, 199, true);
114 checkNumberSequence(intDeque, 11, 199, true); 114 checkNumberSequence(intDeque, 199, 11, false);
115 checkNumberSequence(intDeque, 199, 11, false); 115 checkNumberSequenceReverse(intDeque, 199, 11, true);
116 checkNumberSequenceReverse(intDeque, 199, 11, true); 116 checkNumberSequenceReverse(intDeque, 11, 199, false);
117 checkNumberSequenceReverse(intDeque, 11, 199, false); 117
118 118 for (int i = 0; i < 180; ++i) {
119 for (int i = 0; i < 180; ++i) { 119 EXPECT_EQ(i + 11, intDeque[0]);
120 EXPECT_EQ(i + 11, intDeque[0]); 120 EXPECT_EQ(i + 11, intDeque.takeFirst());
121 EXPECT_EQ(i + 11, intDeque.takeFirst()); 121 }
122 } 122 checkNumberSequence(intDeque, 191, 199, true);
123 checkNumberSequence(intDeque, 191, 199, true); 123 checkNumberSequence(intDeque, 199, 191, false);
124 checkNumberSequence(intDeque, 199, 191, false); 124 checkNumberSequenceReverse(intDeque, 199, 191, true);
125 checkNumberSequenceReverse(intDeque, 199, 191, true); 125 checkNumberSequenceReverse(intDeque, 191, 199, false);
126 checkNumberSequenceReverse(intDeque, 191, 199, false); 126
127 127 Deque<int> intDeque2;
128 Deque<int> intDeque2; 128 swap(intDeque, intDeque2);
129 swap(intDeque, intDeque2); 129
130 130 checkNumberSequence(intDeque2, 191, 199, true);
131 checkNumberSequence(intDeque2, 191, 199, true); 131 checkNumberSequence(intDeque2, 199, 191, false);
132 checkNumberSequence(intDeque2, 199, 191, false); 132 checkNumberSequenceReverse(intDeque2, 199, 191, true);
133 checkNumberSequenceReverse(intDeque2, 199, 191, true); 133 checkNumberSequenceReverse(intDeque2, 191, 199, false);
134 checkNumberSequenceReverse(intDeque2, 191, 199, false); 134
135 135 intDeque.swap(intDeque2);
136 intDeque.swap(intDeque2); 136
137 137 checkNumberSequence(intDeque, 191, 199, true);
138 checkNumberSequence(intDeque, 191, 199, true); 138 checkNumberSequence(intDeque, 199, 191, false);
139 checkNumberSequence(intDeque, 199, 191, false); 139 checkNumberSequenceReverse(intDeque, 199, 191, true);
140 checkNumberSequenceReverse(intDeque, 199, 191, true); 140 checkNumberSequenceReverse(intDeque, 191, 199, false);
141 checkNumberSequenceReverse(intDeque, 191, 199, false); 141
142 142 intDeque.swap(intDeque2);
143 intDeque.swap(intDeque2); 143
144 144 checkNumberSequence(intDeque2, 191, 199, true);
145 checkNumberSequence(intDeque2, 191, 199, true); 145 checkNumberSequence(intDeque2, 199, 191, false);
146 checkNumberSequence(intDeque2, 199, 191, false); 146 checkNumberSequenceReverse(intDeque2, 199, 191, true);
147 checkNumberSequenceReverse(intDeque2, 199, 191, true); 147 checkNumberSequenceReverse(intDeque2, 191, 199, false);
148 checkNumberSequenceReverse(intDeque2, 191, 199, false);
149 } 148 }
150 149
151 class DestructCounter { 150 class DestructCounter {
152 public: 151 public:
153 explicit DestructCounter(int i, int* destructNumber) 152 explicit DestructCounter(int i, int* destructNumber)
154 : m_i(i) 153 : m_i(i), m_destructNumber(destructNumber) {}
155 , m_destructNumber(destructNumber) 154
156 { } 155 ~DestructCounter() { ++(*m_destructNumber); }
157 156 int get() const { return m_i; }
158 ~DestructCounter() { ++(*m_destructNumber); } 157
159 int get() const { return m_i; } 158 private:
160 159 int m_i;
161 private: 160 int* m_destructNumber;
162 int m_i;
163 int* m_destructNumber;
164 }; 161 };
165 162
166 using OwnPtrDeque = Deque<OwnPtr<DestructCounter>>; 163 using OwnPtrDeque = Deque<OwnPtr<DestructCounter>>;
167 164
168 TEST(DequeTest, OwnPtr) 165 TEST(DequeTest, OwnPtr) {
169 { 166 int destructNumber = 0;
170 int destructNumber = 0; 167 OwnPtrDeque deque;
171 OwnPtrDeque deque; 168 deque.append(adoptPtr(new DestructCounter(0, &destructNumber)));
172 deque.append(adoptPtr(new DestructCounter(0, &destructNumber))); 169 deque.append(adoptPtr(new DestructCounter(1, &destructNumber)));
173 deque.append(adoptPtr(new DestructCounter(1, &destructNumber))); 170 EXPECT_EQ(2u, deque.size());
174 EXPECT_EQ(2u, deque.size()); 171
175 172 OwnPtr<DestructCounter>& counter0 = deque.first();
176 OwnPtr<DestructCounter>& counter0 = deque.first(); 173 EXPECT_EQ(0, counter0->get());
177 EXPECT_EQ(0, counter0->get()); 174 int counter1 = deque.last()->get();
178 int counter1 = deque.last()->get(); 175 EXPECT_EQ(1, counter1);
179 EXPECT_EQ(1, counter1); 176 EXPECT_EQ(0, destructNumber);
180 EXPECT_EQ(0, destructNumber); 177
181 178 size_t index = 0;
182 size_t index = 0; 179 for (OwnPtrDeque::iterator iter = deque.begin(); iter != deque.end();
183 for (OwnPtrDeque::iterator iter = deque.begin(); iter != deque.end(); ++iter ) { 180 ++iter) {
184 OwnPtr<DestructCounter>& refCounter = *iter; 181 OwnPtr<DestructCounter>& refCounter = *iter;
185 EXPECT_EQ(index, static_cast<size_t>(refCounter->get())); 182 EXPECT_EQ(index, static_cast<size_t>(refCounter->get()));
186 EXPECT_EQ(index, static_cast<size_t>((*refCounter).get())); 183 EXPECT_EQ(index, static_cast<size_t>((*refCounter).get()));
187 index++; 184 index++;
188 } 185 }
189 EXPECT_EQ(0, destructNumber); 186 EXPECT_EQ(0, destructNumber);
190 187
191 OwnPtrDeque::iterator it = deque.begin(); 188 OwnPtrDeque::iterator it = deque.begin();
192 for (index = 0; index < deque.size(); ++index) { 189 for (index = 0; index < deque.size(); ++index) {
193 OwnPtr<DestructCounter>& refCounter = *it; 190 OwnPtr<DestructCounter>& refCounter = *it;
194 EXPECT_EQ(index, static_cast<size_t>(refCounter->get())); 191 EXPECT_EQ(index, static_cast<size_t>(refCounter->get()));
195 index++; 192 index++;
196 ++it; 193 ++it;
197 } 194 }
198 EXPECT_EQ(0, destructNumber); 195 EXPECT_EQ(0, destructNumber);
199 196
200 EXPECT_EQ(0, deque.first()->get()); 197 EXPECT_EQ(0, deque.first()->get());
201 deque.removeFirst(); 198 deque.removeFirst();
202 EXPECT_EQ(1, deque.first()->get()); 199 EXPECT_EQ(1, deque.first()->get());
203 EXPECT_EQ(1u, deque.size()); 200 EXPECT_EQ(1u, deque.size());
204 EXPECT_EQ(1, destructNumber); 201 EXPECT_EQ(1, destructNumber);
205 202
206 OwnPtr<DestructCounter> ownCounter1 = deque.first().release(); 203 OwnPtr<DestructCounter> ownCounter1 = deque.first().release();
207 deque.removeFirst(); 204 deque.removeFirst();
208 EXPECT_EQ(counter1, ownCounter1->get()); 205 EXPECT_EQ(counter1, ownCounter1->get());
209 EXPECT_EQ(0u, deque.size()); 206 EXPECT_EQ(0u, deque.size());
210 EXPECT_EQ(1, destructNumber); 207 EXPECT_EQ(1, destructNumber);
211 208
212 ownCounter1.clear(); 209 ownCounter1.clear();
213 EXPECT_EQ(2, destructNumber); 210 EXPECT_EQ(2, destructNumber);
214 211
215 size_t count = 1025; 212 size_t count = 1025;
216 destructNumber = 0; 213 destructNumber = 0;
217 for (size_t i = 0; i < count; ++i) 214 for (size_t i = 0; i < count; ++i)
218 deque.prepend(adoptPtr(new DestructCounter(i, &destructNumber))); 215 deque.prepend(adoptPtr(new DestructCounter(i, &destructNumber)));
219 216
220 // Deque relocation must not destruct OwnPtr element. 217 // Deque relocation must not destruct OwnPtr element.
221 EXPECT_EQ(0, destructNumber); 218 EXPECT_EQ(0, destructNumber);
222 EXPECT_EQ(count, deque.size()); 219 EXPECT_EQ(count, deque.size());
223 220
224 OwnPtrDeque copyDeque; 221 OwnPtrDeque copyDeque;
225 deque.swap(copyDeque); 222 deque.swap(copyDeque);
226 EXPECT_EQ(0, destructNumber); 223 EXPECT_EQ(0, destructNumber);
227 EXPECT_EQ(count, copyDeque.size()); 224 EXPECT_EQ(count, copyDeque.size());
228 EXPECT_EQ(0u, deque.size()); 225 EXPECT_EQ(0u, deque.size());
229 226
230 copyDeque.clear(); 227 copyDeque.clear();
231 EXPECT_EQ(count, static_cast<size_t>(destructNumber)); 228 EXPECT_EQ(count, static_cast<size_t>(destructNumber));
232 } 229 }
233 230
234 class MoveOnly { 231 class MoveOnly {
235 public: 232 public:
236 explicit MoveOnly(int i = 0) 233 explicit MoveOnly(int i = 0) : m_i(i) {}
237 : m_i(i) 234
238 { } 235 MoveOnly(MoveOnly&& other) : m_i(other.m_i) { other.m_i = 0; }
239 236
240 MoveOnly(MoveOnly&& other) 237 MoveOnly& operator=(MoveOnly&& other) {
241 : m_i(other.m_i) 238 if (this != &other) {
242 { 239 m_i = other.m_i;
243 other.m_i = 0; 240 other.m_i = 0;
244 } 241 }
245 242 return *this;
246 MoveOnly& operator=(MoveOnly&& other) 243 }
247 { 244
248 if (this != &other) { 245 int value() const { return m_i; }
249 m_i = other.m_i; 246
250 other.m_i = 0; 247 private:
251 } 248 WTF_MAKE_NONCOPYABLE(MoveOnly);
252 return *this; 249 int m_i;
253 }
254
255 int value() const { return m_i; }
256
257 private:
258 WTF_MAKE_NONCOPYABLE(MoveOnly);
259 int m_i;
260 }; 250 };
261 251
262 TEST(DequeTest, MoveOnlyType) 252 TEST(DequeTest, MoveOnlyType) {
263 { 253 Deque<MoveOnly> deque;
264 Deque<MoveOnly> deque; 254 deque.append(MoveOnly(1));
265 deque.append(MoveOnly(1)); 255 deque.append(MoveOnly(2));
266 deque.append(MoveOnly(2)); 256 EXPECT_EQ(2u, deque.size());
267 EXPECT_EQ(2u, deque.size()); 257
268 258 ASSERT_EQ(1, deque.first().value());
269 ASSERT_EQ(1, deque.first().value()); 259 ASSERT_EQ(2, deque.last().value());
270 ASSERT_EQ(2, deque.last().value()); 260
271 261 MoveOnly oldFirst = deque.takeFirst();
272 MoveOnly oldFirst = deque.takeFirst(); 262 ASSERT_EQ(1, oldFirst.value());
273 ASSERT_EQ(1, oldFirst.value()); 263 EXPECT_EQ(1u, deque.size());
274 EXPECT_EQ(1u, deque.size()); 264
275 265 Deque<MoveOnly> otherDeque;
276 Deque<MoveOnly> otherDeque; 266 deque.swap(otherDeque);
277 deque.swap(otherDeque); 267 EXPECT_EQ(1u, otherDeque.size());
278 EXPECT_EQ(1u, otherDeque.size()); 268 EXPECT_EQ(0u, deque.size());
279 EXPECT_EQ(0u, deque.size());
280 } 269 }
281 270
282 // WrappedInt class will fail if it was memmoved or memcpyed. 271 // WrappedInt class will fail if it was memmoved or memcpyed.
283 HashSet<void*> constructedWrappedInts; 272 HashSet<void*> constructedWrappedInts;
284 273
285 class WrappedInt { 274 class WrappedInt {
286 public: 275 public:
287 WrappedInt(int i = 0) 276 WrappedInt(int i = 0) : m_originalThisPtr(this), m_i(i) {
288 : m_originalThisPtr(this) 277 constructedWrappedInts.add(this);
289 , m_i(i) 278 }
290 { 279
291 constructedWrappedInts.add(this); 280 WrappedInt(const WrappedInt& other)
292 } 281 : m_originalThisPtr(this), m_i(other.m_i) {
293 282 constructedWrappedInts.add(this);
294 WrappedInt(const WrappedInt& other) 283 }
295 : m_originalThisPtr(this) 284
296 , m_i(other.m_i) 285 WrappedInt& operator=(const WrappedInt& other) {
297 { 286 m_i = other.m_i;
298 constructedWrappedInts.add(this); 287 return *this;
299 } 288 }
300 289
301 WrappedInt& operator=(const WrappedInt& other) 290 ~WrappedInt() {
302 { 291 EXPECT_EQ(m_originalThisPtr, this);
303 m_i = other.m_i; 292 EXPECT_TRUE(constructedWrappedInts.contains(this));
304 return *this; 293 constructedWrappedInts.remove(this);
305 } 294 }
306 295
307 ~WrappedInt() 296 int get() const { return m_i; }
308 { 297
309 EXPECT_EQ(m_originalThisPtr, this); 298 private:
310 EXPECT_TRUE(constructedWrappedInts.contains(this)); 299 void* m_originalThisPtr;
311 constructedWrappedInts.remove(this); 300 int m_i;
312 }
313
314 int get() const { return m_i; }
315
316 private:
317 void* m_originalThisPtr;
318 int m_i;
319 }; 301 };
320 302
321 TEST(DequeTest, SwapWithoutInlineCapacity) 303 TEST(DequeTest, SwapWithoutInlineCapacity) {
322 { 304 Deque<WrappedInt> dequeA;
323 Deque<WrappedInt> dequeA; 305 dequeA.append(WrappedInt(1));
324 dequeA.append(WrappedInt(1)); 306 Deque<WrappedInt> dequeB;
325 Deque<WrappedInt> dequeB; 307 dequeB.append(WrappedInt(2));
326 dequeB.append(WrappedInt(2)); 308
327 309 ASSERT_EQ(dequeA.size(), dequeB.size());
328 ASSERT_EQ(dequeA.size(), dequeB.size()); 310 dequeA.swap(dequeB);
329 dequeA.swap(dequeB); 311
330 312 ASSERT_EQ(1u, dequeA.size());
331 ASSERT_EQ(1u, dequeA.size()); 313 EXPECT_EQ(2, dequeA.first().get());
332 EXPECT_EQ(2, dequeA.first().get()); 314 ASSERT_EQ(1u, dequeB.size());
333 ASSERT_EQ(1u, dequeB.size()); 315 EXPECT_EQ(1, dequeB.first().get());
334 EXPECT_EQ(1, dequeB.first().get()); 316
335 317 dequeA.append(WrappedInt(3));
336 dequeA.append(WrappedInt(3)); 318
337 319 ASSERT_GT(dequeA.size(), dequeB.size());
338 ASSERT_GT(dequeA.size(), dequeB.size()); 320 dequeA.swap(dequeB);
339 dequeA.swap(dequeB); 321
340 322 ASSERT_EQ(1u, dequeA.size());
341 ASSERT_EQ(1u, dequeA.size()); 323 EXPECT_EQ(1, dequeA.first().get());
342 EXPECT_EQ(1, dequeA.first().get()); 324 ASSERT_EQ(2u, dequeB.size());
343 ASSERT_EQ(2u, dequeB.size()); 325 EXPECT_EQ(2, dequeB.first().get());
344 EXPECT_EQ(2, dequeB.first().get()); 326
345 327 ASSERT_LT(dequeA.size(), dequeB.size());
346 ASSERT_LT(dequeA.size(), dequeB.size()); 328 dequeA.swap(dequeB);
347 dequeA.swap(dequeB); 329
348 330 ASSERT_EQ(2u, dequeA.size());
349 ASSERT_EQ(2u, dequeA.size()); 331 EXPECT_EQ(2, dequeA.first().get());
350 EXPECT_EQ(2, dequeA.first().get()); 332 ASSERT_EQ(1u, dequeB.size());
351 ASSERT_EQ(1u, dequeB.size()); 333 EXPECT_EQ(1, dequeB.first().get());
352 EXPECT_EQ(1, dequeB.first().get()); 334
353 335 dequeA.append(WrappedInt(4));
354 dequeA.append(WrappedInt(4)); 336 dequeA.swap(dequeB);
355 dequeA.swap(dequeB); 337
356 338 ASSERT_EQ(1u, dequeA.size());
357 ASSERT_EQ(1u, dequeA.size()); 339 EXPECT_EQ(1, dequeA.first().get());
358 EXPECT_EQ(1, dequeA.first().get()); 340 ASSERT_EQ(3u, dequeB.size());
359 ASSERT_EQ(3u, dequeB.size()); 341 EXPECT_EQ(2, dequeB.first().get());
360 EXPECT_EQ(2, dequeB.first().get()); 342
361 343 dequeB.swap(dequeA);
362 dequeB.swap(dequeA); 344 }
363 } 345
364 346 } // anonymous namespace
365 } // anonymous namespace 347
366 348 } // namespace WTF
367 } // namespace WTF
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/wtf/Deque.h ('k') | third_party/WebKit/Source/wtf/DoublyLinkedList.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698