Add more test cases to sp_unique_ptr_test2

This commit is contained in:
Peter Dimov
2021-05-11 01:33:48 +03:00
parent d41546ddce
commit d751041fb9

View File

@ -84,16 +84,63 @@ int main()
{
BOOST_TEST( Y::instances == 0 );
std::unique_ptr<Y, YD> p( new Y );
BOOST_TEST( Y::instances == 1 );
{
std::unique_ptr<Y, YD> p( new Y );
BOOST_TEST( Y::instances == 1 );
boost::shared_ptr<Y> p2( std::move( p ) );
BOOST_TEST( Y::instances == 1 );
BOOST_TEST( p.get() == 0 );
BOOST_TEST( p.get_deleter().moved_ );
boost::shared_ptr<Y> 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<Y, YD> p( new Y );
BOOST_TEST( Y::instances == 1 );
boost::shared_ptr<void> 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<Y, YD> p( new Y );
BOOST_TEST( Y::instances == 1 );
boost::shared_ptr<Y> 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<Y, YD> p( new Y );
BOOST_TEST( Y::instances == 1 );
boost::shared_ptr<void> 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();
}