diff --git a/base/test/unittest/common/utils_refbase_test.cpp b/base/test/unittest/common/utils_refbase_test.cpp index 5253f564968a15931c843f9e4985e7c957dd2175..adb00d6b733ecb2707d90f6c6268b52737424e50 100644 --- a/base/test/unittest/common/utils_refbase_test.cpp +++ b/base/test/unittest/common/utils_refbase_test.cpp @@ -35,6 +35,7 @@ static int g_sptrCount = 0; static int g_wptrCount = 0; static int g_refbaseflag = 0; static int g_freeFlag = 0; +static int g_onLastWeakRefFlag = 0; class UtilsRefbaseTest : public testing::Test { public: @@ -67,6 +68,7 @@ public: void OnLastWeakRef(const void *objectIda) override { + g_onLastWeakRefFlag = 1; } void SetRefPtr() @@ -484,6 +486,19 @@ HWTEST_F(UtilsRefbaseTest, testRefbaseAcquire001, TestSize.Level0) EXPECT_EQ(g_freeFlag, 1); } +/* + * @tc.name: testRefbaseOnLastWeakRef001 + * @tc.desc: Refbase + */ +HWTEST_F(UtilsRefbaseTest, testRefbaseOnLastWeakRef001, TestSize.Level0) +{ + RefBaseTest* testobject = new RefBaseTest(); + g_onLastWeakRefFlag = 0; + + testobject->OnLastWeakRef(this); + EXPECT_EQ(g_onLastWeakRefFlag, 1); +} + /* * @tc.name: testSptrefbase001 * @tc.desc: Refbase