diff options
Diffstat (limited to 'qpid/cpp/src/tests/ha_tests.py')
-rwxr-xr-x | qpid/cpp/src/tests/ha_tests.py | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/qpid/cpp/src/tests/ha_tests.py b/qpid/cpp/src/tests/ha_tests.py index 3c43c6a914..86f33d8030 100755 --- a/qpid/cpp/src/tests/ha_tests.py +++ b/qpid/cpp/src/tests/ha_tests.py @@ -624,6 +624,30 @@ acl deny all all actual = [m.content for m in primary.get_messages("pq", 100)] self.assertEqual(expect, actual) + def test_delete_missing_response(self): + """Check that a backup correctly deletes leftover queues and exchanges that are + missing from the initial reponse set.""" + cluster = HaCluster(self,2) + s = cluster[0].connect().session() + s.sender("q1;{create:always}") + s.sender("q2;{create:always}") + s.sender("e1;{create:always, node:{type:topic}}") + s.sender("e2;{create:always, node:{type:topic}}") + cluster.bounce(0, promote_next=False) + # Fake a primary that has deleted some queues and exchanges. + s = cluster[0].connect_admin().session() + s.sender("q2;{create:always}") + s.sender("e2;{create:always, node:{type:topic}}") + s.sender("x;{create:always}") # A new queue so we can wait for the update. + cluster[0].promote() + # Verify the backup has deleted the missing queues and exchanges + cluster[1].wait_status("ready") + s = cluster[1].connect_admin().session() + cluster[1].wait_backup("x"); + self.assertRaises(NotFound, s.receiver, ("q1")); + self.assertRaises(NotFound, s.receiver, ("e1")); + + def fairshare(msgs, limit, levels): """ Generator to return prioritised messages in expected order for a given fairshare limit |