Changeset 477 for library/tests/test_shared_ptr.cpp
- Timestamp:
- 08/05/09 14:40:03 (15 years ago)
- Files:
-
- 1 modified
Legend:
- Unmodified
- Added
- Removed
-
library/tests/test_shared_ptr.cpp
r421 r477 3 3 #include <vector> 4 4 5 class Foo 6 { 5 class Foo { 7 6 private: 8 7 int x; 9 8 10 9 public: 11 Foo(int x):x(x) { }10 Foo ( int x ) : x ( x ) { } 12 11 13 int get_x() const { return x; } 12 int get_x() const { 13 return x; 14 } 14 15 15 void set_x(int nx) { x = nx; } 16 void set_x ( int nx ) { 17 x = nx; 18 } 16 19 }; 17 20 18 21 typedef std::vector<bdm::shared_ptr<Foo> > TFooVector; 19 22 20 TEST(test_shared_ptr) 21 { 22 TFooVector v; 23 TEST ( test_shared_ptr ) { 24 TFooVector v; 23 25 24 25 CHECK_EQUAL(0l, zero.use_count());26 bdm::shared_ptr<Foo> z2(zero);27 CHECK_EQUAL(0l, z2.use_count());26 bdm::shared_ptr<Foo> zero; 27 CHECK_EQUAL ( 0l, zero.use_count() ); 28 bdm::shared_ptr<Foo> z2 ( zero ); 29 CHECK_EQUAL ( 0l, z2.use_count() ); 28 30 29 bdm::shared_ptr<Foo> one(new Foo(1));30 v.push_back(one);31 CHECK(!one.unique());31 bdm::shared_ptr<Foo> one ( new Foo ( 1 ) ); 32 v.push_back ( one ); 33 CHECK ( !one.unique() ); 32 34 33 v.push_back(one);34 v.push_back(bdm::shared_ptr<Foo>(new Foo(2)));35 CHECK_EQUAL(static_cast<TFooVector::size_type>(3), v.size());35 v.push_back ( one ); 36 v.push_back ( bdm::shared_ptr<Foo> ( new Foo ( 2 ) ) ); 37 CHECK_EQUAL ( static_cast<TFooVector::size_type> ( 3 ), v.size() ); 36 38 37 CHECK(v[0] == v[1]);38 CHECK(v[1] != v[2]);39 CHECK ( v[0] == v[1] ); 40 CHECK ( v[1] != v[2] ); 39 41 40 Foo c(*(v[0])); 41 CHECK_EQUAL(1, c.get_x()); 42 43 Foo *p = v[1].get(); 44 CHECK_EQUAL(1, p->get_x()); 45 p->set_x(12); 46 CHECK_EQUAL(12, one->get_x()); 42 Foo c ( * ( v[0] ) ); 43 CHECK_EQUAL ( 1, c.get_x() ); 47 44 48 CHECK(v[2].unique()); 49 CHECK_EQUAL(2, v[2]->get_x()); 45 Foo *p = v[1].get(); 46 CHECK_EQUAL ( 1, p->get_x() ); 47 p->set_x ( 12 ); 48 CHECK_EQUAL ( 12, one->get_x() ); 49 50 CHECK ( v[2].unique() ); 51 CHECK_EQUAL ( 2, v[2]->get_x() ); 50 52 }