You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by ac...@apache.org on 2014/05/20 22:20:14 UTC

svn commit: r1596391 - in /qpid/dispatch/trunk: src/router_node.c src/router_private.h src/router_pynode.c src/waypoint.c tests/system_test.py

Author: aconway
Date: Tue May 20 20:20:13 2014
New Revision: 1596391

URL: http://svn.apache.org/r1596391
Log:
NO-JIRA: Refactor: centralize construction of qd_address_t in qd_address()

Modified:
    qpid/dispatch/trunk/src/router_node.c
    qpid/dispatch/trunk/src/router_private.h
    qpid/dispatch/trunk/src/router_pynode.c
    qpid/dispatch/trunk/src/waypoint.c
    qpid/dispatch/trunk/tests/system_test.py

Modified: qpid/dispatch/trunk/src/router_node.c
URL: http://svn.apache.org/viewvc/qpid/dispatch/trunk/src/router_node.c?rev=1596391&r1=1596390&r2=1596391&view=diff
==============================================================================
--- qpid/dispatch/trunk/src/router_node.c (original)
+++ qpid/dispatch/trunk/src/router_node.c Tue May 20 20:20:13 2014
@@ -59,6 +59,15 @@ ALLOC_DEFINE(qd_address_t);
 ALLOC_DEFINE(qd_router_conn_t);
 
 
