You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by rh...@apache.org on 2013/04/10 20:14:39 UTC

svn commit: r1466602 - in /qpid/proton/trunk/tests/python/proton_tests: common.py engine.py soak.py

Author: rhs
Date: Wed Apr 10 18:14:38 2013
New Revision: 1466602

URL: http://svn.apache.org/r1466602
Log:
added profile, delay, and timeout parameters for test suite; adjusted defaults for soak tests; made idle and keepalive tests use newly added delay and timeout parameters

Modified:
    qpid/proton/trunk/tests/python/proton_tests/common.py
    qpid/proton/trunk/tests/python/proton_tests/engine.py
    qpid/proton/trunk/tests/python/proton_tests/soak.py

Modified: qpid/proton/trunk/tests/python/proton_tests/common.py
URL: http://svn.apache.org/viewvc/qpid/proton/trunk/tests/python/proton_tests/common.py?rev=1466602&r1=1466601&r2=1466602&view=diff
==============================================================================
--- qpid/proton/trunk/tests/python/proton_tests/common.py (original)
+++ qpid/proton/trunk/tests/python/proton_tests/common.py Wed Apr 10 18:14:38 2013
@@ -24,24 +24,24 @@ from proton import Driver, Connection, S
 
 
 def free_tcp_ports(count=1):
-    """ return a list of 'count' TCP ports that are free to used (ie. unbound)
-    """
-    retry = 0
-    ports = []
-    sockets = []
-    while len(ports) != count:
-        port = randint(49152, 65535)
-        sockets.append( socket( AF_INET, SOCK_STREAM ) )
-        try:
-            sockets[-1].bind( ("0.0.0.0", port ) )
-            ports.append( port )
-            retry = 0
-        except:
-            retry += 1
-            assert retry != 100, "No free sockets available for test!"
-    for s in sockets:
-        s.close()
-    return ports
+  """ return a list of 'count' TCP ports that are free to used (ie. unbound)
+  """
+  retry = 0
+  ports = []
+  sockets = []
+  while len(ports) != count:
+    port = randint(49152, 65535)
+    sockets.append( socket( AF_INET, SOCK_STREAM ) )
+    try:
+      sockets[-1].bind( ("0.0.0.0", port ) )
+      ports.append( port )
+      retry = 0
+    except:
+      retry += 1
+      assert retry != 100, "No free sockets available for test!"
+  for s in sockets:
+    s.close()
+  return ports
 
 
 class Test:
@@ -49,6 +49,28 @@ class Test:
   def __init__(self, name):
     self.name = name
 
+  def configure(self, config):
+    self.config = config
+
+  def default(self, name, value, **profiles):
+    default = value
+    profile = self.config.defines.get("profile")
+    if profile:
+      default = profiles.get(profile, default)
+    return self.config.defines.get(name, default)
+
+  @property
+  def delay(self):
+    return float(self.default("delay", "1", fast="0.1"))
+
+  @property
+  def timeout(self):
+    return float(self.default("timeout", "60", fast="10"))
+
+  @property
+  def verbose(self):
+    return int(self.default("verbose", 0))
+
 class Skipped(Exception):
   skipped = True
 

Modified: qpid/proton/trunk/tests/python/proton_tests/engine.py
URL: http://svn.apache.org/viewvc/qpid/proton/trunk/tests/python/proton_tests/engine.py?rev=1466602&r1=1466601&r2=1466602&view=diff
==============================================================================
--- qpid/proton/trunk/tests/python/proton_tests/engine.py (original)
+++ qpid/proton/trunk/tests/python/proton_tests/engine.py Wed Apr 10 18:14:38 2013
@@ -1346,12 +1346,12 @@ class ServerTest(Test):
   def testKeepalive(self):
     """ Verify that idle frames are sent to keep a Connection alive
     """
-    idle_timeout_secs = 1
+    idle_timeout_secs = self.delay
     self.server = common.TestServerDrain()
     self.server.start()
     self.driver = Driver()
     self.cxtr = self.driver.connector(self.server.host, self.server.port)
-    self.cxtr.transport.idle_timeout = idle_timeout_secs * 1000  #msecs
+    self.cxtr.transport.idle_timeout = int(idle_timeout_secs * 1000)  #msecs
     self.cxtr.sasl().mechanisms("ANONYMOUS")
     self.cxtr.sasl().client()
     self.conn = Connection()
@@ -1364,9 +1364,9 @@ class ServerTest(Test):
 
     # wait for the connection to come up
 
-    timeout = time() + 10
+    deadline = time() + self.timeout
     while self.conn.state != (Endpoint.LOCAL_ACTIVE | Endpoint.REMOTE_ACTIVE) \
-          and time() <= timeout:
+          and time() <= deadline:
       self.cxtr.process()
       self.driver.wait(1)
       self.cxtr.process()
@@ -1376,10 +1376,10 @@ class ServerTest(Test):
     # wait up to 3x the idle timeout
     old_count = self.cxtr.transport.frames_input
     duration = 3 * idle_timeout_secs
