Boost logo

Boost-Commit :

From: fmhess_at_[hidden]
Date: 2008-03-23 10:51:41


Author: fmhess
Date: 2008-03-23 10:51:40 EDT (Sun, 23 Mar 2008)
New Revision: 43804
URL: http://svn.boost.org/trac/boost/changeset/43804

Log:
Added a little more test code for new enable_shared_from_this behavior.

Text files modified:
   trunk/libs/smart_ptr/test/esft_constructor_test.cpp | 25 +++++++++++++++++++++++++
   1 files changed, 25 insertions(+), 0 deletions(-)

Modified: trunk/libs/smart_ptr/test/esft_constructor_test.cpp
==============================================================================
--- trunk/libs/smart_ptr/test/esft_constructor_test.cpp (original)
+++ trunk/libs/smart_ptr/test/esft_constructor_test.cpp 2008-03-23 10:51:40 EDT (Sun, 23 Mar 2008)
@@ -75,6 +75,9 @@
     return a && !(a < b) && !(b < a);
 }
 
+struct Y: public boost::enable_shared_from_this<Y>
+{};
+
 int main()
 {
     BOOST_TEST( X::instances == 0 );
@@ -121,6 +124,14 @@
         early_px.reset();
         BOOST_TEST( px.use_count() == 1 );
         BOOST_TEST( X::instances == 1 );
+ px.reset();
+ try
+ {
+ x.shared_from_this();
+ BOOST_ERROR("x did not throw bad_weak_ptr");
+ }
+ catch( const boost::bad_weak_ptr &err)
+ {}
     }
 
     BOOST_TEST( X::instances == 0 );
@@ -140,5 +151,19 @@
 
     BOOST_TEST( X::instances == 0 );
 
+ {
+ boost::shared_ptr<Y> px(new Y());
+ Y y(*px);
+ px.reset();
+ try
+ {
+ y.shared_from_this();
+ }
+ catch( const boost::bad_weak_ptr &err)
+ {
+ BOOST_ERROR("y threw bad_weak_ptr");
+ }
+ }
+
     return boost::report_errors();
 }


Boost-Commit list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk