diff --git a/alib2std/test-src/extensions/SharedPtrTest.cpp b/alib2std/test-src/extensions/SharedPtrTest.cpp index 0f590b327cdaa1326d6f18542638b0be4d9a6e0d..9d5b90c7b6692b5fd03fa894815bd156e29a3f36 100644 --- a/alib2std/test-src/extensions/SharedPtrTest.cpp +++ b/alib2std/test-src/extensions/SharedPtrTest.cpp @@ -28,16 +28,21 @@ void SharedPtrTest::testSharedPtr1() { std::make_const(two).get(); + std::cow_shared_ptr<SharedPtrTest::Moveable> three(std::move ( two ) ); + + std::make_const(three).get(); + CPPUNIT_ASSERT(!one.unique()); CPPUNIT_ASSERT(moves == 0); CPPUNIT_ASSERT(copies == 0); + two = std::move ( three ) ; + two.get(); CPPUNIT_ASSERT(one.unique()); CPPUNIT_ASSERT(moves == 0); CPPUNIT_ASSERT(copies == 1); - } void SharedPtrTest::testSharedPtr2() { @@ -58,16 +63,21 @@ void SharedPtrTest::testSharedPtr2() { std::make_const(two).get(); + std::cow_shared_ptr<SharedPtrTest::Moveable2> three(std::move ( two ) ); + + std::make_const(three).get(); + CPPUNIT_ASSERT(!one.unique()); CPPUNIT_ASSERT(moves == 0); CPPUNIT_ASSERT(copies == 0); + two = std::move ( three ) ; + two.get(); CPPUNIT_ASSERT(one.unique()); CPPUNIT_ASSERT(moves == 0); CPPUNIT_ASSERT(copies == 1); - } void SharedPtrTest::testSharedPtr3() {