summaryrefslogtreecommitdiff
path: root/cpp/src/tests/cluster_test.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/src/tests/cluster_test.cpp')
-rw-r--r--cpp/src/tests/cluster_test.cpp27
1 files changed, 27 insertions, 0 deletions
diff --git a/cpp/src/tests/cluster_test.cpp b/cpp/src/tests/cluster_test.cpp
index 72440bbe88..a20a3841a9 100644
--- a/cpp/src/tests/cluster_test.cpp
+++ b/cpp/src/tests/cluster_test.cpp
@@ -220,6 +220,33 @@ class Sender {
uint16_t channel;
};
+// FIXME aconway 2008-10-20: dump Tx state.
+QPID_AUTO_TEST_CASE_EXPECTED_FAILURES(testDumpTxState, 1) {
+ // Verify that we dump transaction state correctly to new members.
+ ClusterFixture cluster(1);
+ Client c0(cluster[0], "c0");
+ c0.session.txSelect();
+ c0.session.queueDeclare("q");
+ c0.session.messageTransfer(arg::content=Message("1","q"));
+ c0.session.txCommit();
+
+ c0.subs.subscribe(c0.lq, "q", FlowControl::messageCredit(1));
+ Message m;
+ BOOST_CHECK(c0.lq.get(m, TIME_SEC));
+ BOOST_CHECK_EQUAL(m.getData(), "1");
+ c0.session.messageTransfer(arg::content=Message("2","q"));
+
+ cluster.add();
+ Client c1(cluster[1], "c1");
+ // Not yet comitted, c1 should see nothing.
+ BOOST_CHECK_EQUAL(c1.session.queueQuery(arg::queue="q").getMessageCount(), 0u);
+ c0.session.txCommit();
+ // c1 shoudl see results of tx.
+ BOOST_CHECK_EQUAL(c1.session.queueQuery(arg::queue="q").getMessageCount(), 1u);
+ BOOST_CHECK(c1.subs.get(m, "q", TIME_SEC));
+ BOOST_CHECK_EQUAL(m.getData(), "2");
+}
+
QPID_AUTO_TEST_CASE(testDumpMessageBuilder) {
// Verify that we dump a partially recieved message to a new member.
ClusterFixture cluster(1);