summaryrefslogtreecommitdiff
path: root/qpid/cpp/src
diff options
context:
space:
mode:
authorStephen D. Huston <shuston@apache.org>2013-06-06 17:22:33 +0000
committerStephen D. Huston <shuston@apache.org>2013-06-06 17:22:33 +0000
commit5fbea14a16771fcbae4eb4c3f03c6fa66d3afe4f (patch)
treef8e541118c7feda610ef9660773291d62f807685 /qpid/cpp/src
parent6d15ba2863d4551aef56e89ca0b08fba7af68608 (diff)
downloadqpid-python-5fbea14a16771fcbae4eb4c3f03c6fa66d3afe4f.tar.gz
Add a test for recovering a message with 0-length body. NO-JIRA.
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1490365 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/cpp/src')
-rwxr-xr-xqpid/cpp/src/tests/store.py17
1 files changed, 17 insertions, 0 deletions
diff --git a/qpid/cpp/src/tests/store.py b/qpid/cpp/src/tests/store.py
index 77e8a78e5d..5c1934dded 100755
--- a/qpid/cpp/src/tests/store.py
+++ b/qpid/cpp/src/tests/store.py
@@ -127,6 +127,12 @@ class StoreTests(BrokerTest):
self.ssn.exchange_declare(exchange="DB_E1", type="direct", durable=True)
self.ssn.exchange_bind(exchange="DB_E1", queue="DB_Q1", binding_key="K1")
+ # Queue up 2 messages, one with non-zero body, one with zero-length.
+ # 2 = delivery_mode.persistent
+ dp = self.ssn.delivery_properties(routing_key="DB_Q1", delivery_mode=2)
+ self.ssn.message_transfer(message=Message(dp, "normal message"))
+ self.ssn.message_transfer(message=Message(dp, ""))
+
# Cycle the broker and make sure the binding recovers
self.cycle_broker()
response = self.ssn.exchange_bound(exchange="DB_E1", queue="DB_Q1", binding_key="K1")
@@ -135,6 +141,17 @@ class StoreTests(BrokerTest):
self.assert_(not response.queue_not_matched)
self.assert_(not response.key_not_matched)
+ # Are the messages still there?
+ self.ssn.message_subscribe(destination="msgs", queue="DB_Q1", accept_mode=1, acquire_mode=0)
+ self.ssn.message_flow(unit = 1, value = 0xFFFFFFFFL, destination = "msgs")
+ self.ssn.message_flow(unit = 0, value = 10, destination = "msgs")
+ message_arrivals = self.ssn.incoming("msgs")
+ try:
+ message_arrivals.get(timeout=1)
+ message_arrivals.get(timeout=1)
+ except Empty:
+ assert False, 'Durable message(s) not recovered'
+
self.ssn.exchange_unbind(queue="DB_Q1", exchange="DB_E1", binding_key="K1")
self.ssn.exchange_delete(exchange="DB_E1")
self.ssn.queue_delete(queue="DB_Q1")