-    timeout = time() + duration
-    while time() <= timeout:
+    deadline = time() + duration
+    while time() <= deadline:
       self.cxtr.process()
-      self.driver.wait(10 * duration * 1000)
+      self.driver.wait(1)
       self.cxtr.process()
 
     assert self.conn.state == (Endpoint.LOCAL_ACTIVE | Endpoint.REMOTE_ACTIVE), "Connection terminated"
@@ -1391,8 +1391,8 @@ class ServerTest(Test):
     """ Verify that a Connection is terminated properly when Idle frames do not
     arrive in a timely manner.
     """
-    idle_timeout_secs = 1
-    self.server = common.TestServerDrain(idle_timeout=idle_timeout_secs * 1000)
+    idle_timeout_secs = self.delay
+    self.server = common.TestServerDrain(idle_timeout=int(idle_timeout_secs * 1000))
     self.server.start()
     self.driver = Driver()
     self.cxtr = self.driver.connector(self.server.host, self.server.port)
@@ -1404,11 +1404,11 @@ class ServerTest(Test):
 
     # wait for the connection to come up
 
-    timeout = time() + 10
+    deadline = time() + self.timeout
     while self.conn.state != (Endpoint.LOCAL_ACTIVE | Endpoint.REMOTE_ACTIVE) \
-          and time() <= timeout:
+          and time() <= deadline:
       self.cxtr.process()
-      self.driver.wait(10 * 1000)
+      self.driver.wait(int(self.timeout * 1000))
       self.cxtr.process()
 
     assert self.conn.state == (Endpoint.LOCAL_ACTIVE | Endpoint.REMOTE_ACTIVE), "Connection failed"
@@ -1417,10 +1417,10 @@ class ServerTest(Test):
     # wait up to 3x the idle timeout
     old_count = self.cxtr.transport.frames_output
     duration = 3 * idle_timeout_secs
-    timeout = time() + duration
-    while time() <= timeout:
+    deadline = time() + duration
+    while time() <= deadline:
       self.cxtr.process()
-      self.driver.wait(10 * duration * 1000)
+      self.driver.wait(int(10 * duration * 1000))
       self.cxtr.process()
 
     assert self.conn.state == (Endpoint.LOCAL_ACTIVE | Endpoint.REMOTE_ACTIVE), "Connection terminated"
@@ -1432,10 +1432,10 @@ class ServerTest(Test):
 
     # and check that the remote killed the connection:
 
-    timeout = time() + 10
-    while (self.conn.state & Endpoint.REMOTE_ACTIVE) and time() <= timeout:
+    deadline = time() + self.timeout
+    while (self.conn.state & Endpoint.REMOTE_ACTIVE) and time() <= deadline:
       self.cxtr.process()
-      self.driver.wait(10*1000)
+      self.driver.wait(int(self.timeout*1000))
       self.cxtr.process()
 
     assert self.conn.state & Endpoint.REMOTE_CLOSED, "Connection failed to close"

Modified: qpid/proton/trunk/tests/python/proton_tests/soak.py
URL: http://svn.apache.org/viewvc/qpid/proton/trunk/tests/python/proton_tests/soak.py?rev=1466602&r1=1466601&r2=1466602&view=diff
==============================================================================
--- qpid/proton/trunk/tests/python/proton_tests/soak.py (original)
+++ qpid/proton/trunk/tests/python/proton_tests/soak.py Wed Apr 10 18:14:38 2013
@@ -244,9 +244,47 @@ class AppTests(common.Test):
 
     def __init__(self, *args):
         common.Test.__init__(self, *args)
+        self.is_valgrind = False
 
-    def configure(self, config):
-        self.config = config.defines
+    def default(self, name, value, **kwargs):
+        if self.is_valgrind:
+            default = kwargs.get("valgrind", value)
+        else:
+            default = value
+        return common.Test.default(self, name, default, **kwargs)
+
+    @property
+    def iterations(self):
+        return int(self.default("iterations", 2, fast=1, valgrind=1))
+
+    @property
+    def send_count(self):
+        return int(self.default("send_count", 17, fast=1, valgrind=1))
+
+    @property
+    def target_count(self):
+        return int(self.default("target_count", 5, fast=1, valgrind=1))
+
+    @property
+    def send_batch(self):
+        return int(self.default("send_batch", 7, fast=1, valgrind=1))
+
+    @property
+    def forward_count(self):
+        return int(self.default("forward_count", 5, fast=1, valgrind=1))
+
+    @property
+    def port_count(self):
+        return int(self.default("port_count", 3, fast=1, valgrind=1))
+
+    @property
+    def sender_count(self):
+        return int(self.default("sender_count", 3, fast=1, valgrind=1))
+
+    def valgrind_test(self):
+        if "VALGRIND" not in os.environ:
+            raise common.Skipped("Skipping test - $VALGRIND not set.")
+        self.is_valgrind = True
 
     def setup(self):
         self.senders = []
@@ -256,7 +294,7 @@ class AppTests(common.Test):
         pass
 
     def _do_test(self, iterations=1):
