This is merely a historical archive of years 2008-2021, before the migration to mailman3.
A maintained and still updated list archive can be found at https://lists.osmocom.org/hyperkitty/list/gerrit-log@lists.osmocom.org/.
Neels Hofmeyr gerrit-no-reply at lists.osmocom.orgReview at https://gerrit.osmocom.org/1924 speed up python tests more than 10 fold by sleeping less The VTYInteract tests gave a constant sleep(1) grace period for the process to startup. This caused the test to take minutes for no reason at all. Add code to VTYInteract._connect_socket() to try and connect right away, retrying up to three seconds in .1 second intervals. This flies through most tests without any sleep() at all. When TCP socket debugging is switched on, also print how many connection tries it took to connect the VTY socket. Note that the openbsc python tests also add some sleep()s that also need to be removed to benefit from this. Change-Id: Icc337f52a93d5fe31fc4ff235ccaf4e0fe75fa39 --- M osmopy/obscvty.py M osmopy/osmodumpdoc.py M osmopy/osmotestconfig.py M osmopy/osmotestvty.py 4 files changed, 22 insertions(+), 8 deletions(-) git pull ssh://gerrit.osmocom.org:29418/python/osmo-python-tests refs/changes/24/1924/1 diff --git a/osmopy/obscvty.py b/osmopy/obscvty.py index 1f9db09..e5a953d 100755 --- a/osmopy/obscvty.py +++ b/osmopy/obscvty.py @@ -20,6 +20,7 @@ import socket import sys, subprocess import os +import time """VTYInteract: interact with an osmocom vty @@ -71,13 +72,29 @@ def _connect_socket(self): if self.socket is not None: return - self.socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) - self.socket.setblocking(1) - self.socket.connect((self.host, self.port)) + retries = 30 + took = 0 + while True: + took += 1 + try: + self.socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) + self.socket.setblocking(1) + self.socket.connect((self.host, self.port)) + except IOError: + retries -= 1 + if retries <= 0: + raise + # possibly the binary hasn't launched yet + if debug_tcp_sockets: + print "Connecting socket failed, retrying..." + time.sleep(.1) + continue + break + if debug_tcp_sockets: VTYInteract.all_sockets.append(self.socket) - print "Socket: connected to %s:%d %r (%d sockets open)" % ( - self.host, self.port, self.socket, + print "Socket: in %d tries, connected to %s:%d %r (%d sockets open)" % ( + took, self.host, self.port, self.socket, len(VTYInteract.all_sockets)) self.socket.recv(4096) diff --git a/osmopy/osmodumpdoc.py b/osmopy/osmodumpdoc.py index d9d52b5..0ff1f6b 100644 --- a/osmopy/osmodumpdoc.py +++ b/osmopy/osmodumpdoc.py @@ -48,7 +48,6 @@ print >> sys.stderr, "Skipping app %s" % appname failures += 1 else: - time.sleep(1) try: dump_doc(app[2], app[0], 'doc/%s_vty_reference.xml' % appname) successes += 1 diff --git a/osmopy/osmotestconfig.py b/osmopy/osmotestconfig.py index 9389647..5e19a40 100644 --- a/osmopy/osmotestconfig.py +++ b/osmopy/osmotestconfig.py @@ -55,7 +55,6 @@ print "Verifying %s, test %s" % (' '.join(cmd), run_test.__name__) proc = osmoutil.popen_devnull(cmd) - time.sleep(1) end = app_desc[2] port = app_desc[0] vty = obscvty.VTYInteract(end, "127.0.0.1", port) diff --git a/osmopy/osmotestvty.py b/osmopy/osmotestvty.py index 9f8dd0a..e513c05 100644 --- a/osmopy/osmotestvty.py +++ b/osmopy/osmotestvty.py @@ -41,7 +41,6 @@ except OSError: print >> sys.stderr, "Current directory: %s" % os.getcwd() print >> sys.stderr, "Consider setting -b" - time.sleep(1) appstring = osmoappdesc.vty_app[2] appport = osmoappdesc.vty_app[0] -- To view, visit https://gerrit.osmocom.org/1924 To unsubscribe, visit https://gerrit.osmocom.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: Icc337f52a93d5fe31fc4ff235ccaf4e0fe75fa39 Gerrit-PatchSet: 1 Gerrit-Project: python/osmo-python-tests Gerrit-Branch: master Gerrit-Owner: Neels Hofmeyr <nhofmeyr at sysmocom.de>