diff options
| author | Kim van der Riet <kpvdr@apache.org> | 2007-11-26 21:48:37 +0000 |
|---|---|---|
| committer | Kim van der Riet <kpvdr@apache.org> | 2007-11-26 21:48:37 +0000 |
| commit | c598f75a71e141ca8738a4c11cd8d93dd7ae5dd3 (patch) | |
| tree | 8b3431841d1f18e0b21fc69f9a286851007b15c7 /cpp/src/tests | |
| parent | acde3eb25b94333bc7772133fa24441e1771a67c (diff) | |
| download | qpid-python-c598f75a71e141ca8738a4c11cd8d93dd7ae5dd3.tar.gz | |
Switched all regular PersistentMessage* and PersistentMessage& to intrusive_ptr<PersistentMessage>, so as to hook into the refcount for a message while it is in the store.
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@598440 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'cpp/src/tests')
| -rw-r--r-- | cpp/src/tests/MessageBuilderTest.cpp | 12 | ||||
| -rw-r--r-- | cpp/src/tests/TxAckTest.cpp | 8 | ||||
| -rw-r--r-- | cpp/src/tests/TxPublishTest.cpp | 19 |
3 files changed, 19 insertions, 20 deletions
diff --git a/cpp/src/tests/MessageBuilderTest.cpp b/cpp/src/tests/MessageBuilderTest.cpp index 023aefc3fa..7335867140 100644 --- a/cpp/src/tests/MessageBuilderTest.cpp +++ b/cpp/src/tests/MessageBuilderTest.cpp @@ -38,7 +38,7 @@ class MessageBuilderTest : public CppUnit::TestCase enum Op {STAGE=1, APPEND=2}; uint64_t id; - PersistableMessage* expectedMsg; + intrusive_ptr<PersistableMessage> expectedMsg; string expectedData; std::list<Op> ops; @@ -64,17 +64,17 @@ class MessageBuilderTest : public CppUnit::TestCase ops.push_back(APPEND); } - void stage(PersistableMessage& msg) + void stage(intrusive_ptr<PersistableMessage>& msg) { checkExpectation(STAGE); - CPPUNIT_ASSERT_EQUAL(expectedMsg, &msg); - msg.setPersistenceId(++id); + CPPUNIT_ASSERT_EQUAL(expectedMsg, msg); + msg->setPersistenceId(++id); } - void appendContent(const PersistableMessage& msg, const string& data) + void appendContent(intrusive_ptr<const PersistableMessage>& msg, const string& data) { checkExpectation(APPEND); - CPPUNIT_ASSERT_EQUAL((const PersistableMessage*) expectedMsg, &msg); + CPPUNIT_ASSERT_EQUAL(static_pointer_cast<const PersistableMessage>(expectedMsg), msg); CPPUNIT_ASSERT_EQUAL(expectedData, data); } diff --git a/cpp/src/tests/TxAckTest.cpp b/cpp/src/tests/TxAckTest.cpp index bcf422e706..1451fb65b6 100644 --- a/cpp/src/tests/TxAckTest.cpp +++ b/cpp/src/tests/TxAckTest.cpp @@ -39,11 +39,11 @@ class TxAckTest : public CppUnit::TestCase class TestMessageStore : public NullMessageStore { public: - vector<PersistableMessage*> dequeued; + vector<intrusive_ptr<PersistableMessage> > dequeued; - void dequeue(TransactionContext*, PersistableMessage& msg, const PersistableQueue& /*queue*/) + void dequeue(TransactionContext*, intrusive_ptr<PersistableMessage>& msg, const PersistableQueue& /*queue*/) { - dequeued.push_back(&msg); + dequeued.push_back(msg); } TestMessageStore() : NullMessageStore() {} @@ -97,7 +97,7 @@ public: CPPUNIT_ASSERT_EQUAL((size_t) 10, deliveries.size()); int dequeued[] = {0, 1, 2, 3, 4, 6, 8}; for (int i = 0; i < 7; i++) { - CPPUNIT_ASSERT_EQUAL((PersistableMessage*) messages[dequeued[i]].get(), store.dequeued[i]); + CPPUNIT_ASSERT_EQUAL(static_pointer_cast<PersistableMessage>(messages[dequeued[i]]), store.dequeued[i]); } } diff --git a/cpp/src/tests/TxPublishTest.cpp b/cpp/src/tests/TxPublishTest.cpp index b969598f1d..c9da9762ec 100644 --- a/cpp/src/tests/TxPublishTest.cpp +++ b/cpp/src/tests/TxPublishTest.cpp @@ -36,17 +36,17 @@ using namespace qpid::framing; class TxPublishTest : public CppUnit::TestCase { - typedef std::pair<string, PersistableMessage*> msg_queue_pair; + typedef std::pair<string, intrusive_ptr<PersistableMessage> > msg_queue_pair; class TestMessageStore : public NullMessageStore { public: vector<msg_queue_pair> enqueued; - void enqueue(TransactionContext*, PersistableMessage& msg, const PersistableQueue& queue) + void enqueue(TransactionContext*, intrusive_ptr<PersistableMessage>& msg, const PersistableQueue& queue) { - msg.enqueueComplete(); - enqueued.push_back(msg_queue_pair(queue.getName(), &msg)); + msg->enqueueComplete(); + enqueued.push_back(msg_queue_pair(queue.getName(), msg)); } //dont care about any of the other methods: @@ -81,16 +81,15 @@ public: void testPrepare() { + intrusive_ptr<PersistableMessage> pmsg = static_pointer_cast<PersistableMessage>(msg); //ensure messages are enqueued in store op.prepare(0); CPPUNIT_ASSERT_EQUAL((size_t) 2, store.enqueued.size()); CPPUNIT_ASSERT_EQUAL(string("queue1"), store.enqueued[0].first); - CPPUNIT_ASSERT_EQUAL((PersistableMessage*) msg.get(), store.enqueued[0].second); + CPPUNIT_ASSERT_EQUAL(pmsg, store.enqueued[0].second); CPPUNIT_ASSERT_EQUAL(string("queue2"), store.enqueued[1].first); - CPPUNIT_ASSERT_EQUAL((PersistableMessage*) msg.get(), store.enqueued[1].second); - CPPUNIT_ASSERT_EQUAL( true, ((PersistableMessage*) msg.get())->isEnqueueComplete()); - - + CPPUNIT_ASSERT_EQUAL(pmsg, store.enqueued[1].second); + CPPUNIT_ASSERT_EQUAL( true, ( static_pointer_cast<PersistableMessage>(msg))->isEnqueueComplete()); } void testCommit() @@ -101,7 +100,7 @@ public: CPPUNIT_ASSERT_EQUAL((uint32_t) 1, queue1->getMessageCount()); intrusive_ptr<Message> msg_dequeue = queue1->dequeue().payload; - CPPUNIT_ASSERT_EQUAL( true, ((PersistableMessage*) msg_dequeue.get())->isEnqueueComplete()); + CPPUNIT_ASSERT_EQUAL( true, (static_pointer_cast<PersistableMessage>(msg_dequeue))->isEnqueueComplete()); CPPUNIT_ASSERT_EQUAL(msg, msg_dequeue); CPPUNIT_ASSERT_EQUAL((uint32_t) 1, queue2->getMessageCount()); |
