diff options
Diffstat (limited to 'cpp/src/tests')
-rw-r--r-- | cpp/src/tests/ClientSessionTest.cpp | 4 | ||||
-rw-r--r-- | cpp/src/tests/SessionState.cpp | 146 | ||||
-rwxr-xr-x | cpp/src/tests/federation.py | 8 |
3 files changed, 77 insertions, 81 deletions
diff --git a/cpp/src/tests/ClientSessionTest.cpp b/cpp/src/tests/ClientSessionTest.cpp index dfda9ecae1..aeff35dbf0 100644 --- a/cpp/src/tests/ClientSessionTest.cpp +++ b/cpp/src/tests/ClientSessionTest.cpp @@ -150,7 +150,7 @@ QPID_AUTO_TEST_CASE(testDispatcherThread) ClientSessionFixture fix; fix.session =fix.connection.newSession(ASYNC); fix.declareSubscribe(); - size_t count = 1000; + size_t count = 10; DummyListener listener(fix.session, "my-dest", count); sys::Thread t(listener); for (size_t i = 0; i < count; ++i) { @@ -205,7 +205,7 @@ QPID_AUTO_TEST_CASE(testSendToSelf) { sys::Thread runner(fix.subs);//start dispatcher thread string data("msg"); Message msg(data, "myq"); - const uint count=1000; + const uint count=10; for (uint i = 0; i < count; ++i) { fix.session.messageTransfer(content=msg); } diff --git a/cpp/src/tests/SessionState.cpp b/cpp/src/tests/SessionState.cpp index 71b90ea9f1..4beef87cfe 100644 --- a/cpp/src/tests/SessionState.cpp +++ b/cpp/src/tests/SessionState.cpp @@ -58,7 +58,7 @@ string str(const AMQFrame& f) { return "H"; // Must be a header. } // Make a string from a range of frames. -string str(const vector<AMQFrame>& frames) { +string str(const boost::iterator_range<vector<AMQFrame>::const_iterator>& frames) { string (*strFrame)(const AMQFrame&) = str; return applyAccumulate(frames.begin(), frames.end(), string(), ptr_fun(strFrame)); } @@ -84,7 +84,7 @@ AMQFrame contentFrameChar(char content, bool isLast=true) { } // Send frame & return size of frame. -size_t send(qpid::SessionState& s, const AMQFrame& f) { s.sender.record(f); return f.size(); } +size_t send(qpid::SessionState& s, const AMQFrame& f) { s.senderRecord(f); return f.size(); } // Send transfer command with no content. size_t transfer0(qpid::SessionState& s) { return send(s, transferFrame(false)); } // Send transfer frame with single content frame. @@ -126,136 +126,132 @@ using qpid::SessionPoint; QPID_AUTO_TEST_CASE(testSendGetReplyList) { qpid::SessionState s; - s.sender.getCommandPoint(); + s.senderGetCommandPoint(); transfer1(s, "abc"); transfers(s, "def"); transferN(s, "xyz"); - BOOST_CHECK_EQUAL(str(s.sender.getReplayList()),"CabcCdCeCfCxyz"); + BOOST_CHECK_EQUAL(str(s.senderExpected(SessionPoint(0,0))),"CabcCdCeCfCxyz"); // Ignore controls. - s.sender.record(AMQFrame(in_place<SessionFlushBody>())); - BOOST_CHECK_EQUAL(str(s.sender.getReplayList()),"CabcCdCeCfCxyz"); + s.senderRecord(AMQFrame(in_place<SessionFlushBody>())); + BOOST_CHECK_EQUAL(str(s.senderExpected(SessionPoint(2,0))),"CeCfCxyz"); } QPID_AUTO_TEST_CASE(testNeedFlush) { qpid::SessionState::Configuration c; // sync after 2 1-byte transfers or equivalent bytes. - c.replaySyncSize = 2*(transferFrameSize()+contentFrameSize()); + c.replayFlushLimit = 2*(transferFrameSize()+contentFrameSize()); qpid::SessionState s(SessionId(), c); - s.sender.getCommandPoint(); + s.senderGetCommandPoint(); transfers(s, "a"); - BOOST_CHECK(!s.sender.needFlush()); + BOOST_CHECK(!s.senderNeedFlush()); transfers(s, "b"); - BOOST_CHECK(s.sender.needFlush()); - s.sender.recordFlush(); - BOOST_CHECK(!s.sender.needFlush()); + BOOST_CHECK(s.senderNeedFlush()); + s.senderRecordFlush(); + BOOST_CHECK(!s.senderNeedFlush()); transfers(s, "c"); - BOOST_CHECK(!s.sender.needFlush()); + BOOST_CHECK(!s.senderNeedFlush()); transfers(s, "d"); - BOOST_CHECK(s.sender.needFlush()); - BOOST_CHECK_EQUAL(str(s.sender.getReplayList()), "CaCbCcCd"); + BOOST_CHECK(s.senderNeedFlush()); + BOOST_CHECK_EQUAL(str(s.senderExpected(SessionPoint())), "CaCbCcCd"); } QPID_AUTO_TEST_CASE(testPeerConfirmed) { qpid::SessionState::Configuration c; // sync after 2 1-byte transfers or equivalent bytes. - c.replaySyncSize = 2*(transferFrameSize()+contentFrameSize()); + c.replayFlushLimit = 2*(transferFrameSize()+contentFrameSize()); qpid::SessionState s(SessionId(), c); - s.sender.getCommandPoint(); + s.senderGetCommandPoint(); transfers(s, "ab"); - BOOST_CHECK(s.sender.needFlush()); + BOOST_CHECK(s.senderNeedFlush()); transfers(s, "cd"); - BOOST_CHECK_EQUAL(str(s.sender.getReplayList()), "CaCbCcCd"); - s.sender.confirmed(SessionPoint(3)); - BOOST_CHECK_EQUAL(str(s.sender.getReplayList()), "Cd"); - BOOST_CHECK(!s.sender.needFlush()); - - // Never go backwards. - s.sender.confirmed(SessionPoint(2)); - s.sender.confirmed(SessionPoint(3)); + BOOST_CHECK_EQUAL(str(s.senderExpected(SessionPoint(0,0))), "CaCbCcCd"); + s.senderConfirmed(SessionPoint(3)); + BOOST_CHECK_EQUAL(str(s.senderExpected(SessionPoint(3,0))), "Cd"); + BOOST_CHECK(!s.senderNeedFlush()); // Multi-frame transfer. transfer1(s, "efg"); transfers(s, "xy"); - BOOST_CHECK_EQUAL(str(s.sender.getReplayList()), "CdCefgCxCy"); - BOOST_CHECK(s.sender.needFlush()); + BOOST_CHECK_EQUAL(str(s.senderExpected(SessionPoint(3,0))), "CdCefgCxCy"); + BOOST_CHECK(s.senderNeedFlush()); - s.sender.confirmed(SessionPoint(4)); - BOOST_CHECK_EQUAL(str(s.sender.getReplayList()), "CefgCxCy"); - BOOST_CHECK(s.sender.needFlush()); + s.senderConfirmed(SessionPoint(4)); + BOOST_CHECK_EQUAL(str(s.senderExpected(SessionPoint(4,0))), "CefgCxCy"); + BOOST_CHECK(s.senderNeedFlush()); - s.sender.confirmed(SessionPoint(5)); - BOOST_CHECK_EQUAL(str(s.sender.getReplayList()), "CxCy"); - BOOST_CHECK(s.sender.needFlush()); + s.senderConfirmed(SessionPoint(5)); + BOOST_CHECK_EQUAL(str(s.senderExpected(SessionPoint(5,0))), "CxCy"); + BOOST_CHECK(s.senderNeedFlush()); - s.sender.confirmed(SessionPoint(6)); - BOOST_CHECK_EQUAL(str(s.sender.getReplayList()), "Cy"); - BOOST_CHECK(!s.sender.needFlush()); + s.senderConfirmed(SessionPoint(6)); + BOOST_CHECK_EQUAL(str(s.senderExpected(SessionPoint(6,0))), "Cy"); + BOOST_CHECK(!s.senderNeedFlush()); } QPID_AUTO_TEST_CASE(testPeerCompleted) { qpid::SessionState s; - s.sender.getCommandPoint(); + s.senderGetCommandPoint(); // Completion implies confirmation transfers(s, "abc"); - BOOST_CHECK_EQUAL(str(s.sender.getReplayList()), "CaCbCc"); + BOOST_CHECK_EQUAL(str(s.senderExpected(SessionPoint(0,0))), "CaCbCc"); SequenceSet set(SequenceSet() + 0 + 1); - s.sender.completed(set); - BOOST_CHECK_EQUAL(str(s.sender.getReplayList()), "Cc"); + s.senderCompleted(set); + BOOST_CHECK_EQUAL(str(s.senderExpected(SessionPoint(2,0))), "Cc"); transfers(s, "def"); // We dont do out-of-order confirmation, so this will only confirm up to 3: set = SequenceSet(SequenceSet() + 2 + 3 + 5); - s.sender.completed(set); - BOOST_CHECK_EQUAL(str(s.sender.getReplayList()), "CeCf"); + s.senderCompleted(set); + BOOST_CHECK_EQUAL(str(s.senderExpected(SessionPoint(4,0))), "CeCf"); } QPID_AUTO_TEST_CASE(testReceive) { // Advance expected/received correctly qpid::SessionState s; - s.receiver.setCommandPoint(SessionPoint()); - BOOST_CHECK_EQUAL(s.receiver.getExpected(), SessionPoint(0)); - BOOST_CHECK_EQUAL(s.receiver.getReceived(), SessionPoint(0)); + s.receiverSetCommandPoint(SessionPoint()); + BOOST_CHECK_EQUAL(s.receiverGetExpected(), SessionPoint(0)); + BOOST_CHECK_EQUAL(s.receiverGetReceived(), SessionPoint(0)); - BOOST_CHECK(s.receiver.record(transferFrame(false))); - BOOST_CHECK_EQUAL(s.receiver.getExpected(), SessionPoint(1)); - BOOST_CHECK_EQUAL(s.receiver.getReceived(), SessionPoint(1)); + BOOST_CHECK(s.receiverRecord(transferFrame(false))); + BOOST_CHECK_EQUAL(s.receiverGetExpected(), SessionPoint(1)); + BOOST_CHECK_EQUAL(s.receiverGetReceived(), SessionPoint(1)); - BOOST_CHECK(s.receiver.record(transferFrame(true))); + BOOST_CHECK(s.receiverRecord(transferFrame(true))); SessionPoint point = SessionPoint(1, transferFrameSize()); - BOOST_CHECK_EQUAL(s.receiver.getExpected(), point); - BOOST_CHECK_EQUAL(s.receiver.getReceived(), point); - BOOST_CHECK(s.receiver.record(contentFrame("", false))); + BOOST_CHECK_EQUAL(s.receiverGetExpected(), point); + BOOST_CHECK_EQUAL(s.receiverGetReceived(), point); + BOOST_CHECK(s.receiverRecord(contentFrame("", false))); point.offset += contentFrameSize(0); - BOOST_CHECK_EQUAL(s.receiver.getExpected(), point); - BOOST_CHECK_EQUAL(s.receiver.getReceived(), point); - BOOST_CHECK(s.receiver.record(contentFrame("", true))); - BOOST_CHECK_EQUAL(s.receiver.getExpected(), SessionPoint(2)); - BOOST_CHECK_EQUAL(s.receiver.getReceived(), SessionPoint(2)); + BOOST_CHECK_EQUAL(s.receiverGetExpected(), point); + BOOST_CHECK_EQUAL(s.receiverGetReceived(), point); + BOOST_CHECK(s.receiverRecord(contentFrame("", true))); + BOOST_CHECK_EQUAL(s.receiverGetExpected(), SessionPoint(2)); + BOOST_CHECK_EQUAL(s.receiverGetReceived(), SessionPoint(2)); // Idempotence barrier, rewind expected & receive some duplicates. - s.receiver.setCommandPoint(SessionPoint(1)); - BOOST_CHECK(!s.receiver.record(transferFrame(false))); - BOOST_CHECK_EQUAL(s.receiver.getExpected(), SessionPoint(2)); - BOOST_CHECK_EQUAL(s.receiver.getReceived(), SessionPoint(2)); - BOOST_CHECK(s.receiver.record(transferFrame(false))); - BOOST_CHECK_EQUAL(s.receiver.getExpected(), SessionPoint(3)); - BOOST_CHECK_EQUAL(s.receiver.getReceived(), SessionPoint(3)); + s.receiverSetCommandPoint(SessionPoint(1)); + BOOST_CHECK(!s.receiverRecord(transferFrame(false))); + BOOST_CHECK_EQUAL(s.receiverGetExpected(), SessionPoint(2)); + BOOST_CHECK_EQUAL(s.receiverGetReceived(), SessionPoint(2)); + BOOST_CHECK(s.receiverRecord(transferFrame(false))); + BOOST_CHECK_EQUAL(s.receiverGetExpected(), SessionPoint(3)); + BOOST_CHECK_EQUAL(s.receiverGetReceived(), SessionPoint(3)); } QPID_AUTO_TEST_CASE(testCompleted) { // completed & unknownCompleted qpid::SessionState s; - s.receiver.setCommandPoint(SessionPoint()); - s.receiver.record(transferFrame(false)); - s.receiver.record(transferFrame(false)); - s.receiver.record(transferFrame(false)); - s.receiver.completed(1); - BOOST_CHECK_EQUAL(s.receiver.getUnknownComplete(), SequenceSet(SequenceSet()+1)); - s.receiver.completed(0); - BOOST_CHECK_EQUAL(s.receiver.getUnknownComplete(), + s.receiverSetCommandPoint(SessionPoint()); + s.receiverRecord(transferFrame(false)); + s.receiverRecord(transferFrame(false)); + s.receiverRecord(transferFrame(false)); + s.receiverCompleted(1); + BOOST_CHECK_EQUAL(s.receiverGetUnknownComplete(), SequenceSet(SequenceSet()+1)); + s.receiverCompleted(0); + BOOST_CHECK_EQUAL(s.receiverGetUnknownComplete(), SequenceSet(SequenceSet() + SequenceSet::Range(0,2))); - s.receiver.knownCompleted(SequenceSet(SequenceSet()+1)); - BOOST_CHECK_EQUAL(s.receiver.getUnknownComplete(), SequenceSet(SequenceSet()+2)); + s.receiverKnownCompleted(SequenceSet(SequenceSet()+1)); + BOOST_CHECK_EQUAL(s.receiverGetUnknownComplete(), SequenceSet(SequenceSet()+2)); // TODO aconway 2008-04-30: missing tests for known-completed. } diff --git a/cpp/src/tests/federation.py b/cpp/src/tests/federation.py index 98e34be0e9..0f52165587 100755 --- a/cpp/src/tests/federation.py +++ b/cpp/src/tests/federation.py @@ -57,7 +57,7 @@ def remote_port(): class Helper: def __init__(self, parent): self.parent = parent - self.session = parent.conn.session("2") + self.session = parent.conn.session("Helper") self.mc = managementClient(self.session.spec) self.mch = self.mc.addChannel(self.session) self.mc.syncWaitForStable(self.mch) @@ -126,7 +126,7 @@ class FederationTests(TestBase010): #send messages to remote broker and confirm it is routed to local broker r_conn = self.connect(host=remote_host(), port=remote_port()) - r_session = r_conn.session("1") + r_session = r_conn.session("test_pull_from_exchange") for i in range(1, 11): dp = r_session.delivery_properties(routing_key="my-key") @@ -153,7 +153,7 @@ class FederationTests(TestBase010): #setup queue on remote broker and add some messages r_conn = self.connect(host=remote_host(), port=remote_port()) - r_session = r_conn.session("1") + r_session = r_conn.session("test_pull_from_queue") r_session.queue_declare(queue="my-bridge-queue", exclusive=True, auto_delete=True) for i in range(1, 6): dp = r_session.delivery_properties(routing_key="my-bridge-queue") @@ -223,7 +223,7 @@ class FederationTests(TestBase010): #send messages to remote broker and confirm it is routed to local broker r_conn = self.connect(host=remote_host(), port=remote_port()) - r_session = r_conn.session("1") + r_session = r_conn.session("test_tracing") trace = [None, "exclude-me", "a,exclude-me,b", "also-exclude-me,c", "dont-exclude-me"] body = ["yes", "first-bad", "second-bad", "third-bad", "yes"] |