| OLD | NEW |
| 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 186 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 197 auto it = deque.begin(); | 197 auto it = deque.begin(); |
| 198 for (index = 0; index < deque.size(); ++index) { | 198 for (index = 0; index < deque.size(); ++index) { |
| 199 std::unique_ptr<DestructCounter>& refCounter = *it; | 199 std::unique_ptr<DestructCounter>& refCounter = *it; |
| 200 EXPECT_EQ(index, static_cast<size_t>(refCounter->get())); | 200 EXPECT_EQ(index, static_cast<size_t>(refCounter->get())); |
| 201 index++; | 201 index++; |
| 202 ++it; | 202 ++it; |
| 203 } | 203 } |
| 204 EXPECT_EQ(0, destructNumber); | 204 EXPECT_EQ(0, destructNumber); |
| 205 | 205 |
| 206 EXPECT_EQ(0, deque.first()->get()); | 206 EXPECT_EQ(0, deque.first()->get()); |
| 207 deque.removeFirst(); | 207 deque.pop_front(); |
| 208 EXPECT_EQ(1, deque.first()->get()); | 208 EXPECT_EQ(1, deque.first()->get()); |
| 209 EXPECT_EQ(1u, deque.size()); | 209 EXPECT_EQ(1u, deque.size()); |
| 210 EXPECT_EQ(1, destructNumber); | 210 EXPECT_EQ(1, destructNumber); |
| 211 | 211 |
| 212 std::unique_ptr<DestructCounter> ownCounter1 = std::move(deque.first()); | 212 std::unique_ptr<DestructCounter> ownCounter1 = std::move(deque.first()); |
| 213 deque.removeFirst(); | 213 deque.pop_front(); |
| 214 EXPECT_EQ(counter1, ownCounter1->get()); | 214 EXPECT_EQ(counter1, ownCounter1->get()); |
| 215 EXPECT_EQ(0u, deque.size()); | 215 EXPECT_EQ(0u, deque.size()); |
| 216 EXPECT_EQ(1, destructNumber); | 216 EXPECT_EQ(1, destructNumber); |
| 217 | 217 |
| 218 ownCounter1.reset(); | 218 ownCounter1.reset(); |
| 219 EXPECT_EQ(2, destructNumber); | 219 EXPECT_EQ(2, destructNumber); |
| 220 | 220 |
| 221 size_t count = 1025; | 221 size_t count = 1025; |
| 222 destructNumber = 0; | 222 destructNumber = 0; |
| 223 for (size_t i = 0; i < count; ++i) | 223 for (size_t i = 0; i < count; ++i) |
| (...skipping 180 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 404 if (!interestingNumber(j)) | 404 if (!interestingNumber(j)) |
| 405 continue; | 405 continue; |
| 406 deque.clear(); | 406 deque.clear(); |
| 407 deque2.clear(); | 407 deque2.clear(); |
| 408 EXPECT_EQ(0u, LivenessCounter::s_live); | 408 EXPECT_EQ(0u, LivenessCounter::s_live); |
| 409 for (unsigned k = 0; k < j; k++) | 409 for (unsigned k = 0; k < j; k++) |
| 410 deque.push_back(&counter); | 410 deque.push_back(&counter); |
| 411 EXPECT_EQ(j, LivenessCounter::s_live); | 411 EXPECT_EQ(j, LivenessCounter::s_live); |
| 412 EXPECT_EQ(j, deque.size()); | 412 EXPECT_EQ(j, deque.size()); |
| 413 for (unsigned k = 0; k < i; k++) | 413 for (unsigned k = 0; k < i; k++) |
| 414 deque.removeFirst(); | 414 deque.pop_front(); |
| 415 | 415 |
| 416 EXPECT_EQ(j - i, LivenessCounter::s_live); | 416 EXPECT_EQ(j - i, LivenessCounter::s_live); |
| 417 EXPECT_EQ(j - i, deque.size()); | 417 EXPECT_EQ(j - i, deque.size()); |
| 418 deque.swap(deque2); | 418 deque.swap(deque2); |
| 419 EXPECT_EQ(j - i, LivenessCounter::s_live); | 419 EXPECT_EQ(j - i, LivenessCounter::s_live); |
| 420 EXPECT_EQ(0u, deque.size()); | 420 EXPECT_EQ(0u, deque.size()); |
| 421 EXPECT_EQ(j - i, deque2.size()); | 421 EXPECT_EQ(j - i, deque2.size()); |
| 422 deque.swap(deque2); | 422 deque.swap(deque2); |
| 423 EXPECT_EQ(j - i, LivenessCounter::s_live); | 423 EXPECT_EQ(j - i, LivenessCounter::s_live); |
| 424 | 424 |
| 425 deque2.push_back(&counter); | 425 deque2.push_back(&counter); |
| 426 deque2.push_back(&counter); | 426 deque2.push_back(&counter); |
| 427 deque2.push_back(&counter); | 427 deque2.push_back(&counter); |
| 428 | 428 |
| 429 for (unsigned k = 0; k < 12; k++) { | 429 for (unsigned k = 0; k < 12; k++) { |
| 430 EXPECT_EQ(3 + j - i, LivenessCounter::s_live); | 430 EXPECT_EQ(3 + j - i, LivenessCounter::s_live); |
| 431 EXPECT_EQ(j - i, deque.size()); | 431 EXPECT_EQ(j - i, deque.size()); |
| 432 EXPECT_EQ(3u, deque2.size()); | 432 EXPECT_EQ(3u, deque2.size()); |
| 433 deque.swap(deque2); | 433 deque.swap(deque2); |
| 434 EXPECT_EQ(3 + j - i, LivenessCounter::s_live); | 434 EXPECT_EQ(3 + j - i, LivenessCounter::s_live); |
| 435 EXPECT_EQ(j - i, deque2.size()); | 435 EXPECT_EQ(j - i, deque2.size()); |
| 436 EXPECT_EQ(3u, deque.size()); | 436 EXPECT_EQ(3u, deque.size()); |
| 437 deque.swap(deque2); | 437 deque.swap(deque2); |
| 438 EXPECT_EQ(3 + j - i, LivenessCounter::s_live); | 438 EXPECT_EQ(3 + j - i, LivenessCounter::s_live); |
| 439 EXPECT_EQ(j - i, deque.size()); | 439 EXPECT_EQ(j - i, deque.size()); |
| 440 EXPECT_EQ(3u, deque2.size()); | 440 EXPECT_EQ(3u, deque2.size()); |
| 441 | 441 |
| 442 deque2.removeFirst(); | 442 deque2.pop_front(); |
| 443 deque2.push_back(&counter); | 443 deque2.push_back(&counter); |
| 444 } | 444 } |
| 445 } | 445 } |
| 446 } | 446 } |
| 447 } | 447 } |
| 448 | 448 |
| 449 TEST(DequeTest, SwapWithConstructorsAndDestructors) { | 449 TEST(DequeTest, SwapWithConstructorsAndDestructors) { |
| 450 testDestructorAndConstructorCallsWhenSwappingWithInlineCapacity<0>(); | 450 testDestructorAndConstructorCallsWhenSwappingWithInlineCapacity<0>(); |
| 451 testDestructorAndConstructorCallsWhenSwappingWithInlineCapacity<4>(); | 451 testDestructorAndConstructorCallsWhenSwappingWithInlineCapacity<4>(); |
| 452 testDestructorAndConstructorCallsWhenSwappingWithInlineCapacity<9>(); | 452 testDestructorAndConstructorCallsWhenSwappingWithInlineCapacity<9>(); |
| (...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 519 EXPECT_EQ(-1, *deque[1]); | 519 EXPECT_EQ(-1, *deque[1]); |
| 520 EXPECT_EQ(1, *deque[2]); | 520 EXPECT_EQ(1, *deque[2]); |
| 521 EXPECT_EQ(2, *deque[3]); | 521 EXPECT_EQ(2, *deque[3]); |
| 522 | 522 |
| 523 Pointer first(deque.takeFirst()); | 523 Pointer first(deque.takeFirst()); |
| 524 EXPECT_EQ(-2, *first); | 524 EXPECT_EQ(-2, *first); |
| 525 Pointer last(deque.takeLast()); | 525 Pointer last(deque.takeLast()); |
| 526 EXPECT_EQ(2, *last); | 526 EXPECT_EQ(2, *last); |
| 527 | 527 |
| 528 EXPECT_EQ(2u, deque.size()); | 528 EXPECT_EQ(2u, deque.size()); |
| 529 deque.removeFirst(); | 529 deque.pop_front(); |
| 530 deque.pop_back(); | 530 deque.pop_back(); |
| 531 EXPECT_EQ(0u, deque.size()); | 531 EXPECT_EQ(0u, deque.size()); |
| 532 | 532 |
| 533 deque.push_back(Pointer(new int(42))); | 533 deque.push_back(Pointer(new int(42))); |
| 534 deque[0] = Pointer(new int(24)); | 534 deque[0] = Pointer(new int(24)); |
| 535 ASSERT_EQ(1u, deque.size()); | 535 ASSERT_EQ(1u, deque.size()); |
| 536 EXPECT_EQ(24, *deque[0]); | 536 EXPECT_EQ(24, *deque[0]); |
| 537 | 537 |
| 538 deque.clear(); | 538 deque.clear(); |
| 539 } | 539 } |
| (...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 629 EXPECT_EQ(2u, deque.size()); | 629 EXPECT_EQ(2u, deque.size()); |
| 630 EXPECT_EQ(3, deque[0].value1); | 630 EXPECT_EQ(3, deque[0].value1); |
| 631 EXPECT_EQ(4, deque[0].value2); | 631 EXPECT_EQ(4, deque[0].value2); |
| 632 EXPECT_EQ(1, deque[1].value1); | 632 EXPECT_EQ(1, deque[1].value1); |
| 633 EXPECT_EQ(2, deque[1].value2); | 633 EXPECT_EQ(2, deque[1].value2); |
| 634 } | 634 } |
| 635 | 635 |
| 636 } // anonymous namespace | 636 } // anonymous namespace |
| 637 | 637 |
| 638 } // namespace WTF | 638 } // namespace WTF |
| OLD | NEW |