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 | b5f8cf1bd9b5652e2691d6bc5b9b1c3228f53d68 (patch) | |
| tree | 3c74eaf22c916844bea3b130a8ee6bd2635261d7 /cpp/src/tests | |
| parent | bd47fd629bb2356df93af70b174a6a070f3a58cc (diff) | |
| download | qpid-python-b5f8cf1bd9b5652e2691d6bc5b9b1c3228f53d68.tar.gz | |
Fix Cluster::send encode race.
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@682885 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'cpp/src/tests')
| -rw-r--r-- | cpp/src/tests/cluster_test.cpp | 27 |
1 files changed, 26 insertions, 1 deletions
diff --git a/cpp/src/tests/cluster_test.cpp b/cpp/src/tests/cluster_test.cpp index 567896d44d..9a907fc476 100644 --- a/cpp/src/tests/cluster_test.cpp +++ b/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()); |
