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

Side by Side Diff: tests/LListTest.cpp

Issue 544233002: "NULL !=" = NULL (Closed) Base URL: https://skia.googlesource.com/skia.git@are
Patch Set: rebase Created 6 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
« no previous file with comments | « tests/KtxTest.cpp ('k') | tests/MallocPixelRefTest.cpp » ('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 2012 Google Inc. 2 * Copyright 2012 Google Inc.
3 * 3 *
4 * Use of this source code is governed by a BSD-style license that can be 4 * Use of this source code is governed by a BSD-style license that can be
5 * found in the LICENSE file. 5 * found in the LICENSE file.
6 */ 6 */
7 7
8 #include "SkRandom.h" 8 #include "SkRandom.h"
9 #include "SkTInternalLList.h" 9 #include "SkTInternalLList.h"
10 #include "SkTLList.h" 10 #include "SkTLList.h"
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
66 list.addToHead(&elements[2]); 66 list.addToHead(&elements[2]);
67 list.addToHead(&elements[3]); 67 list.addToHead(&elements[3]);
68 68
69 check_list(list, reporter, false, 4, true, true, true, true, elements); 69 check_list(list, reporter, false, 4, true, true, true, true, elements);
70 70
71 // test out iterators 71 // test out iterators
72 typedef SkTInternalLList<ListElement>::Iter Iter; 72 typedef SkTInternalLList<ListElement>::Iter Iter;
73 Iter iter; 73 Iter iter;
74 74
75 ListElement* cur = iter.init(list, Iter::kHead_IterStart); 75 ListElement* cur = iter.init(list, Iter::kHead_IterStart);
76 for (int i = 0; NULL != cur; ++i, cur = iter.next()) { 76 for (int i = 0; cur; ++i, cur = iter.next()) {
77 REPORTER_ASSERT(reporter, cur->fID == 3-i); 77 REPORTER_ASSERT(reporter, cur->fID == 3-i);
78 } 78 }
79 79
80 cur = iter.init(list, Iter::kTail_IterStart); 80 cur = iter.init(list, Iter::kTail_IterStart);
81 for (int i = 0; NULL != cur; ++i, cur = iter.prev()) { 81 for (int i = 0; cur; ++i, cur = iter.prev()) {
82 REPORTER_ASSERT(reporter, cur->fID == i); 82 REPORTER_ASSERT(reporter, cur->fID == i);
83 } 83 }
84 84
85 // remove middle, frontmost then backmost 85 // remove middle, frontmost then backmost
86 list.remove(&elements[1]); 86 list.remove(&elements[1]);
87 list.remove(&elements[3]); 87 list.remove(&elements[3]);
88 list.remove(&elements[0]); 88 list.remove(&elements[0]);
89 89
90 check_list(list, reporter, false, 1, false, false, true, false, elements); 90 check_list(list, reporter, false, 1, false, false, true, false, elements);
91 91
(...skipping 15 matching lines...) Expand all
107 list.addBefore(&elements[0], &elements[1]); 107 list.addBefore(&elements[0], &elements[1]);
108 check_list(list, reporter, false, 2, true, true, false, false, elements); 108 check_list(list, reporter, false, 2, true, true, false, false, elements);
109 109
110 list.addAfter(&elements[3], &elements[1]); 110 list.addAfter(&elements[3], &elements[1]);
111 check_list(list, reporter, false, 3, true, true, false, true, elements); 111 check_list(list, reporter, false, 3, true, true, false, true, elements);
112 112
113 list.addBefore(&elements[2], &elements[3]); 113 list.addBefore(&elements[2], &elements[3]);
114 check_list(list, reporter, false, 4, true, true, true, true, elements); 114 check_list(list, reporter, false, 4, true, true, true, true, elements);
115 115
116 cur = iter.init(list, Iter::kHead_IterStart); 116 cur = iter.init(list, Iter::kHead_IterStart);
117 for (int i = 0; NULL != cur; ++i, cur = iter.next()) { 117 for (int i = 0; cur; ++i, cur = iter.next()) {
118 REPORTER_ASSERT(reporter, cur->fID == i); 118 REPORTER_ASSERT(reporter, cur->fID == i);
119 } 119 }
120 } 120 }
121 121
122 static void TestTLList(skiatest::Reporter* reporter) { 122 static void TestTLList(skiatest::Reporter* reporter) {
123 typedef SkTLList<ListElement> ElList; 123 typedef SkTLList<ListElement> ElList;
124 typedef ElList::Iter Iter; 124 typedef ElList::Iter Iter;
125 SkRandom random; 125 SkRandom random;
126 126
127 for (int i = 1; i <= 16; i *= 2) { 127 for (int i = 1; i <= 16; i *= 2) {
(...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after
221 Iter iter = list1.headIter(); 221 Iter iter = list1.headIter();
222 // remember the elements before/after the insertion poin t. 222 // remember the elements before/after the insertion poin t.
223 while (n--) { 223 while (n--) {
224 iter.next(); 224 iter.next();
225 } 225 }
226 Iter prev(iter); 226 Iter prev(iter);
227 Iter next(iter); 227 Iter next(iter);
228 next.next(); 228 next.next();
229 prev.prev(); 229 prev.prev();
230 230
231 SkASSERT(NULL != iter.get()); 231 SkASSERT(iter.get());
232 // insert either before or after the iterator, then chec k that the 232 // insert either before or after the iterator, then chec k that the
233 // surrounding sequence is correct. 233 // surrounding sequence is correct.
234 if (2 == insertionMethod) { 234 if (2 == insertionMethod) {
235 SkNEW_INSERT_IN_LLIST_BEFORE(&list1, iter, ListEleme nt, (id)); 235 SkNEW_INSERT_IN_LLIST_BEFORE(&list1, iter, ListEleme nt, (id));
236 Iter newItem(iter); 236 Iter newItem(iter);
237 newItem.prev(); 237 newItem.prev();
238 REPORTER_ASSERT(reporter, newItem.get()->fID == id); 238 REPORTER_ASSERT(reporter, newItem.get()->fID == id);
239 239
240 if (NULL != next.get()) { 240 if (next.get()) {
241 REPORTER_ASSERT(reporter, next.prev()->fID == it er.get()->fID); 241 REPORTER_ASSERT(reporter, next.prev()->fID == it er.get()->fID);
242 } 242 }
243 if (NULL != prev.get()) { 243 if (prev.get()) {
244 REPORTER_ASSERT(reporter, prev.next()->fID == id ); 244 REPORTER_ASSERT(reporter, prev.next()->fID == id );
245 } 245 }
246 } else { 246 } else {
247 SkNEW_INSERT_IN_LLIST_AFTER(&list1, iter, ListElemen t, (id)); 247 SkNEW_INSERT_IN_LLIST_AFTER(&list1, iter, ListElemen t, (id));
248 Iter newItem(iter); 248 Iter newItem(iter);
249 newItem.next(); 249 newItem.next();
250 REPORTER_ASSERT(reporter, newItem.get()->fID == id); 250 REPORTER_ASSERT(reporter, newItem.get()->fID == id);
251 251
252 if (NULL != next.get()) { 252 if (next.get()) {
253 REPORTER_ASSERT(reporter, next.prev()->fID == id ); 253 REPORTER_ASSERT(reporter, next.prev()->fID == id );
254 } 254 }
255 if (NULL != prev.get()) { 255 if (prev.get()) {
256 REPORTER_ASSERT(reporter, prev.next()->fID == it er.get()->fID); 256 REPORTER_ASSERT(reporter, prev.next()->fID == it er.get()->fID);
257 } 257 }
258 } 258 }
259 } 259 }
260 } 260 }
261 ++count; 261 ++count;
262 } else { 262 } else {
263 // walk to a random place either forward or backwards and remove . 263 // walk to a random place either forward or backwards and remove .
264 int n = random.nextULessThan(list1.count()); 264 int n = random.nextULessThan(list1.count());
265 Iter::IterStart start; 265 Iter::IterStart start;
266 ListElement* (Iter::*incrFunc)(); 266 ListElement* (Iter::*incrFunc)();
267 267
268 if (random.nextBool()) { 268 if (random.nextBool()) {
269 start = Iter::kHead_IterStart; 269 start = Iter::kHead_IterStart;
270 incrFunc = &Iter::next; 270 incrFunc = &Iter::next;
271 } else { 271 } else {
272 start = Iter::kTail_IterStart; 272 start = Iter::kTail_IterStart;
273 incrFunc = &Iter::prev; 273 incrFunc = &Iter::prev;
274 } 274 }
275 275
276 // find the element 276 // find the element
277 Iter iter(list1, start); 277 Iter iter(list1, start);
278 while (n--) { 278 while (n--) {
279 REPORTER_ASSERT(reporter, NULL != iter.get()); 279 REPORTER_ASSERT(reporter, iter.get());
280 (iter.*incrFunc)(); 280 (iter.*incrFunc)();
281 } 281 }
282 REPORTER_ASSERT(reporter, NULL != iter.get()); 282 REPORTER_ASSERT(reporter, iter.get());
283 283
284 // remember the prev and next elements from the element to be re moved 284 // remember the prev and next elements from the element to be re moved
285 Iter prev = iter; 285 Iter prev = iter;
286 Iter next = iter; 286 Iter next = iter;
287 prev.prev(); 287 prev.prev();
288 next.next(); 288 next.next();
289 list1.remove(iter.get()); 289 list1.remove(iter.get());
290 290
291 // make sure the remembered next/prev iters still work 291 // make sure the remembered next/prev iters still work
292 Iter pn = prev; pn.next(); 292 Iter pn = prev; pn.next();
(...skipping 14 matching lines...) Expand all
307 #if SK_ENABLE_INST_COUNT 307 #if SK_ENABLE_INST_COUNT
308 SkASSERT(0 == ListElement::InstanceCount()); 308 SkASSERT(0 == ListElement::InstanceCount());
309 #endif 309 #endif
310 } 310 }
311 } 311 }
312 312
313 DEF_TEST(LList, reporter) { 313 DEF_TEST(LList, reporter) {
314 TestTInternalLList(reporter); 314 TestTInternalLList(reporter);
315 TestTLList(reporter); 315 TestTLList(reporter);
316 } 316 }
OLDNEW
« no previous file with comments | « tests/KtxTest.cpp ('k') | tests/MallocPixelRefTest.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698