diff --git a/test/make_local_shared_esft_test.cpp b/test/make_local_shared_esft_test.cpp index 95b651e..b5e130e 100644 --- a/test/make_local_shared_esft_test.cpp +++ b/test/make_local_shared_esft_test.cpp @@ -51,6 +51,7 @@ int main() { boost::shared_ptr< X > px = boost::make_local_shared< X >(); + BOOST_TEST( px.use_count() == 1 ); BOOST_TEST( X::instances == 1 ); try @@ -73,6 +74,7 @@ int main() { boost::shared_ptr< X > px = boost::make_local_shared_noinit< X >(); + BOOST_TEST( px.use_count() == 1 ); BOOST_TEST( X::instances == 1 ); try @@ -95,6 +97,7 @@ int main() { boost::shared_ptr< X > px = boost::make_local_shared< X >( 1 ); + BOOST_TEST( px.use_count() == 1 ); BOOST_TEST( X::instances == 1 ); try @@ -117,6 +120,7 @@ int main() { boost::shared_ptr< X > px = boost::make_local_shared< X >( 1, 2 ); + BOOST_TEST( px.use_count() == 1 ); BOOST_TEST( X::instances == 1 ); try @@ -139,6 +143,7 @@ int main() { boost::shared_ptr< X > px = boost::make_local_shared< X >( 1, 2, 3 ); + BOOST_TEST( px.use_count() == 1 ); BOOST_TEST( X::instances == 1 ); try @@ -161,6 +166,7 @@ int main() { boost::shared_ptr< X > px = boost::make_local_shared< X >( 1, 2, 3, 4 ); + BOOST_TEST( px.use_count() == 1 ); BOOST_TEST( X::instances == 1 ); try @@ -183,6 +189,7 @@ int main() { boost::shared_ptr< X > px = boost::make_local_shared< X >( 1, 2, 3, 4, 5 ); + BOOST_TEST( px.use_count() == 1 ); BOOST_TEST( X::instances == 1 ); try @@ -205,6 +212,7 @@ int main() { boost::shared_ptr< X > px = boost::make_local_shared< X >( 1, 2, 3, 4, 5, 6 ); + BOOST_TEST( px.use_count() == 1 ); BOOST_TEST( X::instances == 1 ); try @@ -227,6 +235,7 @@ int main() { boost::shared_ptr< X > px = boost::make_local_shared< X >( 1, 2, 3, 4, 5, 6, 7 ); + BOOST_TEST( px.use_count() == 1 ); BOOST_TEST( X::instances == 1 ); try @@ -249,6 +258,7 @@ int main() { boost::shared_ptr< X > px = boost::make_local_shared< X >( 1, 2, 3, 4, 5, 6, 7, 8 ); + BOOST_TEST( px.use_count() == 1 ); BOOST_TEST( X::instances == 1 ); try @@ -271,6 +281,7 @@ int main() { boost::shared_ptr< X > px = boost::make_local_shared< X >( 1, 2, 3, 4, 5, 6, 7, 8, 9 ); + BOOST_TEST( px.use_count() == 1 ); BOOST_TEST( X::instances == 1 ); try diff --git a/test/make_local_shared_test.cpp b/test/make_local_shared_test.cpp index c5f7fe3..e972c0d 100644 --- a/test/make_local_shared_test.cpp +++ b/test/make_local_shared_test.cpp @@ -62,12 +62,20 @@ public: int X::instances = 0; +template static long use_count( boost::local_shared_ptr const & p ) +{ + return boost::shared_ptr( p ).use_count() - 1; +} + int main() { { boost::local_shared_ptr< int > pi = boost::make_local_shared< int >(); BOOST_TEST( pi.get() != 0 ); + BOOST_TEST( pi.local_use_count() == 1 ); + BOOST_TEST( use_count( pi ) == 1 ); + BOOST_TEST( *pi == 0 ); } @@ -81,6 +89,9 @@ int main() boost::local_shared_ptr< int > pi = boost::make_local_shared< int >( 5 ); BOOST_TEST( pi.get() != 0 ); + BOOST_TEST( pi.local_use_count() == 1 ); + BOOST_TEST( use_count( pi ) == 1 ); + BOOST_TEST( *pi == 5 ); } @@ -92,6 +103,8 @@ int main() BOOST_TEST( X::instances == 1 ); BOOST_TEST( pi.get() != 0 ); + BOOST_TEST( pi.local_use_count() == 1 ); + BOOST_TEST( use_count( pi ) == 1 ); BOOST_TEST( pi->v == 0 ); pi.reset(); @@ -105,6 +118,8 @@ int main() BOOST_TEST( X::instances == 1 ); BOOST_TEST( pi.get() != 0 ); + BOOST_TEST( pi.local_use_count() == 1 ); + BOOST_TEST( use_count( pi ) == 1 ); BOOST_TEST( pi->v == 0 ); pi.reset(); @@ -118,6 +133,8 @@ int main() BOOST_TEST( X::instances == 1 ); BOOST_TEST( pi.get() != 0 ); + BOOST_TEST( pi.local_use_count() == 1 ); + BOOST_TEST( use_count( pi ) == 1 ); BOOST_TEST( pi->v == 1 ); pi.reset(); @@ -131,6 +148,8 @@ int main() BOOST_TEST( X::instances == 1 ); BOOST_TEST( pi.get() != 0 ); + BOOST_TEST( pi.local_use_count() == 1 ); + BOOST_TEST( use_count( pi ) == 1 ); BOOST_TEST( pi->v == 1+2 ); pi.reset(); @@ -144,6 +163,8 @@ int main() BOOST_TEST( X::instances == 1 ); BOOST_TEST( pi.get() != 0 ); + BOOST_TEST( pi.local_use_count() == 1 ); + BOOST_TEST( use_count( pi ) == 1 ); BOOST_TEST( pi->v == 1+2+3 ); pi.reset(); @@ -157,6 +178,8 @@ int main() BOOST_TEST( X::instances == 1 ); BOOST_TEST( pi.get() != 0 ); + BOOST_TEST( pi.local_use_count() == 1 ); + BOOST_TEST( use_count( pi ) == 1 ); BOOST_TEST( pi->v == 1+2+3+4 ); pi.reset(); @@ -170,6 +193,8 @@ int main() BOOST_TEST( X::instances == 1 ); BOOST_TEST( pi.get() != 0 ); + BOOST_TEST( pi.local_use_count() == 1 ); + BOOST_TEST( use_count( pi ) == 1 ); BOOST_TEST( pi->v == 1+2+3+4+5 ); pi.reset(); @@ -183,6 +208,8 @@ int main() BOOST_TEST( X::instances == 1 ); BOOST_TEST( pi.get() != 0 ); + BOOST_TEST( pi.local_use_count() == 1 ); + BOOST_TEST( use_count( pi ) == 1 ); BOOST_TEST( pi->v == 1+2+3+4+5+6 ); pi.reset(); @@ -196,6 +223,8 @@ int main() BOOST_TEST( X::instances == 1 ); BOOST_TEST( pi.get() != 0 ); + BOOST_TEST( pi.local_use_count() == 1 ); + BOOST_TEST( use_count( pi ) == 1 ); BOOST_TEST( pi->v == 1+2+3+4+5+6+7 ); pi.reset(); @@ -209,6 +238,8 @@ int main() BOOST_TEST( X::instances == 1 ); BOOST_TEST( pi.get() != 0 ); + BOOST_TEST( pi.local_use_count() == 1 ); + BOOST_TEST( use_count( pi ) == 1 ); BOOST_TEST( pi->v == 1+2+3+4+5+6+7+8 ); pi.reset(); @@ -222,6 +253,8 @@ int main() BOOST_TEST( X::instances == 1 ); BOOST_TEST( pi.get() != 0 ); + BOOST_TEST( pi.local_use_count() == 1 ); + BOOST_TEST( use_count( pi ) == 1 ); BOOST_TEST( pi->v == 1+2+3+4+5+6+7+8+9 ); pi.reset();