]> git.proxmox.com Git - ceph.git/blobdiff - ceph/src/boost/libs/smart_ptr/test/allocate_shared_esft_test.cpp
update sources to v12.2.3
[ceph.git] / ceph / src / boost / libs / smart_ptr / test / allocate_shared_esft_test.cpp
index 2bb8ccc9a3feaa1aaeac5e227a854702d1713e2f..7902313dda951ae3c4a3f7cc6ac8641ce21f35ea 100644 (file)
@@ -62,6 +62,28 @@ int main()
 
     BOOST_TEST( X::instances == 0 );
 
+    {
+        boost::shared_ptr< X > px = boost::allocate_shared_noinit< X >( std::allocator<void>() );
+        BOOST_TEST( X::instances == 1 );
+
+        try
+        {
+            boost::shared_ptr< X > qx = px->shared_from_this();
+
+            BOOST_TEST( px == qx );
+            BOOST_TEST( !( px < qx ) && !( qx < px ) );
+
+            px.reset();
+            BOOST_TEST( X::instances == 1 );
+        }
+        catch( boost::bad_weak_ptr const& )
+        {
+            BOOST_ERROR( "px->shared_from_this() failed" );
+        }
+    }
+
+    BOOST_TEST( X::instances == 0 );
+
     {
         boost::shared_ptr< X > px = boost::allocate_shared< X >( std::allocator<void>(), 1 );
         BOOST_TEST( X::instances == 1 );