Skip to content

Commit

Permalink
Test pointer value instead of only isValid()
Browse files Browse the repository at this point in the history
  • Loading branch information
ropez committed Feb 13, 2010
1 parent b8616d1 commit da051f7
Showing 1 changed file with 17 additions and 12 deletions.
29 changes: 17 additions & 12 deletions src/test/test_smart_pointers.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -117,21 +117,23 @@ class TestAutoPointer : public CppUnit::TestFixture
CPPUNIT_ASSERT_EQUAL(1, MockObject::count);
AutoPointer<MockObject> q(new MockObject);
CPPUNIT_ASSERT_EQUAL(2, MockObject::count);
MockObject* pp = p.get();
q = p;
CPPUNIT_ASSERT_EQUAL(1, MockObject::count);
CPPUNIT_ASSERT(q.isValid());
CPPUNIT_ASSERT_EQUAL(pp, q.get());
CPPUNIT_ASSERT(p.isNull());
p = q;
CPPUNIT_ASSERT_EQUAL(1, MockObject::count);
CPPUNIT_ASSERT(p.isValid());
CPPUNIT_ASSERT_EQUAL(pp, p.get());
CPPUNIT_ASSERT(q.isNull());
}

void testSelfAssignment() {
AutoPointer<MockObject> p(new MockObject);
MockObject* pp = p.get();
p = p;
CPPUNIT_ASSERT_EQUAL(1, MockObject::count);
CPPUNIT_ASSERT(p.isValid());
CPPUNIT_ASSERT_EQUAL(pp, p.get());
}
};
CPPUNIT_TEST_SUITE_REGISTRATION(TestAutoPointer);
Expand Down Expand Up @@ -184,23 +186,25 @@ class TestReferencePointer : public CppUnit::TestFixture
CPPUNIT_ASSERT_EQUAL(1, MockObject::count);
ReferencePointer<MockObject> q(new MockObject);
CPPUNIT_ASSERT_EQUAL(2, MockObject::count);
MockObject* pp = p.get();
q = p;
CPPUNIT_ASSERT_EQUAL(1, MockObject::count);
CPPUNIT_ASSERT(q.isValid());
CPPUNIT_ASSERT(p.isValid());
CPPUNIT_ASSERT_EQUAL(pp, q.get());
CPPUNIT_ASSERT_EQUAL(pp, p.get());
CPPUNIT_ASSERT(p->shared());
p = q;
CPPUNIT_ASSERT_EQUAL(1, MockObject::count);
CPPUNIT_ASSERT(p.isValid());
CPPUNIT_ASSERT(q.isValid());
CPPUNIT_ASSERT_EQUAL(pp, q.get());
CPPUNIT_ASSERT_EQUAL(pp, p.get());
CPPUNIT_ASSERT(p->shared());
}

void testSelfAssignment() {
ReferencePointer<MockObject> p(new MockObject);
MockObject* pp = p.get();
p = p;
CPPUNIT_ASSERT_EQUAL(1, MockObject::count);
CPPUNIT_ASSERT(p.isValid());
CPPUNIT_ASSERT_EQUAL(pp, p.get());
CPPUNIT_ASSERT(!p->shared());
}
};
Expand Down Expand Up @@ -252,16 +256,17 @@ class TestSharedDataPointer : public CppUnit::TestFixture
CPPUNIT_ASSERT_EQUAL(1, MockObject::count);
SharedDataPointer<MockData> q(new MockData);
CPPUNIT_ASSERT_EQUAL(2, MockObject::count);
const MockData* pp = p.const_data();
q = p;
CPPUNIT_ASSERT_EQUAL(1, MockObject::count);
CPPUNIT_ASSERT(q.const_data() != 0);
CPPUNIT_ASSERT(p.const_data() != 0);
CPPUNIT_ASSERT_EQUAL(pp, q.const_data());
CPPUNIT_ASSERT_EQUAL(pp, p.const_data());
CPPUNIT_ASSERT_EQUAL(q.const_data(), p.const_data());
CPPUNIT_ASSERT(p.const_data()->shared());
p = q;
CPPUNIT_ASSERT_EQUAL(1, MockObject::count);
CPPUNIT_ASSERT(q.const_data() != 0);
CPPUNIT_ASSERT(p.const_data() != 0);
CPPUNIT_ASSERT_EQUAL(pp, q.const_data());
CPPUNIT_ASSERT_EQUAL(pp, p.const_data());
CPPUNIT_ASSERT_EQUAL(q.const_data(), p.const_data());
}

Expand Down

0 comments on commit da051f7

Please sign in to comment.