Commit 64b3c1e6 authored by Alexander Alekhin's avatar Alexander Alekhin

core(test): update cv::Ptr tests

parent 15aee09c
...@@ -98,22 +98,25 @@ TEST(Core_Ptr, owning_ctor) ...@@ -98,22 +98,25 @@ TEST(Core_Ptr, owning_ctor)
Ptr<void> p(r); Ptr<void> p(r);
EXPECT_EQ(r, p.get()); EXPECT_EQ(r, p.get());
} }
EXPECT_TRUE(deleted); EXPECT_TRUE(deleted);
{ {
Ptr<int> p(&dummyObject, ReportingDeleter(&deleted)); Ptr<int> p(&dummyObject, ReportingDeleter(&deleted));
EXPECT_EQ(&dummyObject, p.get()); EXPECT_EQ(&dummyObject, p.get());
} }
EXPECT_TRUE(deleted); EXPECT_TRUE(deleted);
{ {
Ptr<void> p((void*)0, ReportingDeleter(&deleted)); Ptr<void> p((void*)0, ReportingDeleter(&deleted));
EXPECT_NULL(p.get()); 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<void> p((void*)0, ReportingDeleter(&deleted));
EXPECT_NULL(p.get());
}
EXPECT_TRUE(deleted);
} }
TEST(Core_Ptr, sharing_ctor) TEST(Core_Ptr, sharing_ctor)
...@@ -337,7 +340,7 @@ TEST(Core_Ptr, casts) ...@@ -337,7 +340,7 @@ TEST(Core_Ptr, casts)
Ptr<SubReporter> p2 = p1.dynamicCast<SubReporter>(); Ptr<SubReporter> p2 = p1.dynamicCast<SubReporter>();
EXPECT_NULL(p2.get()); EXPECT_NULL(p2.get());
p1.release(); p1.release();
EXPECT_FALSE(deleted); EXPECT_TRUE(deleted);
} }
EXPECT_TRUE(deleted); EXPECT_TRUE(deleted);
...@@ -400,4 +403,16 @@ TEST(Core_Ptr, specialized_deleter) ...@@ -400,4 +403,16 @@ TEST(Core_Ptr, specialized_deleter)
ASSERT_TRUE(sd.deleted); ASSERT_TRUE(sd.deleted);
} }
TEST(Core_Ptr, specialized_deleter_via_reset)
{
SpeciallyDeletable sd;
{
Ptr<SpeciallyDeletable> p;
p.reset(&sd);
}
ASSERT_TRUE(sd.deleted);
}
}} // namespace }} // namespace
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment