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 2021/03/26 16:43:06 UTC

[qpid-dispatch] branch master updated: DISPATCH-2016: Launch the echo servers immediately after port allotment. Moved logging code after router launch code. This closes #1086.

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 222aa3a  DISPATCH-2016: Launch the echo servers immediately after port allotment. Moved logging code after router launch code. This closes #1086.
222aa3a is described below

commit 222aa3aacb54dec63b20d97d8406d3e5a30bd770
Author: Ganesh Murthy <gm...@apache.org>
AuthorDate: Fri Mar 26 09:54:35 2021 -0400

    DISPATCH-2016: Launch the echo servers immediately after port allotment. Moved logging code after router launch code. This closes #1086.
---
 tests/system_tests_tcp_adaptor.py | 208 +++++++++++++++++++-------------------
 1 file changed, 104 insertions(+), 104 deletions(-)

diff --git a/tests/system_tests_tcp_adaptor.py b/tests/system_tests_tcp_adaptor.py
index bde08a3..3fc27dd 100644
--- a/tests/system_tests_tcp_adaptor.py
+++ b/tests/system_tests_tcp_adaptor.py
@@ -258,102 +258,78 @@ class TcpAdaptor(TestCase):
 
         cls.routers = []
 
-        # Allocate a sea of ports
-        for rtr in cls.router_order:
-            cls.amqp_listener_ports[rtr] = cls.tester.get_port()
-            cls.tcp_server_listener_ports[rtr] = cls.tester.get_port()
-            tl_ports = {}
-            for tcp_listener in cls.router_order:
-                tl_ports[tcp_listener] = cls.tester.get_port()
-            cls.tcp_client_listener_ports[rtr] = tl_ports
-            cls.nodest_listener_ports[rtr] = cls.tester.get_port()
-            # cls.http_listener_ports[rtr] = cls.tester.get_port()
-
-        inter_router_port_AB  = cls.tester.get_port()
-        inter_router_port_BC  = cls.tester.get_port()
-        cls.INTA_edge_port = cls.tester.get_port()
-        cls.INTB_edge_port = cls.tester.get_port()
-        cls.INTC_edge_port = cls.tester.get_port()
-        cls.EC2_conn_stall_connector_port = cls.tester.get_port()
-        cls.INTA_conn_stall_listener_port = cls.tester.get_port()
-        cls.EC2_conn_stall_listener_port = cls.tester.get_port()
-
+        # define logging levels
+        cls.print_logs_server = False
+        cls.print_logs_client = True
         cls.logger = Logger(title="TcpAdaptor-testClass",
                             print_to_console=True,
                             save_for_dump=False,
                             ofilename='../setUpClass/TcpAdaptor.log')
-
         # Write a dummy log line for scraper.
         cls.logger.log("SERVER (info) Container Name: TCP_TEST")
 
-        # Create a scoreboard for the ports
-        p_out = []
+        # Allocate echo server ports first
         for rtr in cls.router_order:
-            p_out.append("%s_amqp=%d" %
-                         (rtr, cls.amqp_listener_ports[rtr]))
-            p_out.append("%s_echo_server=%d" %
-                         (rtr, cls.tcp_server_listener_ports[rtr]))
-            for tcp_listener in cls.router_order:
-                p_out.append("%s_echo_listener_for_%s=%d" %
-                             (rtr, tcp_listener, cls.tcp_client_listener_ports[rtr][tcp_listener]))
-            p_out.append("%s_nodest_listener=%d" %
-                         (rtr, cls.nodest_listener_ports[rtr]))
-            # p_out.append("%s_http_listener=%d" %
-            #             (rtr, cls.http_listener_ports[rtr]))
-        p_out.append("inter_router_port_AB=%d" % inter_router_port_AB)
-        p_out.append("inter_router_port_BC=%d" % inter_router_port_BC)
-        p_out.append("INTA_edge_port=%d" % cls.INTA_edge_port)
-        p_out.append("INTB_edge_port=%d" % cls.INTB_edge_port)
-        p_out.append("INTC_edge_port=%d" % cls.INTC_edge_port)
-        p_out.append("EC2_conn_stall_connector_port%d" % cls.EC2_conn_stall_connector_port)
-        p_out.append("INTA_conn_stall_listener_port%d" % cls.INTA_conn_stall_listener_port)
-        p_out.append("EC2_conn_stall_listener_port%d" % cls.EC2_conn_stall_listener_port)
+            cls.tcp_server_listener_ports[rtr] = cls.tester.get_port()
 
-        # write to log
-        for line in p_out:
-            cls.logger.log("TCP_TEST %s" % line)
+        # start echo servers immediately after the echo server
+        # ports are assigned.
+        for rtr in cls.router_order:
+            test_name = "TcpAdaptor"
+            server_prefix = "ECHO_SERVER %s ES_%s" % (test_name, rtr)
+            server_logger = Logger(title=test_name,
+                                   print_to_console=cls.print_logs_server,
+                                   save_for_dump=False,
+                                   ofilename="../setUpClass/TcpAdaptor_echo_server_%s.log" % rtr)
+            cls.logger.log("TCP_TEST Launching echo server '%s'" % server_prefix)
+            server = TcpEchoServer(prefix=server_prefix,
+                                   port=cls.tcp_server_listener_ports[rtr],
+                                   logger=server_logger)
+            assert server.is_running
+            cls.echo_servers[rtr] = server
 
-        # write to shell script
-        with open("../setUpClass/TcpAdaptor-ports.sh", 'w') as o_file:
-            for line in p_out:
-                o_file.write("set %s\n" % line)
+        cls.EC2_conn_stall_connector_port = cls.tester.get_port()
+        # start special naughty servers that misbehave on purpose
+        server_prefix = "ECHO_SERVER TcpAdaptor NS_EC2_CONN_STALL"
+        server_logger = Logger(title="TcpAdaptor",
+                               print_to_console=cls.print_logs_server,
+                               save_for_dump=False,
+                               ofilename="../setUpClass/TcpAdaptor_echo_server_NS_CONN_STALL.log")
+        cls.logger.log("TCP_TEST Launching echo server '%s'" % server_prefix)
+        server = TcpEchoServer(prefix=server_prefix,
+                               port=cls.EC2_conn_stall_connector_port,
+                               logger=server_logger,
+                               conn_stall=Q2_DELAY_SECONDS)
+        assert server.is_running
+        cls.echo_server_NS_CONN_STALL = server
 
-        # Write a script to run scraper on this test's log files
-        scraper_abspath = os.path.join(os.environ.get('BUILD_DIR'), 'tests', 'scraper', 'scraper.py')
-        logs_dir     = os.path.abspath("../setUpClass")
-        main_log     = "TcpAdaptor.log"
-        echo_logs    = "TcpAdaptor_echo*"
-        big_test_log = "TcpAdaptor_all.log"
-        int_logs     = "I*.log"
-        edge_logs    = "E*.log"
-        log_modules_spec = "--log-modules TCP_ADAPTOR,TCP_TEST,ECHO_SERVER,ECHO_CLIENT"
-        html_output  = "TcpAdaptor.html"
+        # Allocate a sea of router ports
+        for rtr in cls.router_order:
+            cls.amqp_listener_ports[rtr] = cls.tester.get_port()
+            tl_ports = {}
+            for tcp_listener in cls.router_order:
+                tl_ports[tcp_listener] = cls.tester.get_port()
+            cls.tcp_client_listener_ports[rtr] = tl_ports
+            cls.nodest_listener_ports[rtr] = cls.tester.get_port()
 
-        with open("../setUpClass/TcpAdaptor-run-scraper.sh", 'w') as o_file:
-            o_file.write("#!/bin/bash\n\n")
-            o_file.write("# Script to run scraper on test class TcpAdaptor test result\n")
-            o_file.write("# cd into logs directory\n")
-            o_file.write("cd %s\n\n" % logs_dir)
-            o_file.write("# Concatenate test class logs into single file\n")
-            o_file.write("cat %s %s > %s\n\n" % (main_log, echo_logs, big_test_log))
-            o_file.write("# run scraper\n")
-            o_file.write("python %s %s -f %s %s %s > %s\n\n" %
-                         (scraper_abspath, log_modules_spec, int_logs, edge_logs, big_test_log, html_output))
-            o_file.write("echo View the results by opening the html file\n")
-            o_file.write("echo     firefox %s" % (os.path.join(logs_dir, html_output)))
+        inter_router_port_AB = cls.tester.get_port()
+        cls.INTA_edge_port = cls.tester.get_port()
+        cls.INTA_conn_stall_listener_port = cls.tester.get_port()
 
