From 64b3c1e6915d14b3a66f584c6f229139da5e321e Mon Sep 17 00:00:00 2001 From: Alexander Alekhin Date: Fri, 7 Sep 2018 22:16:53 +0000 Subject: [PATCH] core(test): update cv::Ptr tests --- modules/core/test/test_ptr.cpp | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/modules/core/test/test_ptr.cpp b/modules/core/test/test_ptr.cpp index 2a09984..24d947c 100644 --- a/modules/core/test/test_ptr.cpp +++ b/modules/core/test/test_ptr.cpp @@ -98,22 +98,25 @@ TEST(Core_Ptr, owning_ctor) Ptr p(r); EXPECT_EQ(r, p.get()); } - EXPECT_TRUE(deleted); { Ptr p(&dummyObject, ReportingDeleter(&deleted)); EXPECT_EQ(&dummyObject, p.get()); } - EXPECT_TRUE(deleted); { Ptr p((void*)0, ReportingDeleter(&deleted)); EXPECT_NULL(p.get()); } + EXPECT_TRUE(deleted); // Differ from OpenCV 3.4 (but conformant to std::shared_ptr, see below) - EXPECT_FALSE(deleted); + { + std::shared_ptr p((void*)0, ReportingDeleter(&deleted)); + EXPECT_NULL(p.get()); + } + EXPECT_TRUE(deleted); } TEST(Core_Ptr, sharing_ctor) @@ -337,7 +340,7 @@ TEST(Core_Ptr, casts) Ptr p2 = p1.dynamicCast(); EXPECT_NULL(p2.get()); p1.release(); - EXPECT_FALSE(deleted); + EXPECT_TRUE(deleted); } EXPECT_TRUE(deleted); @@ -400,4 +403,16 @@ TEST(Core_Ptr, specialized_deleter) ASSERT_TRUE(sd.deleted); } +TEST(Core_Ptr, specialized_deleter_via_reset) +{ + SpeciallyDeletable sd; + + { + Ptr p; + p.reset(&sd); + } + + ASSERT_TRUE(sd.deleted); +} + }} // namespace -- 2.7.4