#include "SharedPtrTest.h" #include <memory> CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( SharedPtrTest, "bits" ); CPPUNIT_TEST_SUITE_REGISTRATION( SharedPtrTest ); void SharedPtrTest::setUp() { } void SharedPtrTest::tearDown() { } void SharedPtrTest::testSharedPtr1() { int moves; int copies; std::cow_shared_ptr<SharedPtrTest::Moveable> one(new SharedPtrTest::Moveable(moves, copies)); CPPUNIT_ASSERT(one.unique()); CPPUNIT_ASSERT(moves == 0); CPPUNIT_ASSERT(copies == 0); std::cow_shared_ptr<SharedPtrTest::Moveable> two(one); CPPUNIT_ASSERT(!one.unique()); CPPUNIT_ASSERT(moves == 0); CPPUNIT_ASSERT(copies == 0); std::make_const(two).get(); CPPUNIT_ASSERT(!one.unique()); CPPUNIT_ASSERT(moves == 0); CPPUNIT_ASSERT(copies == 0); two.get(); CPPUNIT_ASSERT(one.unique()); CPPUNIT_ASSERT(moves == 0); CPPUNIT_ASSERT(copies == 1); }