diff options
Diffstat (limited to 'core/fxcrt/cfx_retain_ptr_unittest.cpp')
-rw-r--r-- | core/fxcrt/cfx_retain_ptr_unittest.cpp | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/core/fxcrt/cfx_retain_ptr_unittest.cpp b/core/fxcrt/cfx_retain_ptr_unittest.cpp index 3168b5a4c7..f097b4b28c 100644 --- a/core/fxcrt/cfx_retain_ptr_unittest.cpp +++ b/core/fxcrt/cfx_retain_ptr_unittest.cpp @@ -65,6 +65,8 @@ TEST(fxcrt, RetainPtrMoveCtor) { CFX_RetainPtr<PseudoRetainable> ptr1(&obj); { CFX_RetainPtr<PseudoRetainable> ptr2(std::move(ptr1)); + EXPECT_EQ(nullptr, ptr1.Get()); + EXPECT_EQ(&obj, ptr2.Get()); EXPECT_EQ(1, obj.retain_count()); EXPECT_EQ(0, obj.release_count()); } @@ -185,6 +187,27 @@ TEST(fxcrt, RetainPtrAssign) { EXPECT_EQ(2, obj.release_count()); } +TEST(fxcrt, RetainPtrMoveAssign) { + PseudoRetainable obj; + { + CFX_RetainPtr<PseudoRetainable> ptr1(&obj); + { + CFX_RetainPtr<PseudoRetainable> ptr2; + EXPECT_EQ(&obj, ptr1.Get()); + EXPECT_EQ(nullptr, ptr2.Get()); + ptr2 = std::move(ptr1); + EXPECT_EQ(nullptr, ptr1.Get()); + EXPECT_EQ(&obj, ptr2.Get()); + EXPECT_EQ(1, obj.retain_count()); + EXPECT_EQ(0, obj.release_count()); + } + EXPECT_EQ(1, obj.retain_count()); + EXPECT_EQ(1, obj.release_count()); + } + EXPECT_EQ(1, obj.retain_count()); + EXPECT_EQ(1, obj.release_count()); +} + TEST(fxcrt, RetainPtrEquals) { PseudoRetainable obj1; PseudoRetainable obj2; |