From 7dc6b3d8102f14109ee8ea7574f359914f0c72a9 Mon Sep 17 00:00:00 2001 From: Peter Dimov Date: Sat, 26 Apr 2008 13:39:52 +0000 Subject: [PATCH] Added a few more tests. [SVN r44775] --- test/esft_regtest.cpp | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/test/esft_regtest.cpp b/test/esft_regtest.cpp index 35f672e..cc180a2 100644 --- a/test/esft_regtest.cpp +++ b/test/esft_regtest.cpp @@ -160,6 +160,7 @@ void test3() V * p = new W; boost::shared_ptr pv( p ); BOOST_TEST( pv.get() == p ); + BOOST_TEST( pv.use_count() == 1 ); } struct null_deleter @@ -171,6 +172,41 @@ void test4() { boost::shared_ptr pv( new V ); boost::shared_ptr pv2( pv.get(), null_deleter() ); + BOOST_TEST( pv2.get() == pv.get() ); + BOOST_TEST( pv2.use_count() == 1 ); +} + +void test5() +{ + V v; + + boost::shared_ptr p1( &v, null_deleter() ); + BOOST_TEST( p1.get() == &v ); + BOOST_TEST( p1.use_count() == 1 ); + + try + { + p1->shared_from_this(); + } + catch( ... ) + { + BOOST_ERROR( "p1->shared_from_this() failed" ); + } + + p1.reset(); + + boost::shared_ptr p2( &v, null_deleter() ); + BOOST_TEST( p2.get() == &v ); + BOOST_TEST( p2.use_count() == 1 ); + + try + { + p2->shared_from_this(); + } + catch( ... ) + { + BOOST_ERROR( "p2->shared_from_this() failed" ); + } } int main() @@ -179,6 +215,7 @@ int main() test2(); test3(); test4(); + test5(); return boost::report_errors(); }