-        # Launch the routers
+        # Launch the routers using the sea of router ports
         router('INTA', 'interior',
                [('listener', {'role': 'inter-router', 'port': inter_router_port_AB}),
                 ('listener', {'name': 'uplink', 'role': 'edge', 'port': cls.INTA_edge_port}),
                 ('tcpListener', {'host': "0.0.0.0", 'port': cls.INTA_conn_stall_listener_port,
                                  'address': 'NS_EC2_CONN_STALL', 'siteId': cls.site})])
-
+        inter_router_port_BC = cls.tester.get_port()
+        cls.INTB_edge_port = cls.tester.get_port()
         router('INTB', 'interior',
                [('connector', {'role': 'inter-router', 'port': inter_router_port_AB}),
                 ('listener', {'role': 'inter-router', 'port': inter_router_port_BC}),
                 ('listener', {'name': 'uplink', 'role': 'edge', 'port': cls.INTB_edge_port})])
 
+        cls.INTC_edge_port = cls.tester.get_port()
         router('INTC', 'interior',
                [('connector', {'role': 'inter-router', 'port': inter_router_port_BC}),
                 ('listener', {'name': 'uplink', 'role': 'edge', 'port': cls.INTC_edge_port})])
@@ -368,6 +344,7 @@ class TcpAdaptor(TestCase):
                [('connector', {'name': 'uplink', 'role': 'edge', 'port': cls.INTB_edge_port})])
         router('EC1', 'edge',
                [('connector', {'name': 'uplink', 'role': 'edge', 'port': cls.INTC_edge_port})])