-        verbose = "verbose" in self.config
+        verbose = self.verbose
 
         for R in self.receivers:
             R.start( verbose )
@@ -295,9 +333,9 @@ class MessengerTests(AppTests):
         target_count = # of targets to send to.
         send_count = # messages sent to each target
         """
-        iterations = int(self.config.get("iterations", 2))
-        send_count = int(self.config.get("send_count", 997))
-        target_count = int(self.config.get("target_count", 5))
+        iterations = self.iterations
+        send_count = self.send_count
+        target_count = self.target_count
 
         send_total = send_count * target_count
         receive_total = send_total * iterations
@@ -324,10 +362,10 @@ class MessengerTests(AppTests):
         send_count = # messages sent to each target
         send_batch - wait for replies after this many messages sent
         """
-        iterations = int(self.config.get("iterations", 2))
-        send_count = int(self.config.get("send_count", 1097))
-        target_count = int(self.config.get("target_count", 3))
-        send_batch = int(self.config.get("send_batch", 13))
+        iterations = self.iterations
+        send_count = self.send_count
+        target_count = self.target_count
+        send_batch = self.send_batch
 
         send_total = send_count * target_count
         receive_total = send_total * iterations
@@ -359,11 +397,11 @@ class MessengerTests(AppTests):
         send_batch - wait for replies after this many messages sent
         forward_count - forward to this many targets
         """
-        iterations = int(self.config.get("iterations", 2))
-        send_count = int(self.config.get("send_count", 857))
-        target_count = int(self.config.get("target_count", 3))
-        send_batch = int(self.config.get("send_batch", 11))
-        forward_count = int(self.config.get("forward_count", 3))
+        iterations = self.iterations
+        send_count = self.send_count
+        target_count = self.target_count
+        send_batch = self.send_batch
+        forward_count = self.forward_count
 
         send_total = send_count * target_count
         receive_total = send_total * iterations
@@ -411,12 +449,12 @@ class MessengerTests(AppTests):
         send_count - # of messages sent to each target
         send_batch - # of messages to send before waiting for response
         """
-        iterations = int(self.config.get("iterations", 2))
-        port_count = int(self.config.get("port_count", 3))
-        sender_count = int(self.config.get("sender_count", 11))
-        target_count = int(self.config.get("target_count", 3))
-        send_count = int(self.config.get("send_count", 101))
-        send_batch = int(self.config.get("send_batch", 17))
+        iterations = self.iterations
+        port_count = self.port_count
+        sender_count = self.sender_count
+        target_count = self.target_count
+        send_count = self.send_count
+        send_batch = self.send_batch
 
         send_total = port_count * target_count * send_count
         receive_total = send_total * sender_count * iterations
@@ -445,9 +483,7 @@ class MessengerTests(AppTests):
         self._do_oneway_test(MessengerReceiverC(), MessengerSenderC())
 
     def test_oneway_valgrind(self):
-        if "VALGRIND" not in os.environ:
-            raise common.Skipped("Skipping test - $VALGRIND not set.")
-        self.config["iterations"] = int(self.config.get("iterations", 1))
+        self.valgrind_test()
         self._do_oneway_test(MessengerReceiverValgrind(), MessengerSenderValgrind())
 
     def test_oneway_Python(self):
@@ -463,9 +499,7 @@ class MessengerTests(AppTests):
         self._do_echo_test(MessengerReceiverC(), MessengerSenderC())
 
     def test_echo_valgrind(self):
-        if "VALGRIND" not in os.environ:
-            raise common.Skipped("Skipping test - $VALGRIND not set.")
-        self.config["iterations"] = int(self.config.get("iterations", 1))
+        self.valgrind_test()
         self._do_echo_test(MessengerReceiverValgrind(), MessengerSenderValgrind())
 
     def test_echo_Python(self):
@@ -481,9 +515,7 @@ class MessengerTests(AppTests):
         self._do_relay_test(MessengerReceiverC(), MessengerReceiverC(), MessengerSenderC())
 
     def test_relay_valgrind(self):
-        if "VALGRIND" not in os.environ:
-            raise common.Skipped("Skipping test - $VALGRIND not set.")
-        self.config["iterations"] = int(self.config.get("iterations", 1))
+        self.valgrind_test()
         self._do_relay_test(MessengerReceiverValgrind(), MessengerReceiverValgrind(), MessengerSenderValgrind())
 
     def test_relay_C_Python(self):
@@ -496,9 +528,7 @@ class MessengerTests(AppTests):
         self._do_star_topology_test( MessengerReceiverC, MessengerSenderC )
 
     def test_star_topology_valgrind(self):
-        if "VALGRIND" not in os.environ:
-            raise common.Skipped("Skipping test - $VALGRIND not set.")
-        self.config["iterations"] = int(self.config.get("iterations", 1))
+        self.valgrind_test()
         self._do_star_topology_test( MessengerReceiverValgrind, MessengerSenderValgrind )
 
     def test_star_topology_Python(self):



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