OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2012 Apple Inc. All rights reserved. | 2 * Copyright (C) 2012 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 533 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
544 TEST(ListHashSetTest, WithOwnPtr) { | 544 TEST(ListHashSetTest, WithOwnPtr) { |
545 bool deleted1 = false, deleted2 = false; | 545 bool deleted1 = false, deleted2 = false; |
546 | 546 |
547 typedef ListHashSet<std::unique_ptr<Dummy>> OwnPtrSet; | 547 typedef ListHashSet<std::unique_ptr<Dummy>> OwnPtrSet; |
548 OwnPtrSet set; | 548 OwnPtrSet set; |
549 | 549 |
550 Dummy* ptr1 = new Dummy(deleted1); | 550 Dummy* ptr1 = new Dummy(deleted1); |
551 { | 551 { |
552 // AddResult in a separate scope to avoid assertion hit, | 552 // AddResult in a separate scope to avoid assertion hit, |
553 // since we modify the container further. | 553 // since we modify the container further. |
554 OwnPtrSet::AddResult res1 = set.add(wrapUnique(ptr1)); | 554 OwnPtrSet::AddResult res1 = set.add(WTF::wrapUnique(ptr1)); |
555 EXPECT_EQ(res1.storedValue->get(), ptr1); | 555 EXPECT_EQ(res1.storedValue->get(), ptr1); |
556 } | 556 } |
557 | 557 |
558 EXPECT_FALSE(deleted1); | 558 EXPECT_FALSE(deleted1); |
559 EXPECT_EQ(1UL, set.size()); | 559 EXPECT_EQ(1UL, set.size()); |
560 OwnPtrSet::iterator it1 = set.find(ptr1); | 560 OwnPtrSet::iterator it1 = set.find(ptr1); |
561 EXPECT_NE(set.end(), it1); | 561 EXPECT_NE(set.end(), it1); |
562 EXPECT_EQ(ptr1, (*it1).get()); | 562 EXPECT_EQ(ptr1, (*it1).get()); |
563 | 563 |
564 Dummy* ptr2 = new Dummy(deleted2); | 564 Dummy* ptr2 = new Dummy(deleted2); |
565 { | 565 { |
566 OwnPtrSet::AddResult res2 = set.add(wrapUnique(ptr2)); | 566 OwnPtrSet::AddResult res2 = set.add(WTF::wrapUnique(ptr2)); |
567 EXPECT_EQ(res2.storedValue->get(), ptr2); | 567 EXPECT_EQ(res2.storedValue->get(), ptr2); |
568 } | 568 } |
569 | 569 |
570 EXPECT_FALSE(deleted2); | 570 EXPECT_FALSE(deleted2); |
571 EXPECT_EQ(2UL, set.size()); | 571 EXPECT_EQ(2UL, set.size()); |
572 OwnPtrSet::iterator it2 = set.find(ptr2); | 572 OwnPtrSet::iterator it2 = set.find(ptr2); |
573 EXPECT_NE(set.end(), it2); | 573 EXPECT_NE(set.end(), it2); |
574 EXPECT_EQ(ptr2, (*it2).get()); | 574 EXPECT_EQ(ptr2, (*it2).get()); |
575 | 575 |
576 set.remove(ptr1); | 576 set.remove(ptr1); |
577 EXPECT_TRUE(deleted1); | 577 EXPECT_TRUE(deleted1); |
578 | 578 |
579 set.clear(); | 579 set.clear(); |
580 EXPECT_TRUE(deleted2); | 580 EXPECT_TRUE(deleted2); |
581 EXPECT_TRUE(set.isEmpty()); | 581 EXPECT_TRUE(set.isEmpty()); |
582 | 582 |
583 deleted1 = false; | 583 deleted1 = false; |
584 deleted2 = false; | 584 deleted2 = false; |
585 { | 585 { |
586 OwnPtrSet set; | 586 OwnPtrSet set; |
587 set.add(makeUnique<Dummy>(deleted1)); | 587 set.add(WTF::makeUnique<Dummy>(deleted1)); |
588 set.add(makeUnique<Dummy>(deleted2)); | 588 set.add(WTF::makeUnique<Dummy>(deleted2)); |
589 } | 589 } |
590 EXPECT_TRUE(deleted1); | 590 EXPECT_TRUE(deleted1); |
591 EXPECT_TRUE(deleted2); | 591 EXPECT_TRUE(deleted2); |
592 | 592 |
593 deleted1 = false; | 593 deleted1 = false; |
594 deleted2 = false; | 594 deleted2 = false; |
595 std::unique_ptr<Dummy> ownPtr1; | 595 std::unique_ptr<Dummy> ownPtr1; |
596 std::unique_ptr<Dummy> ownPtr2; | 596 std::unique_ptr<Dummy> ownPtr2; |
597 ptr1 = new Dummy(deleted1); | 597 ptr1 = new Dummy(deleted1); |
598 ptr2 = new Dummy(deleted2); | 598 ptr2 = new Dummy(deleted2); |
599 { | 599 { |
600 OwnPtrSet set; | 600 OwnPtrSet set; |
601 set.add(wrapUnique(ptr1)); | 601 set.add(WTF::wrapUnique(ptr1)); |
602 set.add(wrapUnique(ptr2)); | 602 set.add(WTF::wrapUnique(ptr2)); |
603 ownPtr1 = set.takeFirst(); | 603 ownPtr1 = set.takeFirst(); |
604 EXPECT_EQ(1UL, set.size()); | 604 EXPECT_EQ(1UL, set.size()); |
605 ownPtr2 = set.take(ptr2); | 605 ownPtr2 = set.take(ptr2); |
606 EXPECT_TRUE(set.isEmpty()); | 606 EXPECT_TRUE(set.isEmpty()); |
607 } | 607 } |
608 EXPECT_FALSE(deleted1); | 608 EXPECT_FALSE(deleted1); |
609 EXPECT_FALSE(deleted2); | 609 EXPECT_FALSE(deleted2); |
610 | 610 |
611 EXPECT_EQ(ptr1, ownPtr1.get()); | 611 EXPECT_EQ(ptr1, ownPtr1.get()); |
612 EXPECT_EQ(ptr2, ownPtr2.get()); | 612 EXPECT_EQ(ptr2, ownPtr2.get()); |
(...skipping 200 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
813 | 813 |
814 // ... but they don't have any pass-out (like take()) methods. | 814 // ... but they don't have any pass-out (like take()) methods. |
815 | 815 |
816 set.remove(MoveOnly(3)); | 816 set.remove(MoveOnly(3)); |
817 set.clear(); | 817 set.clear(); |
818 } | 818 } |
819 | 819 |
820 } // anonymous namespace | 820 } // anonymous namespace |
821 | 821 |
822 } // namespace WTF | 822 } // namespace WTF |
OLD | NEW |