From d751041fb90a1485b50587b053d4eadef32ed1e0 Mon Sep 17 00:00:00 2001 From: Peter Dimov Date: Tue, 11 May 2021 01:33:48 +0300 Subject: [PATCH] Add more test cases to sp_unique_ptr_test2 --- test/sp_unique_ptr_test2.cpp | 63 +++++++++++++++++++++++++++++++----- 1 file changed, 55 insertions(+), 8 deletions(-) diff --git a/test/sp_unique_ptr_test2.cpp b/test/sp_unique_ptr_test2.cpp index 9964e3c..cc67fa0 100644 --- a/test/sp_unique_ptr_test2.cpp +++ b/test/sp_unique_ptr_test2.cpp @@ -84,16 +84,63 @@ int main() { BOOST_TEST( Y::instances == 0 ); - std::unique_ptr p( new Y ); - BOOST_TEST( Y::instances == 1 ); + { + std::unique_ptr p( new Y ); + BOOST_TEST( Y::instances == 1 ); - boost::shared_ptr p2( std::move( p ) ); - BOOST_TEST( Y::instances == 1 ); - BOOST_TEST( p.get() == 0 ); - BOOST_TEST( p.get_deleter().moved_ ); + boost::shared_ptr p2( std::move( p ) ); - p2.reset(); - BOOST_TEST( Y::instances == 0 ); + BOOST_TEST( Y::instances == 1 ); + BOOST_TEST( p.get() == 0 ); + BOOST_TEST( p.get_deleter().moved_ ); + + p2.reset(); + BOOST_TEST( Y::instances == 0 ); + } + + { + std::unique_ptr p( new Y ); + BOOST_TEST( Y::instances == 1 ); + + boost::shared_ptr p2( std::move( p ) ); + + BOOST_TEST( Y::instances == 1 ); + BOOST_TEST( p.get() == 0 ); + BOOST_TEST( p.get_deleter().moved_ ); + + p2.reset(); + BOOST_TEST( Y::instances == 0 ); + } + + { + std::unique_ptr p( new Y ); + BOOST_TEST( Y::instances == 1 ); + + boost::shared_ptr p2; + p2 = std::move( p ); + + BOOST_TEST( Y::instances == 1 ); + BOOST_TEST( p.get() == 0 ); + BOOST_TEST( p.get_deleter().moved_ ); + + p2.reset(); + BOOST_TEST( Y::instances == 0 ); + } + + { + std::unique_ptr p( new Y ); + BOOST_TEST( Y::instances == 1 ); + + boost::shared_ptr p2( new int(0) ); + p2 = std::move( p ); + + BOOST_TEST( Y::instances == 1 ); + BOOST_TEST( p.get() == 0 ); + BOOST_TEST( p.get_deleter().moved_ ); + + p2.reset(); + BOOST_TEST( Y::instances == 0 ); + } return boost::report_errors(); }