+qd_address_t* qd_address() {
+    qd_address_t* addr = new_qd_address_t();
+    memset(addr, 0, sizeof(qd_address_t));
+    DEQ_ITEM_INIT(addr);
+    DEQ_INIT(addr->rlinks);
+    DEQ_INIT(addr->rnodes);
+    return addr;
+}
+
 void qd_router_add_link_ref_LH(qd_router_link_ref_list_t *ref_list, qd_router_link_t *link)
 {
     qd_router_link_ref_t *ref = new_qd_router_link_ref_t();
@@ -1117,11 +1126,7 @@ static int router_outgoing_link_handler(
 
         qd_hash_retrieve(router->addr_hash, iter, (void**) &addr);
         if (!addr) {
-            addr = new_qd_address_t();
-            memset(addr, 0, sizeof(qd_address_t));
-            DEQ_ITEM_INIT(addr);
-            DEQ_INIT(addr->rlinks);
-            DEQ_INIT(addr->rnodes);
+            addr = qd_address();
             qd_hash_insert(router->addr_hash, iter, addr, &addr->hash_handle);
             DEQ_INSERT_TAIL(router->addrs, addr);
             addr->semantics = semantics;
@@ -1509,11 +1514,7 @@ qd_address_t *qd_router_register_address
     sys_mutex_lock(router->lock);
     qd_hash_retrieve(router->addr_hash, iter, (void**) &addr);
     if (!addr) {
-        addr = new_qd_address_t();
-        memset(addr, 0, sizeof(qd_address_t));
-        DEQ_ITEM_INIT(addr);
-        DEQ_INIT(addr->rlinks);
-        DEQ_INIT(addr->rnodes);
+        addr = qd_address();
         addr->semantics = semantics;
         qd_hash_insert(router->addr_hash, iter, addr, &addr->hash_handle);
         DEQ_ITEM_INIT(addr);

Modified: qpid/dispatch/trunk/src/router_private.h
URL: http://svn.apache.org/viewvc/qpid/dispatch/trunk/src/router_private.h?rev=1596391&r1=1596390&r2=1596391&view=diff
==============================================================================
--- qpid/dispatch/trunk/src/router_private.h (original)
+++ qpid/dispatch/trunk/src/router_private.h Tue May 20 20:20:13 2014
@@ -156,6 +156,8 @@ struct qd_address_t {
 ALLOC_DECLARE(qd_address_t);
 DEQ_DECLARE(qd_address_t, qd_address_list_t);
 
+/** Constructor for qd_address_t */
+qd_address_t* qd_address();
 
 struct qd_config_phase_t {
     DEQ_LINKS(qd_config_phase_t);

Modified: qpid/dispatch/trunk/src/router_pynode.c
URL: http://svn.apache.org/viewvc/qpid/dispatch/trunk/src/router_pynode.c?rev=1596391&r1=1596390&r2=1596391&view=diff
==============================================================================
--- qpid/dispatch/trunk/src/router_pynode.c (original)
+++ qpid/dispatch/trunk/src/router_pynode.c Tue May 20 20:20:13 2014
@@ -77,11 +77,7 @@ static char *qd_add_router(qd_router_t *
     // This record will be found whenever a "foreign" topological address to this
     // remote router is looked up.
     //
-    addr = new_qd_address_t();
-    memset(addr, 0, sizeof(qd_address_t));
-    DEQ_ITEM_INIT(addr);
-    DEQ_INIT(addr->rlinks);
-    DEQ_INIT(addr->rnodes);
+    addr = qd_address();
     addr->semantics = router_addr_semantics;
     qd_hash_insert(router->addr_hash, iter, addr, &addr->hash_handle);
     DEQ_INSERT_TAIL(router->addrs, addr);
@@ -386,11 +382,7 @@ static PyObject* qd_map_destination(PyOb
     sys_mutex_lock(router->lock);
     qd_hash_retrieve(router->addr_hash, iter, (void**) &addr);
     if (!addr) {
-        addr = new_qd_address_t();
-        memset(addr, 0, sizeof(qd_address_t));
-        DEQ_ITEM_INIT(addr);
-        DEQ_INIT(addr->rlinks);
-        DEQ_INIT(addr->rnodes);
+        addr = qd_address();
         qd_hash_insert(router->addr_hash, iter, addr, &addr->hash_handle);
         addr->semantics = router_semantics_for_addr(router, iter, phase, &unused);
         DEQ_ITEM_INIT(addr);

Modified: qpid/dispatch/trunk/src/waypoint.c
URL: http://svn.apache.org/viewvc/qpid/dispatch/trunk/src/waypoint.c?rev=1596391&r1=1596390&r2=1596391&view=diff
==============================================================================
--- qpid/dispatch/trunk/src/waypoint.c (original)
+++ qpid/dispatch/trunk/src/waypoint.c Tue May 20 20:20:13 2014
@@ -65,11 +65,7 @@ static void qd_waypoint_visit_sink_LH(qd
         qd_hash_retrieve(router->addr_hash, iter, (void*) &addr);
 
         if (!addr) {
-            addr = new_qd_address_t();
-            memset(addr, 0, sizeof(qd_address_t));
-            DEQ_ITEM_INIT(addr);
-            DEQ_INIT(addr->rlinks);
-            DEQ_INIT(addr->rnodes);
+            addr = qd_address();
             qd_hash_insert(router->addr_hash, iter, addr, &addr->hash_handle);
             DEQ_INSERT_TAIL(router->addrs, addr);
             addr->waypoint  = true;
@@ -142,11 +138,7 @@ static void qd_waypoint_visit_source_LH(
         qd_hash_retrieve(router->addr_hash, iter, (void*) &addr);
 
         if (!addr) {
-            addr = new_qd_address_t();
-            memset(addr, 0, sizeof(qd_address_t));
-            DEQ_ITEM_INIT(addr);
-            DEQ_INIT(addr->rlinks);
-            DEQ_INIT(addr->rnodes);
+            addr = qd_address();
             qd_hash_insert(router->addr_hash, iter, addr, &addr->hash_handle);
             DEQ_INSERT_TAIL(router->addrs, addr);
             addr->waypoint  = true;

Modified: qpid/dispatch/trunk/tests/system_test.py
URL: http://svn.apache.org/viewvc/qpid/dispatch/trunk/tests/system_test.py?rev=1596391&r1=1596390&r2=1596391&view=diff
==============================================================================
--- qpid/dispatch/trunk/tests/system_test.py (original)
+++ qpid/dispatch/trunk/tests/system_test.py Tue May 20 20:20:13 2014
@@ -347,6 +347,15 @@ class Qdrouterd(Process):
                 return c
         return None
 
+    def wait_connectors(self):
+        """Wait for all connectors to be connected"""
+        for c in self.config.sections('connector'):
+            retry(lambda: self.is_connected(c['port']))
+
+    def wait_ready(self):
+        """Wait for ports and connectors to be ready"""
+        wait_ports(self.ports)
+        self.wait_connectors()
 
 class Qpidd(Process):
     """Run a Qpid Daemon"""
@@ -511,13 +520,17 @@ class Tester(object):
 class TestCase(unittest.TestCase, Tester): # pylint: disable=too-many-public-methods
     """A TestCase that sets up its own working directory and is also a Tester."""
 
+    _base_dir = None
+
     def __init__(self, test_method):
         unittest.TestCase.__init__(self, test_method)
         Tester.__init__(self)
 
     @classmethod
     def base_dir(cls):
-        return os.path.abspath(os.path.join(__name__, cls.__name__))
+        if not cls._base_dir:
+            cls._base_dir = os.path.abspath(os.path.join(__name__+'.dir', cls.__name__))
+        return cls._base_dir
 
     @classmethod
     def setUpClass(cls):



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org