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

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

Issue 2547053003: s/ passed(...) / WTF::passed(...) / to avoid future ambiguity w/ base::Passed. (Closed)
Patch Set: Rebasing... 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 unified diff | Download patch
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 199 matching lines...) Expand 10 before | Expand all | Expand 10 after
210 bind(sixArgFunc, 3, 3.5); 210 bind(sixArgFunc, 3, 3.5);
211 (*twoBound)('d', &a, &b, &c); 211 (*twoBound)('d', &a, &b, &c);
212 assertArgs(a, b, c, 3, 3.5, 'd'); 212 assertArgs(a, b, c, 3, 3.5, 'd');
213 213
214 std::unique_ptr<Function<void(int*, double*, char*)>> threeBound = 214 std::unique_ptr<Function<void(int*, double*, char*)>> threeBound =
215 bind(sixArgFunc, 4, 4.5, 'e'); 215 bind(sixArgFunc, 4, 4.5, 'e');
216 (*threeBound)(&a, &b, &c); 216 (*threeBound)(&a, &b, &c);
217 assertArgs(a, b, c, 4, 4.5, 'e'); 217 assertArgs(a, b, c, 4, 4.5, 'e');
218 218
219 std::unique_ptr<Function<void(double*, char*)>> fourBound = 219 std::unique_ptr<Function<void(double*, char*)>> fourBound =
220 bind(sixArgFunc, 5, 5.5, 'f', unretained(&a)); 220 bind(sixArgFunc, 5, 5.5, 'f', WTF::unretained(&a));
221 (*fourBound)(&b, &c); 221 (*fourBound)(&b, &c);
222 assertArgs(a, b, c, 5, 5.5, 'f'); 222 assertArgs(a, b, c, 5, 5.5, 'f');
223 223
224 std::unique_ptr<Function<void(char*)>> fiveBound = 224 std::unique_ptr<Function<void(char*)>> fiveBound =
225 bind(sixArgFunc, 6, 6.5, 'g', unretained(&a), unretained(&b)); 225 bind(sixArgFunc, 6, 6.5, 'g', WTF::unretained(&a), WTF::unretained(&b));
226 (*fiveBound)(&c); 226 (*fiveBound)(&c);
227 assertArgs(a, b, c, 6, 6.5, 'g'); 227 assertArgs(a, b, c, 6, 6.5, 'g');
228 228
229 std::unique_ptr<Function<void()>> sixBound = bind( 229 std::unique_ptr<Function<void()>> sixBound =
230 sixArgFunc, 7, 7.5, 'h', unretained(&a), unretained(&b), unretained(&c)); 230 bind(sixArgFunc, 7, 7.5, 'h', WTF::unretained(&a), WTF::unretained(&b),
231 WTF::unretained(&c));
231 (*sixBound)(); 232 (*sixBound)();
232 assertArgs(a, b, c, 7, 7.5, 'h'); 233 assertArgs(a, b, c, 7, 7.5, 'h');
233 } 234 }
234 235
235 class A { 236 class A {
236 public: 237 public:
237 explicit A(int i) : m_i(i) {} 238 explicit A(int i) : m_i(i) {}
238 239
239 int f() { return m_i; } 240 int f() { return m_i; }
240 int addF(int j) { return m_i + j; } 241 int addF(int j) { return m_i + j; }
241 virtual int overridden() { return 42; } 242 virtual int overridden() { return 42; }
242 243
243 private: 244 private:
244 int m_i; 245 int m_i;
245 }; 246 };
246 247
247 class B : public A { 248 class B : public A {
248 public: 249 public:
249 explicit B(int i) : A(i) {} 250 explicit B(int i) : A(i) {}
250 251
251 int f() { return A::f() + 1; } 252 int f() { return A::f() + 1; }
252 int addF(int j) { return A::addF(j) + 1; } 253 int addF(int j) { return A::addF(j) + 1; }
253 int overridden() override { return 43; } 254 int overridden() override { return 43; }
254 }; 255 };
255 256
256 TEST(FunctionalTest, MemberFunctionBind) { 257 TEST(FunctionalTest, MemberFunctionBind) {
257 A a(10); 258 A a(10);
258 std::unique_ptr<Function<int()>> function1 = bind(&A::f, unretained(&a)); 259 std::unique_ptr<Function<int()>> function1 = bind(&A::f, WTF::unretained(&a));
259 EXPECT_EQ(10, (*function1)()); 260 EXPECT_EQ(10, (*function1)());
260 261
261 std::unique_ptr<Function<int()>> function2 = 262 std::unique_ptr<Function<int()>> function2 =
262 bind(&A::addF, unretained(&a), 15); 263 bind(&A::addF, WTF::unretained(&a), 15);
263 EXPECT_EQ(25, (*function2)()); 264 EXPECT_EQ(25, (*function2)());
264 265
265 std::unique_ptr<Function<int()>> function3 = 266 std::unique_ptr<Function<int()>> function3 =
266 bind(&A::overridden, unretained(&a)); 267 bind(&A::overridden, WTF::unretained(&a));
267 EXPECT_EQ(42, (*function3)()); 268 EXPECT_EQ(42, (*function3)());
268 } 269 }
269 270
270 TEST(FunctionalTest, MemberFunctionBindWithSubclassPointer) { 271 TEST(FunctionalTest, MemberFunctionBindWithSubclassPointer) {
271 B b(10); 272 B b(10);
272 std::unique_ptr<Function<int()>> function1 = bind(&A::f, unretained(&b)); 273 std::unique_ptr<Function<int()>> function1 = bind(&A::f, WTF::unretained(&b));
273 EXPECT_EQ(10, (*function1)()); 274 EXPECT_EQ(10, (*function1)());
274 275
275 std::unique_ptr<Function<int()>> function2 = 276 std::unique_ptr<Function<int()>> function2 =
276 bind(&A::addF, unretained(&b), 15); 277 bind(&A::addF, WTF::unretained(&b), 15);
277 EXPECT_EQ(25, (*function2)()); 278 EXPECT_EQ(25, (*function2)());
278 279
279 std::unique_ptr<Function<int()>> function3 = 280 std::unique_ptr<Function<int()>> function3 =
280 bind(&A::overridden, unretained(&b)); 281 bind(&A::overridden, WTF::unretained(&b));
281 EXPECT_EQ(43, (*function3)()); 282 EXPECT_EQ(43, (*function3)());
282 283
283 std::unique_ptr<Function<int()>> function4 = bind(&B::f, unretained(&b)); 284 std::unique_ptr<Function<int()>> function4 = bind(&B::f, WTF::unretained(&b));
284 EXPECT_EQ(11, (*function4)()); 285 EXPECT_EQ(11, (*function4)());
285 286
286 std::unique_ptr<Function<int()>> function5 = 287 std::unique_ptr<Function<int()>> function5 =
287 bind(&B::addF, unretained(&b), 15); 288 bind(&B::addF, WTF::unretained(&b), 15);
288 EXPECT_EQ(26, (*function5)()); 289 EXPECT_EQ(26, (*function5)());
289 } 290 }
290 291
291 TEST(FunctionalTest, MemberFunctionBindWithSubclassPointerWithCast) { 292 TEST(FunctionalTest, MemberFunctionBindWithSubclassPointerWithCast) {
292 B b(10); 293 B b(10);
293 std::unique_ptr<Function<int()>> function1 = 294 std::unique_ptr<Function<int()>> function1 =
294 bind(&A::f, unretained(static_cast<A*>(&b))); 295 bind(&A::f, WTF::unretained(static_cast<A*>(&b)));
295 EXPECT_EQ(10, (*function1)()); 296 EXPECT_EQ(10, (*function1)());
296 297
297 std::unique_ptr<Function<int()>> function2 = 298 std::unique_ptr<Function<int()>> function2 =
298 bind(&A::addF, unretained(static_cast<A*>(&b)), 15); 299 bind(&A::addF, WTF::unretained(static_cast<A*>(&b)), 15);
299 EXPECT_EQ(25, (*function2)()); 300 EXPECT_EQ(25, (*function2)());
300 301
301 std::unique_ptr<Function<int()>> function3 = 302 std::unique_ptr<Function<int()>> function3 =
302 bind(&A::overridden, unretained(static_cast<A*>(&b))); 303 bind(&A::overridden, WTF::unretained(static_cast<A*>(&b)));
303 EXPECT_EQ(43, (*function3)()); 304 EXPECT_EQ(43, (*function3)());
304 } 305 }
305 306
306 TEST(FunctionalTest, MemberFunctionPartBind) { 307 TEST(FunctionalTest, MemberFunctionPartBind) {
307 A a(10); 308 A a(10);
308 std::unique_ptr<Function<int(class A*)>> function1 = bind(&A::f); 309 std::unique_ptr<Function<int(class A*)>> function1 = bind(&A::f);
309 EXPECT_EQ(10, (*function1)(&a)); 310 EXPECT_EQ(10, (*function1)(&a));
310 311
311 std::unique_ptr<Function<int(class A*, int)>> unboundFunction2 = 312 std::unique_ptr<Function<int(class A*, int)>> unboundFunction2 =
312 bind(&A::addF); 313 bind(&A::addF);
313 EXPECT_EQ(25, (*unboundFunction2)(&a, 15)); 314 EXPECT_EQ(25, (*unboundFunction2)(&a, 15));
314 std::unique_ptr<Function<int(int)>> objectBoundFunction2 = 315 std::unique_ptr<Function<int(int)>> objectBoundFunction2 =
315 bind(&A::addF, unretained(&a)); 316 bind(&A::addF, WTF::unretained(&a));
316 EXPECT_EQ(25, (*objectBoundFunction2)(15)); 317 EXPECT_EQ(25, (*objectBoundFunction2)(15));
317 } 318 }
318 319
319 TEST(FunctionalTest, MemberFunctionBindByUniquePtr) { 320 TEST(FunctionalTest, MemberFunctionBindByUniquePtr) {
320 std::unique_ptr<Function<int()>> function1 = 321 std::unique_ptr<Function<int()>> function1 =
321 WTF::bind(&A::f, makeUnique<A>(10)); 322 WTF::bind(&A::f, WTF::makeUnique<A>(10));
322 EXPECT_EQ(10, (*function1)()); 323 EXPECT_EQ(10, (*function1)());
323 } 324 }
324 325
325 TEST(FunctionalTest, MemberFunctionBindByPassedUniquePtr) { 326 TEST(FunctionalTest, MemberFunctionBindByPassedUniquePtr) {
326 std::unique_ptr<Function<int()>> function1 = 327 std::unique_ptr<Function<int()>> function1 =
327 WTF::bind(&A::f, passed(makeUnique<A>(10))); 328 WTF::bind(&A::f, WTF::passed(WTF::makeUnique<A>(10)));
328 EXPECT_EQ(10, (*function1)()); 329 EXPECT_EQ(10, (*function1)());
329 } 330 }
330 331
331 class Number : public RefCounted<Number> { 332 class Number : public RefCounted<Number> {
332 public: 333 public:
333 static PassRefPtr<Number> create(int value) { 334 static PassRefPtr<Number> create(int value) {
334 return adoptRef(new Number(value)); 335 return adoptRef(new Number(value));
335 } 336 }
336 337
337 ~Number() { m_value = 0; } 338 ~Number() { m_value = 0; }
(...skipping 27 matching lines...) Expand all
365 std::unique_ptr<Function<int()>> multiplySixByTwoFunction = 366 std::unique_ptr<Function<int()>> multiplySixByTwoFunction =
366 bind(multiplyNumberByTwo, six.release()); 367 bind(multiplyNumberByTwo, six.release());
367 EXPECT_FALSE(six); 368 EXPECT_FALSE(six);
368 EXPECT_EQ(12, (*multiplySixByTwoFunction)()); 369 EXPECT_EQ(12, (*multiplySixByTwoFunction)());
369 } 370 }
370 371
371 TEST(FunctionalTest, UnretainedWithRefCounted) { 372 TEST(FunctionalTest, UnretainedWithRefCounted) {
372 RefPtr<Number> five = Number::create(5); 373 RefPtr<Number> five = Number::create(5);
373 EXPECT_EQ(1, five->refCount()); 374 EXPECT_EQ(1, five->refCount());
374 std::unique_ptr<Function<int()>> multiplyFiveByTwoFunction = 375 std::unique_ptr<Function<int()>> multiplyFiveByTwoFunction =
375 bind(multiplyNumberByTwo, unretained(five.get())); 376 bind(multiplyNumberByTwo, WTF::unretained(five.get()));
376 EXPECT_EQ(1, five->refCount()); 377 EXPECT_EQ(1, five->refCount());
377 EXPECT_EQ(10, (*multiplyFiveByTwoFunction)()); 378 EXPECT_EQ(10, (*multiplyFiveByTwoFunction)());
378 EXPECT_EQ(1, five->refCount()); 379 EXPECT_EQ(1, five->refCount());
379 } 380 }
380 381
381 int processUnwrappedClass(const UnwrappedClass& u, int v) { 382 int processUnwrappedClass(const UnwrappedClass& u, int v) {
382 return u.value() * v; 383 return u.value() * v;
383 } 384 }
384 385
385 // Tests that: 386 // Tests that:
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after
468 return moveOnly.value(); 469 return moveOnly.value();
469 } 470 }
470 471
471 int tripleMoveOnlysByValues(MoveOnly first, MoveOnly second, MoveOnly third) { 472 int tripleMoveOnlysByValues(MoveOnly first, MoveOnly second, MoveOnly third) {
472 return first.value() + second.value() + third.value(); 473 return first.value() + second.value() + third.value();
473 } 474 }
474 475
475 TEST(FunctionalTest, BindMoveOnlyObjects) { 476 TEST(FunctionalTest, BindMoveOnlyObjects) {
476 MoveOnly one(1); 477 MoveOnly one(1);
477 std::unique_ptr<Function<int()>> bound = 478 std::unique_ptr<Function<int()>> bound =
478 bind(singleMoveOnlyByRvalueReference, passed(std::move(one))); 479 bind(singleMoveOnlyByRvalueReference, WTF::passed(std::move(one)));
479 EXPECT_EQ(0, one.value()); // Should be moved away. 480 EXPECT_EQ(0, one.value()); // Should be moved away.
480 EXPECT_EQ(1, (*bound)()); 481 EXPECT_EQ(1, (*bound)());
481 // The stored value must be cleared in the first function call. 482 // The stored value must be cleared in the first function call.
482 EXPECT_EQ(0, (*bound)()); 483 EXPECT_EQ(0, (*bound)());
483 484
484 bound = bind(singleMoveOnlyByValue, passed(MoveOnly(1))); 485 bound = bind(singleMoveOnlyByValue, WTF::passed(MoveOnly(1)));
485 EXPECT_EQ(1, (*bound)()); 486 EXPECT_EQ(1, (*bound)());
486 EXPECT_EQ(0, (*bound)()); 487 EXPECT_EQ(0, (*bound)());
487 488
488 bound = bind(tripleMoveOnlysByRvalueReferences, passed(MoveOnly(1)), 489 bound = bind(tripleMoveOnlysByRvalueReferences, WTF::passed(MoveOnly(1)),
489 passed(MoveOnly(2)), passed(MoveOnly(3))); 490 WTF::passed(MoveOnly(2)), WTF::passed(MoveOnly(3)));
490 EXPECT_EQ(6, (*bound)()); 491 EXPECT_EQ(6, (*bound)());
491 EXPECT_EQ(0, (*bound)()); 492 EXPECT_EQ(0, (*bound)());
492 493
493 bound = bind(tripleMoveOnlysByValues, passed(MoveOnly(1)), 494 bound = bind(tripleMoveOnlysByValues, WTF::passed(MoveOnly(1)),
494 passed(MoveOnly(2)), passed(MoveOnly(3))); 495 WTF::passed(MoveOnly(2)), WTF::passed(MoveOnly(3)));
495 EXPECT_EQ(6, (*bound)()); 496 EXPECT_EQ(6, (*bound)());
496 EXPECT_EQ(0, (*bound)()); 497 EXPECT_EQ(0, (*bound)());
497 } 498 }
498 499
499 class CountCopy { 500 class CountCopy {
500 public: 501 public:
501 CountCopy() : m_copies(0) {} 502 CountCopy() : m_copies(0) {}
502 CountCopy(const CountCopy& other) : m_copies(other.m_copies + 1) {} 503 CountCopy(const CountCopy& other) : m_copies(other.m_copies + 1) {}
503 504
504 int copies() const { return m_copies; } 505 int copies() const { return m_copies; }
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after
584 585
585 obj.revokeAll(); 586 obj.revokeAll();
586 EXPECT_TRUE(bound->isCancelled()); 587 EXPECT_TRUE(bound->isCancelled());
587 (*bound)(); 588 (*bound)();
588 EXPECT_EQ(1, counter); 589 EXPECT_EQ(1, counter);
589 } 590 }
590 591
591 } // anonymous namespace 592 } // anonymous namespace
592 593
593 } // namespace WTF 594 } // namespace WTF
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/wtf/Functional.h ('k') | third_party/WebKit/Source/wtf/HashMapTest.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698