You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by gm...@apache.org on 2020/10/19 15:06:27 UTC
[qpid-dispatch] branch master updated: DISPATCH-1782: Added some
log statements to failing test to get a more detailed picture of what is
going on when the test fails. Also created the sender after the receiver
gets a response attach
This is an automated email from the ASF dual-hosted git repository.
gmurthy pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/qpid-dispatch.git
The following commit(s) were added to refs/heads/master by this push:
new eae8350 DISPATCH-1782: Added some log statements to failing test to get a more detailed picture of what is going on when the test fails. Also created the sender after the receiver gets a response attach
eae8350 is described below
commit eae8350eb3a73fac7d02ffce5fbaa595897067ba
Author: Ganesh Murthy <gm...@apache.org>
AuthorDate: Mon Oct 19 11:05:14 2020 -0400
DISPATCH-1782: Added some log statements to failing test to get a more detailed picture of what is going on when the test fails. Also created the sender after the receiver gets a response attach
---
tests/system_tests_two_routers.py | 285 ++++++++++++++++++++++----------------
1 file changed, 166 insertions(+), 119 deletions(-)
diff --git a/tests/system_tests_two_routers.py b/tests/system_tests_two_routers.py
index 3cf049f..6c382f1 100644
--- a/tests/system_tests_two_routers.py
+++ b/tests/system_tests_two_routers.py
@@ -28,7 +28,7 @@ import logging
from threading import Timer
from subprocess import PIPE, STDOUT
from proton import Message, Timeout, Delivery
-from system_test import TestCase, Process, Qdrouterd, main_module, TIMEOUT, DIR, TestTimeout
+from system_test import Logger, TestCase, Process, Qdrouterd, main_module, TIMEOUT, DIR, TestTimeout
from system_test import AsyncTestReceiver
from system_test import AsyncTestSender
from system_test import get_inter_router_links
@@ -153,6 +153,9 @@ class TwoRouterTest(TestCase):
def test_03a_test_strip_message_annotations_no_add_trace(self):
test = MessageAnnotationsStripAddTraceTest(self.routers[0].addresses[1], self.routers[1].addresses[1])
test.run()
+ # Dump the logger output only if there is a test error, otherwise dont bother
+ if test.error:
+ test.logger.dump()
self.assertEqual(None, test.error)
def test_03a_test_strip_message_annotations_both_add_ingress_trace(self):
@@ -750,11 +753,14 @@ class MessageAnnotationsTest(MessagingHandler):
def on_start(self, event):
self.timer = event.reactor.schedule(TIMEOUT, TestTimeout(self))
- self.conn1 = event.container.connect(self.address1)
- self.sender = event.container.create_sender(self.conn1, self.dest)
self.conn2 = event.container.connect(self.address2)
self.receiver = event.container.create_receiver(self.conn2, self.dest)
+ def on_link_opened(self, event):
+ if event.receiver == self.receiver:
+ self.conn1 = event.container.connect(self.address1)
+ self.sender = event.container.create_sender(self.conn1, self.dest)
+
def on_sendable(self, event):
if self.msg_not_sent:
msg = Message(body={'number': 0})
@@ -762,14 +768,14 @@ class MessageAnnotationsTest(MessagingHandler):
self.msg_not_sent = False
def on_message(self, event):
- if 0 == event.message.body['number']:
- ma = event.message.annotations
- if ma['x-opt-qd.ingress'] == '0/QDR.A' and ma['x-opt-qd.trace'] == ['0/QDR.A', '0/QDR.B']:
- self.error = None
- self.accept(event.delivery)
- self.timer.cancel()
- self.conn1.close()
- self.conn2.close()
+ if event.receiver == self.receiver:
+ if 0 == event.message.body['number']:
+ ma = event.message.annotations
+ if ma['x-opt-qd.ingress'] == '0/QDR.A' and ma['x-opt-qd.trace'] == ['0/QDR.A', '0/QDR.B']:
+ self.error = None
+ self.timer.cancel()
+ self.conn1.close()
+ self.conn2.close()
def run(self):
Container(self).run()
@@ -797,29 +803,34 @@ class MessageAnnotationsStripTest(MessagingHandler):
def on_start(self, event):
self.timer = event.reactor.schedule(TIMEOUT, TestTimeout(self))
- self.conn1 = event.container.connect(self.address1)
- self.sender = event.container.create_sender(self.conn1, self.dest)
self.conn2 = event.container.connect(self.address2)
self.receiver = event.container.create_receiver(self.conn2, self.dest)
+ def on_link_opened(self, event):
+ if event.receiver == self.receiver:
+ self.conn1 = event.container.connect(self.address1)
+ self.sender = event.container.create_sender(self.conn1, self.dest)
+
def on_sendable(self, event):
- if self.msg_not_sent:
- msg = Message(body={'number': 0})
- ingress_message_annotations = {'work': 'hard', 'stay': 'humble'}
- msg.annotations = ingress_message_annotations
- event.sender.send(msg)
- self.msg_not_sent = False
+ if event.sender == self.sender:
+ if self.msg_not_sent:
+ msg = Message(body={'number': 0})
+ ingress_message_annotations = {'work': 'hard', 'stay': 'humble'}
+ msg.annotations = ingress_message_annotations
+ event.sender.send(msg)
+ self.msg_not_sent = False
def on_message(self, event):
- if 0 == event.message.body['number']:
- ma = event.message.annotations
- if ma['x-opt-qd.ingress'] == '0/QDR.A' and ma['x-opt-qd.trace'] == ['0/QDR.A', '0/QDR.B'] \
- and ma['work'] == 'hard' and ma['stay'] == 'humble':
- self.error = None
- self.accept(event.delivery)
- self.timer.cancel()
- self.conn1.close()
- self.conn2.close()
+ if event.receiver == self.receiver:
+ if 0 == event.message.body['number']:
+ ma = event.message.annotations
+ if ma['x-opt-qd.ingress'] == '0/QDR.A' and ma['x-opt-qd.trace'] == ['0/QDR.A', '0/QDR.B'] \
+ and ma['work'] == 'hard' and ma['stay'] == 'humble':
+ self.error = None
+ self.accept(event.delivery)
+ self.timer.cancel()
+ self.conn1.close()
+ self.conn2.close()
def run(self):
Container(self).run()
@@ -913,30 +924,35 @@ class MessageAnnotationStripMessageAnnotationsIn(MessagingHandler):
def on_start(self, event):
self.timer = event.reactor.schedule(TIMEOUT, TestTimeout(self))
- self.conn1 = event.container.connect(self.address1)
- self.sender = event.container.create_sender(self.conn1, self.dest)
self.conn2 = event.container.connect(self.address2)
self.receiver = event.container.create_receiver(self.conn2, self.dest)
+ def on_link_opened(self, event):
+ if event.receiver == self.receiver:
+ self.conn1 = event.container.connect(self.address1)
+ self.sender = event.container.create_sender(self.conn1, self.dest)
+
def on_sendable(self, event):
- if self.msg_not_sent:
- msg = Message(body={'number': 0})
- #
- # Pre-existing ingress and trace
- #
- ingress_message_annotations = {'x-opt-qd.ingress': 'ingress-router', 'x-opt-qd.trace': ['X/QDR']}
- msg.annotations = ingress_message_annotations
- event.sender.send(msg)
- self.msg_not_sent = False
+ if event.sender == self.sender:
+ if self.msg_not_sent:
+ msg = Message(body={'number': 0})
+ #
+ # Pre-existing ingress and trace
+ #
+ ingress_message_annotations = {'x-opt-qd.ingress': 'ingress-router', 'x-opt-qd.trace': ['X/QDR']}
+ msg.annotations = ingress_message_annotations
+ event.sender.send(msg)
+ self.msg_not_sent = False
def on_message(self, event):
- if 0 == event.message.body['number']:
- if event.message.annotations['x-opt-qd.ingress'] == '0/QDR.A' \
- and event.message.annotations['x-opt-qd.trace'] == ['0/QDR.A', '0/QDR.B']:
- self.error = None
- self.timer.cancel()
- self.conn1.close()
- self.conn2.close()
+ if event.receiver == self.receiver:
+ if 0 == event.message.body['number']:
+ if event.message.annotations['x-opt-qd.ingress'] == '0/QDR.A' \
+ and event.message.annotations['x-opt-qd.trace'] == ['0/QDR.A', '0/QDR.B']:
+ self.error = None
+ self.timer.cancel()
+ self.conn1.close()
+ self.conn2.close()
def run(self):
Container(self).run()
@@ -963,26 +979,31 @@ class MessageAnnotaionsPreExistingOverride(MessagingHandler):
def on_start(self, event):
self.timer = event.reactor.schedule(TIMEOUT, TestTimeout(self))
- self.conn1 = event.container.connect(self.address1)
- self.sender = event.container.create_sender(self.conn1, self.dest)
self.conn2 = event.container.connect(self.address2)
self.receiver = event.container.create_receiver(self.conn2, self.dest)
+ def on_link_opened(self, event):
+ if event.receiver == self.receiver:
+ self.conn1 = event.container.connect(self.address1)
+ self.sender = event.container.create_sender(self.conn1, self.dest)
+
def on_sendable(self, event):
- if self.msg_not_sent:
- msg = Message(body={'number': 0})
- msg.annotations = {'x-opt-qd.to': 'toov/1'}
- event.sender.send(msg)
- self.msg_not_sent = False
+ if event.sender == self.sender:
+ if self.msg_not_sent:
+ msg = Message(body={'number': 0})
+ msg.annotations = {'x-opt-qd.to': 'toov/1'}
+ event.sender.send(msg)
+ self.msg_not_sent = False
def on_message(self, event):
- if 0 == event.message.body['number']:
- ma = event.message.annotations
- if ma['x-opt-qd.to'] == 'toov/1':
- self.error = None
- self.timer.cancel()
- self.conn1.close()
- self.conn2.close()
+ if event.receiver == self.receiver:
+ if 0 == event.message.body['number']:
+ ma = event.message.annotations
+ if ma['x-opt-qd.to'] == 'toov/1':
+ self.error = None
+ self.timer.cancel()
+ self.conn1.close()
+ self.conn2.close()
def run(self):
Container(self).run()
@@ -1010,24 +1031,29 @@ class MessageAnnotationsStripMessageAnnotationsOut(MessagingHandler):
def on_start(self, event):
self.timer = event.reactor.schedule(TIMEOUT, TestTimeout(self))
- self.conn1 = event.container.connect(self.address1)
- self.sender = event.container.create_sender(self.conn1, self.dest)
self.conn2 = event.container.connect(self.address2)
self.receiver = event.container.create_receiver(self.conn2, self.dest)
+ def on_link_opened(self, event):
+ if event.receiver == self.receiver:
+ self.conn1 = event.container.connect(self.address1)
+ self.sender = event.container.create_sender(self.conn1, self.dest)
+
def on_sendable(self, event):
- if self.msg_not_sent:
- msg = Message(body={'number': 0})
- event.sender.send(msg)
- self.msg_not_sent = False
+ if event.sender == self.sender:
+ if self.msg_not_sent:
+ msg = Message(body={'number': 0})
+ event.sender.send(msg)
+ self.msg_not_sent = False
def on_message(self, event):
- if 0 == event.message.body['number']:
- if event.message.annotations is None:
- self.error = None
- self.timer.cancel()
- self.conn1.close()
- self.conn2.close()
+ if event.receiver == self.receiver:
+ if 0 == event.message.body['number']:
+ if event.message.annotations is None:
+ self.error = None
+ self.timer.cancel()
+ self.conn1.close()
+ self.conn2.close()
def run(self):
Container(self).run()
@@ -1055,29 +1081,34 @@ class MessageAnnotationsStripBothAddIngressTrace(MessagingHandler):
def on_start(self, event):
self.timer = event.reactor.schedule(TIMEOUT, TestTimeout(self))
- self.conn1 = event.container.connect(self.address1)
- self.sender = event.container.create_sender(self.conn1, self.dest)
self.conn2 = event.container.connect(self.address2)
self.receiver = event.container.create_receiver(self.conn2, self.dest)
+ def on_link_opened(self, event):
+ if event.receiver == self.receiver:
+ self.conn1 = event.container.connect(self.address1)
+ self.sender = event.container.create_sender(self.conn1, self.dest)
+
def on_sendable(self, event):
- if self.msg_not_sent:
- msg = Message(body={'number': 0})
- ingress_message_annotations = {'work': 'hard',
- 'x-opt-qd': 'humble',
- 'x-opt-qd.ingress': 'ingress-router',
- 'x-opt-qd.trace': ['0/QDR.A']}
- msg.annotations = ingress_message_annotations
- event.sender.send(msg)
- self.msg_not_sent = False
+ if event.sender == self.sender:
+ if self.msg_not_sent:
+ msg = Message(body={'number': 0})
+ ingress_message_annotations = {'work': 'hard',
+ 'x-opt-qd': 'humble',
+ 'x-opt-qd.ingress': 'ingress-router',
+ 'x-opt-qd.trace': ['0/QDR.A']}
+ msg.annotations = ingress_message_annotations
+ event.sender.send(msg)
+ self.msg_not_sent = False
def on_message(self, event):
- if 0 == event.message.body['number']:
- if event.message.annotations == {'work': 'hard', 'x-opt-qd': 'humble'}:
- self.error = None
- self.timer.cancel()
- self.conn1.close()
- self.conn2.close()
+ if self.receiver == event.receiver:
+ if 0 == event.message.body['number']:
+ if event.message.annotations == {'work': 'hard', 'x-opt-qd': 'humble'}:
+ self.error = None
+ self.timer.cancel()
+ self.conn1.close()
+ self.conn2.close()
def run(self):
Container(self).run()
@@ -1097,6 +1128,7 @@ class MessageAnnotationsStripAddTraceTest(MessagingHandler):
self.receiver = None
self.sent_count = 0
self.msg_not_sent = True
+ self.logger = Logger(title="MessageAnnotationsStripAddTraceTest")
def timeout(self):
self.error = "Timeout Expired: " + self.error
@@ -1107,31 +1139,41 @@ class MessageAnnotationsStripAddTraceTest(MessagingHandler):
self.timer = event.reactor.schedule(TIMEOUT, TestTimeout(self))
self.conn2 = event.container.connect(self.address2)
self.receiver = event.container.create_receiver(self.conn2, self.dest)
- self.conn1 = event.container.connect(self.address1)
+ self.logger.log("on_start(): Receiver link created on self.conn2")
def on_sendable(self, event):
- if self.msg_not_sent:
- msg = Message(body={'number': 0})
- ingress_message_annotations = {'x-opt-qd.trace': ['0/QDR.1']}
- msg.annotations = ingress_message_annotations
- event.sender.send(msg)
- self.msg_not_sent = False
+ if event.sender == self.sender:
+ if self.msg_not_sent:
+ msg = Message(body={'number': 0})
+ ingress_message_annotations = {'x-opt-qd.trace': ['0/QDR.1']}
+ msg.annotations = ingress_message_annotations
+ event.sender.send(msg)
+ self.msg_not_sent = False
+ self.logger.log("on_sendable(): Message sent")
def on_link_opened(self, event):
if event.receiver == self.receiver:
+ self.conn1 = event.container.connect(self.address1)
self.sender = event.container.create_sender(self.conn1, self.dest)
+ self.logger.log("on_link_opened(): Sender link created on self.conn1")
def on_message(self, event):
- print (event.message)
- if 0 == event.message.body['number']:
- ma = event.message.annotations
- print (ma)
- if ma['x-opt-qd.ingress'] == '0/QDR.A' and ma['x-opt-qd.trace'] == ['0/QDR.1', '0/QDR.A', '0/QDR.B']:
- self.error = None
- self.accept(event.delivery)
- self.timer.cancel()
- self.conn1.close()
- self.conn2.close()
+ if event.receiver == self.receiver:
+ self.logger.log("on_message(): Message received by receiver")
+ if 0 == event.message.body['number']:
+ self.logger.log("on_message(): Message received by receiver body matches expected body")
+ ma = event.message.annotations
+ if ma['x-opt-qd.ingress'] == '0/QDR.A' and ma['x-opt-qd.trace'] == ['0/QDR.1', '0/QDR.A', '0/QDR.B']:
+ self.logger.log("on_message(): Message annotations in message match expected message annotations. Success...")
+ self.error = None
+ self.timer.cancel()
+ self.conn1.close()
+ self.conn2.close()
+ else:
+ self.logger.log("on_message(): Message received by receiver, message annotations are not as expected")
+ self.logger.log(ma)
+ else:
+ self.logger.log("on_message(): Message received by receiver but body is not expected")
def run(self):
Container(self).run()
@@ -1162,25 +1204,30 @@ class SenderSettlesFirst(MessagingHandler):
def on_start(self, event):
self.timer = event.reactor.schedule(TIMEOUT, TestTimeout(self))
- self.conn1 = event.container.connect(self.address1)
- self.sender = event.container.create_sender(self.conn1, self.dest)
self.conn2 = event.container.connect(self.address2)
self.receiver = event.container.create_receiver(self.conn2, self.dest)
+ def on_link_opened(self, event):
+ if event.receiver == self.receiver:
+ self.conn1 = event.container.connect(self.address1)
+ self.sender = event.container.create_sender(self.conn1, self.dest)
+
def on_sendable(self, event):
- if self.msg_not_sent:
- msg = Message(body={'number': 0})
- dlv = event.sender.send(msg)
- dlv.settle()
- self.msg_not_sent = False
+ if event.sender == self.sender:
+ if self.msg_not_sent:
+ msg = Message(body={'number': 0})
+ dlv = event.sender.send(msg)
+ dlv.settle()
+ self.msg_not_sent = False
def on_message(self, event):
- if 0 == event.message.body['number']:
- self.error = None
- self.accept(event.delivery)
- self.timer.cancel()
- self.conn1.close()
- self.conn2.close()
+ if event.receiver == self.receiver:
+ if 0 == event.message.body['number']:
+ self.error = None
+ self.accept(event.delivery)
+ self.timer.cancel()
+ self.conn1.close()
+ self.conn2.close()
def run(self):
Container(self).run()
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org