diff options
| author | Alan Conway <aconway@apache.org> | 2008-08-05 19:29:09 +0000 |
|---|---|---|
| committer | Alan Conway <aconway@apache.org> | 2008-08-05 19:29:09 +0000 |
| commit | f04df8a8c20938c5b8bb176ca35db0376ad76c60 (patch) | |
| tree | 6c297306e49f49780dfd879396f10faf56f7a818 /qpid/cpp/src/tests/cluster_test.cpp | |
| parent | ccd344810817dfc62f38683692ee281b47bc031c (diff) | |
| download | qpid-python-f04df8a8c20938c5b8bb176ca35db0376ad76c60.tar.gz | |
Fix Cluster::send encode race.
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk@682885 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/cpp/src/tests/cluster_test.cpp')
| -rw-r--r-- | qpid/cpp/src/tests/cluster_test.cpp | 27 |
1 files changed, 26 insertions, 1 deletions
diff --git a/qpid/cpp/src/tests/cluster_test.cpp b/qpid/cpp/src/tests/cluster_test.cpp index 567896d44d..9a907fc476 100644 --- a/qpid/cpp/src/tests/cluster_test.cpp +++ b/qpid/cpp/src/tests/cluster_test.cpp @@ -244,7 +244,32 @@ QPID_AUTO_TEST_CASE(testMessageDequeue) { BOOST_CHECK(c1.subs.get(msg, "q")); BOOST_CHECK_EQUAL("bar", msg.getData()); - // Queue should be empty on all queues. + // Queue should be empty on all cluster members. + BOOST_CHECK_EQUAL(0u, c0.session.queueQuery("q").getMessageCount()); + BOOST_CHECK_EQUAL(0u, c1.session.queueQuery("q").getMessageCount()); + BOOST_CHECK_EQUAL(0u, c2.session.queueQuery("q").getMessageCount()); +} + +QPID_AUTO_TEST_CASE(testDequeueWaitingSubscription) { + ClusterFixture cluster(3); + // First start a subscription. + Client c0(cluster[0]); + c0.session.queueDeclare("q"); + c0.subs.subscribe(c0.lq, "q", FlowControl::messageCredit(2)); + // Now send messages + Client c1(cluster[1]); + c1.session.messageTransfer(arg::content=TransferContent("foo", "q")); + c1.session.messageTransfer(arg::content=TransferContent("bar", "q")); + + // Check they arrived + Message m; + BOOST_CHECK(c0.lq.get(m, sys::TIME_SEC)); + BOOST_CHECK_EQUAL("foo", m.getData()); + BOOST_CHECK(c0.lq.get(m, sys::TIME_SEC)); + BOOST_CHECK_EQUAL("bar", m.getData()); + + // Queue should be empty on all cluster members. + Client c2(cluster[2]); BOOST_CHECK_EQUAL(0u, c0.session.queueQuery("q").getMessageCount()); BOOST_CHECK_EQUAL(0u, c1.session.queueQuery("q").getMessageCount()); BOOST_CHECK_EQUAL(0u, c2.session.queueQuery("q").getMessageCount()); |
