From 4e46cb060931559258f0e0d949044838857e5e92 Mon Sep 17 00:00:00 2001 From: Peter Dimov Date: Thu, 26 Dec 2013 18:05:52 +0200 Subject: [PATCH] Add one more intrusive_ptr test case. --- test/intrusive_ptr_test.cpp | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/test/intrusive_ptr_test.cpp b/test/intrusive_ptr_test.cpp index f53d75d..b3f50fb 100644 --- a/test/intrusive_ptr_test.cpp +++ b/test/intrusive_ptr_test.cpp @@ -332,9 +332,26 @@ void test() } { - boost::intrusive_ptr px(new X); + boost::intrusive_ptr px; X* detached = px.detach(); - BOOST_TEST(detached->use_count() == 1); + BOOST_TEST( px.get() == 0 ); + BOOST_TEST( detached == 0 ); + } + + { + X * p = new X; + BOOST_TEST( p->use_count() == 0 ); + + boost::intrusive_ptr px( p ); + BOOST_TEST( px.get() == p ); + BOOST_TEST( px->use_count() == 1 ); + + X * detached = px.detach(); + BOOST_TEST( px.get() == 0 ); + + BOOST_TEST( detached == p ); + BOOST_TEST( detached->use_count() == 1 ); + delete detached; } }