| Index: core/fxcrt/cfx_retain_ptr_unittest.cpp
|
| diff --git a/core/fxcrt/cfx_retain_ptr_unittest.cpp b/core/fxcrt/cfx_retain_ptr_unittest.cpp
|
| index 692beb82ffdf3eadd21d408007a2617ea31a5d85..f9a4ecb74ffb6446209ebfa8644f2b7459859618 100644
|
| --- a/core/fxcrt/cfx_retain_ptr_unittest.cpp
|
| +++ b/core/fxcrt/cfx_retain_ptr_unittest.cpp
|
| @@ -128,6 +128,27 @@ TEST(fxcrt, RetainPtrSwap) {
|
| EXPECT_EQ(1, obj2.release_count());
|
| }
|
|
|
| +TEST(fxcrt, RetainPtrLeak) {
|
| + PseudoRetainable obj;
|
| + PseudoRetainable* leak;
|
| + {
|
| + CFX_RetainPtr<PseudoRetainable> ptr(&obj);
|
| + leak = ptr.Leak();
|
| + EXPECT_EQ(1, obj.retain_count());
|
| + EXPECT_EQ(0, obj.release_count());
|
| + }
|
| + EXPECT_EQ(1, obj.retain_count());
|
| + EXPECT_EQ(0, obj.release_count());
|
| + {
|
| + CFX_RetainPtr<PseudoRetainable> ptr;
|
| + ptr.Unleak(leak);
|
| + EXPECT_EQ(1, obj.retain_count());
|
| + EXPECT_EQ(0, obj.release_count());
|
| + }
|
| + EXPECT_EQ(1, obj.retain_count());
|
| + EXPECT_EQ(1, obj.release_count());
|
| +}
|
| +
|
| TEST(fxcrt, RetainPtrSwapNull) {
|
| PseudoRetainable obj1;
|
| {
|
|
|