From edee47f4d91d218b6076560936bb579b893cc9b8 Mon Sep 17 00:00:00 2001 From: Gordon Sim Date: Mon, 23 May 2016 13:20:01 +0000 Subject: QPID-7234: check handler is not null (as it will be when releasing unused prefetch on close) git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1745195 13f79535-47bb-0310-9956-ffa450edef68 --- qpid/cpp/src/tests/MessagingSessionTests.cpp | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) (limited to 'qpid/cpp/src/tests') diff --git a/qpid/cpp/src/tests/MessagingSessionTests.cpp b/qpid/cpp/src/tests/MessagingSessionTests.cpp index 6bc43bc8e1..3b7ba34fe9 100644 --- a/qpid/cpp/src/tests/MessagingSessionTests.cpp +++ b/qpid/cpp/src/tests/MessagingSessionTests.cpp @@ -1562,6 +1562,27 @@ QPID_AUTO_TEST_CASE(testClientExpiration) BOOST_CHECK_EQUAL(b_count, 50); } +QPID_AUTO_TEST_CASE(testExpiredPrefetchOnClose) +{ + QueueFixture fix; + Receiver receiver = fix.session.createReceiver(fix.queue); + Session other = fix.connection.createSession(); + Receiver receiver2 = other.createReceiver("amq.fanout"); + receiver.setCapacity(500); + Sender sender = fix.session.createSender(fix.queue); + for (uint i = 0; i < 500; ++i) { + Message msg((boost::format("a_%1%") % (i+1)).str()); + msg.setSubject("a"); + msg.setTtl(Duration(5)); + sender.send(msg); + } + Sender sender2 = other.createSender("amq.fanout"); + sender2.send(Message("done")); + BOOST_CHECK_EQUAL(receiver2.fetch().getContent(), "done"); + qpid::sys::usleep(qpid::sys::TIME_MSEC*5);//sorry Alan, I can't see any way to avoid a sleep; need to ensure messages in prefetch have expired + receiver.close(); +} + QPID_AUTO_TEST_CASE(testPriorityRingEviction) { MessagingFixture fix; -- cgit v1.2.1