+        cls.EC2_conn_stall_listener_port = cls.tester.get_port()
         router('EC2', 'edge',
                [('connector', {'name': 'uplink', 'role': 'edge', 'port': cls.INTC_edge_port}),
                 ('tcpConnector', {'host': "127.0.0.1", 'port': cls.EC2_conn_stall_connector_port,
@@ -405,38 +382,61 @@ class TcpAdaptor(TestCase):
         cls.logger.log("TCP_TEST INTC waiting for connection to INTB")
         cls.INTC.wait_router_connected('INTB')
 
-        # define logging levels
-        cls.print_logs_server = False
-        cls.print_logs_client = True
-
-        # start echo servers
+        # Create a scoreboard for the ports
+        p_out = []
         for rtr in cls.router_order:
-            test_name = "TcpAdaptor"
-            server_prefix = "ECHO_SERVER %s ES_%s" % (test_name, rtr)
-            server_logger = Logger(title=test_name,
-                                   print_to_console=cls.print_logs_server,
-                                   save_for_dump=False,
-                                   ofilename="../setUpClass/TcpAdaptor_echo_server_%s.log" % rtr)
-            cls.logger.log("TCP_TEST Launching echo server '%s'" % server_prefix)
-            server = TcpEchoServer(prefix=server_prefix,
-                                   port=cls.tcp_server_listener_ports[rtr],
-                                   logger=server_logger)
-            assert server.is_running
-            cls.echo_servers[rtr] = server
+            p_out.append("%s_amqp=%d" %
+                         (rtr, cls.amqp_listener_ports[rtr]))
+            p_out.append("%s_echo_server=%d" %
+                         (rtr, cls.tcp_server_listener_ports[rtr]))
+            for tcp_listener in cls.router_order:
+                p_out.append("%s_echo_listener_for_%s=%d" %
+                             (rtr, tcp_listener, cls.tcp_client_listener_ports[rtr][tcp_listener]))
+            p_out.append("%s_nodest_listener=%d" %
+                         (rtr, cls.nodest_listener_ports[rtr]))
+            # p_out.append("%s_http_listener=%d" %
+            #             (rtr, cls.http_listener_ports[rtr]))
+        p_out.append("inter_router_port_AB=%d" % inter_router_port_AB)
+        p_out.append("inter_router_port_BC=%d" % inter_router_port_BC)
+        p_out.append("INTA_edge_port=%d" % cls.INTA_edge_port)
+        p_out.append("INTB_edge_port=%d" % cls.INTB_edge_port)
+        p_out.append("INTC_edge_port=%d" % cls.INTC_edge_port)
+        p_out.append("EC2_conn_stall_connector_port%d" % cls.EC2_conn_stall_connector_port)
+        p_out.append("INTA_conn_stall_listener_port%d" % cls.INTA_conn_stall_listener_port)
+        p_out.append("EC2_conn_stall_listener_port%d" % cls.EC2_conn_stall_listener_port)
 
-        # start special naughty servers that misbehave on purpose
-        server_prefix = "ECHO_SERVER TcpAdaptor NS_EC2_CONN_STALL"
-        server_logger = Logger(title="TcpAdaptor",
-                               print_to_console=cls.print_logs_server,
-                               save_for_dump=False,
-                               ofilename="../setUpClass/TcpAdaptor_echo_server_NS_CONN_STALL.log")
-        cls.logger.log("TCP_TEST Launching echo server '%s'" % server_prefix)
-        server = TcpEchoServer(prefix=server_prefix,
-                               port=cls.EC2_conn_stall_connector_port,
-                               logger=server_logger,
-                               conn_stall=Q2_DELAY_SECONDS)
-        assert server.is_running
-        cls.echo_server_NS_CONN_STALL = server
+        # write to log
+        for line in p_out:
+            cls.logger.log("TCP_TEST %s" % line)
+
+        # write to shell script
+        with open("../setUpClass/TcpAdaptor-ports.sh", 'w') as o_file:
+            for line in p_out:
+                o_file.write("set %s\n" % line)
+
+        # Write a script to run scraper on this test's log files
+        scraper_abspath = os.path.join(os.environ.get('BUILD_DIR'), 'tests', 'scraper', 'scraper.py')
+        logs_dir     = os.path.abspath("../setUpClass")
+        main_log     = "TcpAdaptor.log"
+        echo_logs    = "TcpAdaptor_echo*"
+        big_test_log = "TcpAdaptor_all.log"
+        int_logs     = "I*.log"
+        edge_logs    = "E*.log"
+        log_modules_spec = "--log-modules TCP_ADAPTOR,TCP_TEST,ECHO_SERVER,ECHO_CLIENT"
+        html_output  = "TcpAdaptor.html"
+
+        with open("../setUpClass/TcpAdaptor-run-scraper.sh", 'w') as o_file:
+            o_file.write("#!/bin/bash\n\n")
+            o_file.write("# Script to run scraper on test class TcpAdaptor test result\n")
+            o_file.write("# cd into logs directory\n")
+            o_file.write("cd %s\n\n" % logs_dir)
+            o_file.write("# Concatenate test class logs into single file\n")
+            o_file.write("cat %s %s > %s\n\n" % (main_log, echo_logs, big_test_log))
+            o_file.write("# run scraper\n")
+            o_file.write("python %s %s -f %s %s %s > %s\n\n" %
+                         (scraper_abspath, log_modules_spec, int_logs, edge_logs, big_test_log, html_output))
+            o_file.write("echo View the results by opening the html file\n")
+            o_file.write("echo     firefox %s" % (os.path.join(logs_dir, html_output)))
 
         # wait for server addresses (mobile ES_<rtr>) to propagate to all interior routers
         interior_rtrs = [rtr for rtr in cls.router_order if rtr.startswith('I')]
@@ -471,7 +471,7 @@ class TcpAdaptor(TestCase):
         for rtr in cls.router_order:
             server = cls.echo_servers.get(rtr)
             if server is not None:
-                cls.logger.log("TCP_TEST Stopping echo server %s" % rtr)
+                cls.logger.log("TCP_TEST Stopping echo server ES_%s" % rtr)
                 server.wait()
         if cls.echo_server_NS_CONN_STALL is not None:
             cls.logger.log("TCP_TEST Stopping echo server NS_EC2_CONN_STALL")

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