You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by kg...@apache.org on 2019/01/31 18:57:05 UTC
[qpid-dispatch] branch master updated: NO-JIRA: fix hang in
LinkRouteProxy test under valgrind
This is an automated email from the ASF dual-hosted git repository.
kgiusti 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 d10676f NO-JIRA: fix hang in LinkRouteProxy test under valgrind
d10676f is described below
commit d10676f8ee6a76fff57f6a62cfa4d583dabc63a9
Author: Kenneth Giusti <kg...@apache.org>
AuthorDate: Thu Jan 31 13:54:46 2019 -0500
NO-JIRA: fix hang in LinkRouteProxy test under valgrind
---
tests/system_tests_edge_router.py | 67 ++++++++++++++++++++-------------------
1 file changed, 34 insertions(+), 33 deletions(-)
diff --git a/tests/system_tests_edge_router.py b/tests/system_tests_edge_router.py
index 62e026c..a8895c1 100644
--- a/tests/system_tests_edge_router.py
+++ b/tests/system_tests_edge_router.py
@@ -661,6 +661,7 @@ class RouterTest(TestCase):
test.run()
self.assertEqual(None, test.error)
+
class LinkRouteProxyTest(TestCase):
"""
Test edge router's ability to proxy configured and connection-scoped link
@@ -762,38 +763,6 @@ class LinkRouteProxyTest(TestCase):
tr.queue.get(timeout=TIMEOUT)
tr.stop()
- def _test_attach_weirdness(self, service):
- """Exercise a service that simulates link attach failures"""
-
- # create a consumer, do not wait for link to open, reattach
- # on received detach
- rx = AsyncTestReceiver(self.EB1.listener, 'CfgLinkRoute1/foo',
- wait=False, recover_link=True)
- service.link_dropped.wait(timeout=TIMEOUT)
- service.join() # wait for thread exit
- del service
-
- # now attach a working service to the same address,
- # make sure it all works
- fs = FakeService(self.EA1.route_container)
- self.INT_B.wait_address("CfgLinkRoute1")
-
- if True: #
- rx.stop()
- fs.join()
- else:
- tx = AsyncTestSender(self.EA1.listener, 'CfgLinkRoute1/foo',
-
- body="HEY HO LET'S GO!")
- tx.wait()
-
- msg = rx.queue.get(timeout=TIMEOUT)
- self.assertTrue(msg.body == "HEY HO LET'S GO!")
- rx.stop()
- fs.join()
- self.assertEqual(1, fs.in_count)
- self.assertEqual(1, fs.out_count)
-
def test_01_immedate_detach_reattach(self):
"""
Have a service for a link routed address abruptly detach
@@ -815,7 +784,39 @@ class LinkRouteProxyTest(TestCase):
ad = AttachDropper(self.EA1.route_container)
self.INT_B.wait_address("CfgLinkRoute1")
- self._test_attach_weirdness(ad)
+
+ # create a consumer, do not wait for link to open, reattach
+ # on received detach
+ rx = AsyncTestReceiver(self.EB1.listener, 'CfgLinkRoute1/foo',
+ wait=False, recover_link=True)
+ ad.link_dropped.wait(timeout=TIMEOUT)
+ ad.join() # wait for thread exit
+
+ # wait until prefix addresses are removed
+ self._wait_address_gone(self.INT_B, "CCfgLinkRoute1")
+ self._wait_address_gone(self.INT_B, "DCfgLinkRoute1")
+ rx.stop()
+
+ # now attach a working service to the same address,
+ # make sure it all works
+ fs = FakeService(self.EA1.route_container)
+ self.INT_B.wait_address("CfgLinkRoute1")
+ rx = AsyncTestReceiver(self.EB1.listener, 'CfgLinkRoute1/foo',
+ wait=False, recover_link=True)
+ tx = AsyncTestSender(self.EA1.listener, 'CfgLinkRoute1/foo',
+ body="HEY HO LET'S GO!")
+ tx.wait()
+
+ msg = rx.queue.get(timeout=TIMEOUT)
+ self.assertTrue(msg.body == "HEY HO LET'S GO!")
+ rx.stop()
+ fs.join()
+ self.assertEqual(1, fs.in_count)
+ self.assertEqual(1, fs.out_count)
+
+ # wait until addresses are cleaned up
+ self._wait_address_gone(self.INT_A, "CfgLinkRoute1")
+ self._wait_address_gone(self.INT_B, "CfgLinkRoute1")
def test_02_thrashing_link_routes(self):
"""
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org