From 72a879dbc307c4d070cc094808267dae08b16187 Mon Sep 17 00:00:00 2001 From: fchn289 Date: Tue, 14 May 2024 09:47:11 +0800 Subject: [PATCH] SafePtr: clean ut --- ut/safe_mem/SafePtrTest.cpp | 38 ++++++++++++++++++------------------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/ut/safe_mem/SafePtrTest.cpp b/ut/safe_mem/SafePtrTest.cpp index 479674e..fa61a73 100644 --- a/ut/safe_mem/SafePtrTest.cpp +++ b/ut/safe_mem/SafePtrTest.cpp @@ -83,9 +83,8 @@ TEST(SafePtrTest, invalidCast_retNull) //dynamic_pointer_cast(make_safe()); // invalid protect->base, will compile err } -#define COPY_CAST +#define COPY // *********************************************************************************************** -struct D2 : public Derive { int value() const override { return 2; } }; TEST(SafePtrTest, GOLD_safe_cp_sameType) { auto one = make_safe(42); @@ -98,28 +97,29 @@ TEST(SafePtrTest, GOLD_safe_cp_sameType) } EXPECT_EQ(43, *one.get()) << "REQ: 1 del not impact another"; } -TEST(SafePtrTest, GOLD_safe_cp_normal) +TEST(SafePtrTest, GOLD_safeCp_self_base_void) { -// EXPECT_EQ(0, SafePtr(make_safe())) << "REQ: cp diff type - compile-err"; -// EXPECT_EQ(0, dynamic_pointer_cast(make_safe())) << "REQ: cast - also compile-err"; - - EXPECT_EQ(1, SafePtr(make_safe()).get()->value()) << "REQ: cp to base"; - EXPECT_EQ(1, dynamic_pointer_cast(make_safe()).get()->value()) << "REQ: cast"; + auto d = make_safe(); + EXPECT_EQ(1, SafePtr(d).get()->value()) << "REQ: cp to self"; + EXPECT_EQ(1, SafePtr(d).get()->value()) << "REQ: cp to base"; - EXPECT_NE(nullptr, SafePtr(make_safe()).get()) << "REQ: cp to void OK"; - EXPECT_NE(nullptr, dynamic_pointer_cast(make_safe()).get()) << "REQ: cast OK"; + EXPECT_EQ(0, dynamic_pointer_cast(SafePtr(make_safe())).get()->value()) << "REQ: cp any->void"; + EXPECT_EQ(1, dynamic_pointer_cast(SafePtr(make_safe())).get()->value()) << "req: cp any->void"; } -TEST(SafePtrTest, safe_cp_extended) +TEST(SafePtrTest, invalidCp_compileErr) // cp's compile-err is safer than dynamic_pointer_cast that may ret nullptr { -// EXPECT_EQ(1, SafePtr(SafePtr(make_safe())).get()->value()) << "REQ: cp to derived - compile-err"; - EXPECT_EQ(1, dynamic_pointer_cast(SafePtr(make_safe())).get()->value()) << "REQ: cast OK"; - EXPECT_EQ(nullptr, dynamic_pointer_cast(make_safe()).get()) << "REQ: cast NOK so has to check null before use"; - -// EXPECT_EQ(1, SafePtr(SafePtr(SafePtr(make_safe()))).get()->value()) << "REQ: cp - compile-err"; - EXPECT_EQ(1, dynamic_pointer_cast(SafePtr(SafePtr(make_safe()))).get()->value()) << "REQ: void to realType_"; - EXPECT_EQ(1, dynamic_pointer_cast(SafePtr(SafePtr(make_safe()))).get()->value()) << "REQ: void to diffType_"; - EXPECT_EQ(nullptr, dynamic_pointer_cast(SafePtr(SafePtr(make_safe()))).get()) << "REQ: void to unknown type"; + //SafePtr(SafePtr(make_safe())); // derived->base->derive: cp compile err, can dynamic_pointer_cast instead + //SafePtr(SafePtr(make_safe())); // void->origin: cp compile err, can dynamic_pointer_cast instead + //SafePtr(SafePtr(make_safe())); // derive->void->base: cp compile err, dynamic_pointer_cast ret nullptr + + //SafePtr(make_safe()); // base->derived: cp compile-err; dynamic_pointer_cast ret nullptr + + //SafePtr(make_safe(7)); // int->char: both cp & dynamic_pointer_cast will compile err + + //SafePtr(make_safe()); // private->base: both cp & dynamic_pointer_cast will compile err + //SafePtr(make_safe()); // protect->base: both cp & dynamic_pointer_cast will compile err } +struct D2 : public Derive { int value() const override { return 2; } }; TEST(SafePtrTest, safe_cast_bugFix) { SafePtr b = make_safe(); // realType_ is D2