summaryrefslogtreecommitdiff
path: root/cpp/src/tests/cluster_tests.py
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/src/tests/cluster_tests.py')
-rwxr-xr-xcpp/src/tests/cluster_tests.py34
1 files changed, 24 insertions, 10 deletions
diff --git a/cpp/src/tests/cluster_tests.py b/cpp/src/tests/cluster_tests.py
index 682e25fbd3..07050c922f 100755
--- a/cpp/src/tests/cluster_tests.py
+++ b/cpp/src/tests/cluster_tests.py
@@ -53,28 +53,42 @@ class ClusterTests(BrokerTest):
s2.connection.close()
def test_failover(self):
- """Test fail-over during continuous send-receive"""
- # FIXME aconway 2009-11-09: this test is failing, showing lost messages.
- # Enable when fixed
+ """Test fail-over during continuous send-receive with errors"""
# Original cluster will all be killed so expect exit with failure
cluster = self.cluster(3, expect=EXPECT_EXIT_FAIL)
+
# Start sender and receiver threads
cluster[0].declare_queue("test-queue")
- self.receiver = Receiver(cluster[1])
- self.receiver.start()
- self.sender = Sender(cluster[2])
- self.sender.start()
+ receiver = NumberedReceiver(cluster[1])
+ receiver.start()
+ sender = NumberedSender(cluster[2])
+ sender.start()
# Kill original brokers, start new ones.
for i in range(3):
cluster[i].kill()
- cluster.start()
+ b = cluster.start()
time.sleep(1)
- self.sender.stop()
- self.receiver.stop(self.sender.sent)
+ sender.stop()
+ receiver.stop(sender.sent)
+
+ def send_receive_verify(self, b1, b2, queue, msgs):
+ b1.send_messages(queue, msgs)
+ self.assertEqual(msgs, [ m.content for m in b2.get_messages(queue,len(msgs))])
+
+ def test_error_storm(self):
+ """Verify cluster behaves with clients generating a lot of errors."""
+ cluster = self.cluster(3)
+ errgen = [ ErrorGenerator(b) for b in cluster ]
+ msgs = [ str(i) for i in range(10) ]
+ self.send_receive_verify(cluster[0], cluster[1], "q", msgs)
+ self.send_receive_verify(cluster[1], cluster[2], "q", msgs)
+ for i in range(3):
+ cluster.start()
+ self.send_receive_verify(cluster[1], cluster[2], "q", msgs)
class ClusterStoreTests(BrokerTest):