From 016ae5acebab0eaf6dd70f5d4d653fdfee93925d Mon Sep 17 00:00:00 2001 From: "Carl C. Trieloff" Date: Thu, 9 Oct 2008 19:35:19 +0000 Subject: QPID-1306 - from review, clean-up for acquire - test for LVQ acquire - suppress store for LVQ git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@703236 13f79535-47bb-0310-9956-ffa450edef68 --- cpp/src/tests/QueueTest.cpp | 48 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) (limited to 'cpp/src/tests/QueueTest.cpp') diff --git a/cpp/src/tests/QueueTest.cpp b/cpp/src/tests/QueueTest.cpp index e18a2309fa..a189dc1f15 100644 --- a/cpp/src/tests/QueueTest.cpp +++ b/cpp/src/tests/QueueTest.cpp @@ -387,6 +387,54 @@ QPID_AUTO_TEST_CASE(testLVQOrdering){ } +QPID_AUTO_TEST_CASE(testLVQAcquire){ + + client::QueueOptions args; + // set queue mode + args.setOrdering(client::LVQ); + + Queue::shared_ptr queue(new Queue("my-queue", true )); + queue->configure(args); + + intrusive_ptr msg1 = message("e", "A"); + intrusive_ptr msg2 = message("e", "B"); + intrusive_ptr msg3 = message("e", "C"); + intrusive_ptr msg4 = message("e", "D"); + intrusive_ptr msg5 = message("e", "F"); + + //set deliever match for LVQ a,b,c,a + + string key; + args.getLVQKey(key); + BOOST_CHECK_EQUAL(key, "qpid.LVQ_key"); + + + msg1->getProperties()->getApplicationHeaders().setString(key,"a"); + msg2->getProperties()->getApplicationHeaders().setString(key,"b"); + msg3->getProperties()->getApplicationHeaders().setString(key,"c"); + msg4->getProperties()->getApplicationHeaders().setString(key,"a"); + msg5->getProperties()->getApplicationHeaders().setString(key,"b"); + + //enqueue 4 message + queue->deliver(msg1); + queue->deliver(msg2); + queue->deliver(msg3); + queue->deliver(msg4); + + BOOST_CHECK_EQUAL(queue->getMessageCount(), 3u); + + framing::SequenceNumber sequence; + QueuedMessage qmsg(queue.get(), msg2, ++sequence); + queue->acquire(qmsg); + + BOOST_CHECK_EQUAL(queue->getMessageCount(), 2u); + + queue->deliver(msg5); + BOOST_CHECK_EQUAL(queue->getMessageCount(), 3u); + +} + + QPID_AUTO_TEST_CASE(testLVQSaftyCheck){ // This test is to check std::deque memory copy does not change out under us -- cgit v1.2.1