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/.
Max gerrit-no-reply at lists.osmocom.orgReview at https://gerrit.osmocom.org/5661 Make extended tests work with any python version Previously vty and ctrl tests were only compatible with python2. Make it work with either v2 or v3 and adjust ./configure check accordingly. Change-Id: Ib6f845420c0b23f81b076ef6a403d5969260811a Related: OS#2819 --- M configure.ac M tests/ctrl_test_runner.py M tests/vty_test_runner.py 3 files changed, 45 insertions(+), 49 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/61/5661/1 diff --git a/configure.ac b/configure.ac index d756970..f618c0d 100644 --- a/configure.ac +++ b/configure.ac @@ -127,10 +127,7 @@ [Include the VTY/CTRL tests in make check [default=no]]), [enable_ext_tests="$enableval"],[enable_ext_tests="no"]) if test "x$enable_ext_tests" = "xyes" ; then - AC_CHECK_PROG(PYTHON2_AVAIL,python2,yes) - if test "x$PYTHON2_AVAIL" != "xyes" ; then - AC_MSG_ERROR([Please install python2 to run the VTY/CTRL tests.]) - fi + AM_PATH_PYTHON AC_CHECK_PROG(OSMOTESTEXT_CHECK,osmotestvty.py,yes) if test "x$OSMOTESTEXT_CHECK" != "xyes" ; then AC_MSG_ERROR([Please install git://osmocom.org/python/osmo-python-tests to run the VTY/CTRL tests.]) diff --git a/tests/ctrl_test_runner.py b/tests/ctrl_test_runner.py index 4f5df39..6382fa5 100755 --- a/tests/ctrl_test_runner.py +++ b/tests/ctrl_test_runner.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python2 +#!/usr/bin/env python # (C) 2013 by Jacob Erlbeck <jerlbeck at sysmocom.de> # (C) 2014 by Holger Hans Peter Freyther @@ -19,7 +19,7 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see <http://www.gnu.org/licenses/>. - +from __future__ import print_function import os import time import unittest @@ -53,8 +53,8 @@ try: self.proc = osmoutil.popen_devnull(osmo_ctrl_cmd) except OSError: - print >> sys.stderr, "Current directory: %s" % os.getcwd() - print >> sys.stderr, "Consider setting -b" + print("Current directory: %s" % os.getcwd(), file=sys.stderr) + print("Consider setting -b", file=sys.stderr) time.sleep(2) appstring = self.ctrl_app()[2] @@ -72,7 +72,7 @@ def connect(self, host, port): if verbose: - print "Connecting to host %s:%i" % (host, port) + print("Connecting to host %s:%i" % (host, port)) retries = 30 while True: @@ -92,7 +92,7 @@ def send(self, data): if verbose: - print "Sending \"%s\"" %(data) + print("Sending \"%s\"" %(data)) data = Ctrl().add_header(data) return self.sock.send(data) == len(data) @@ -123,7 +123,7 @@ (head, data) = IPA().split_combined(data) answer = Ctrl().rem_header(head) if verbose: - print "Got message:", answer + print("Got message:", answer) (mtype, id, msg) = answer.split(None, 2) id = int(id) rsp = {'mtype': mtype, 'id': id} @@ -139,7 +139,7 @@ responses[id] = rsp if verbose: - print "Decoded replies: ", responses + print("Decoded replies: ", responses) return responses @@ -560,9 +560,9 @@ if args.p: confpath = args.p - print "confpath %s, workdir %s" % (confpath, workdir) + print("confpath %s, workdir %s" % (confpath, workdir)) os.chdir(workdir) - print "Running tests for specific control commands" + print("Running tests for specific control commands") suite = unittest.TestSuite() add_bsc_test(suite, workdir) add_nat_test(suite, workdir) diff --git a/tests/vty_test_runner.py b/tests/vty_test_runner.py index 387ea70..ac6f1de 100755 --- a/tests/vty_test_runner.py +++ b/tests/vty_test_runner.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python2 +#!/usr/bin/env python # (C) 2013 by Katerina Barone-Adesi <kat.obsc at gmail.com> # (C) 2013 by Holger Hans Peter Freyther @@ -14,7 +14,7 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see <http://www.gnu.org/licenses/>. - +from __future__ import print_function import os, sys import time import unittest @@ -54,8 +54,8 @@ try: self.proc = osmoutil.popen_devnull(osmo_vty_cmd) except OSError: - print >> sys.stderr, "Current directory: %s" % os.getcwd() - print >> sys.stderr, "Consider setting -b" + print("Current directory: %s" % os.getcwd(), file=sys.stderr) + print("Consider setting -b", file=sys.stderr) appstring = self.vty_app()[2] appport = self.vty_app()[0] @@ -444,33 +444,33 @@ ussdSocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) ussdSocket.connect(('127.0.0.1', 5001)) ussdSocket.settimeout(2.0) - print "Connected to %s:%d" % ussdSocket.getpeername() + print("Connected to %s:%d" % ussdSocket.getpeername()) - print "Expecting ID_GET request" + print("Expecting ID_GET request") data = ussdSocket.recv(4) self.assertEqual(data, "\x00\x01\xfe\x04") - print "Going to send ID_RESP response" + print("Going to send ID_RESP response") res = ussdSocket.send(IPA().id_resp(IPA().tag_name('key'))) self.assertEqual(res, 10) # initiating PING/PONG cycle to know, that the ID_RESP message has been processed - print "Going to send PING request" + print("Going to send PING request") res = ussdSocket.send(IPA().ping()) self.assertEqual(res, 4) - print "Expecting PONG response" + print("Expecting PONG response") data = ussdSocket.recv(4) self.assertEqual(data, "\x00\x01\xfe\x01") res = self.vty.verify("show ussd-connection", ['The USSD side channel provider is connected and authorized.']) self.assertTrue(res) - print "Going to shut down connection" + print("Going to shut down connection") ussdSocket.shutdown(socket.SHUT_WR) - print "Expecting EOF" + print("Expecting EOF") data = ussdSocket.recv(4) self.assertEqual(data, "") @@ -548,11 +548,11 @@ msc.bind((ip, port)) msc.listen(5) if (verbose): - print "MSC is ready at " + ip + print("MSC is ready at " + ip) conn = None while True: vty_response = x.vty.command("show msc connection") - print "'show msc connection' says: %r" % vty_response + print("'show msc connection' says: %r" % vty_response) if vty_response == "MSC is connected: 1": # success break; @@ -564,10 +564,10 @@ while timeout_retries > 0: try: conn, addr = msc.accept() - print "MSC got connection from ", addr + print("MSC got connection from ", addr) break except socket.timeout: - print "socket timed out." + print("socket timed out.") timeout_retries -= 1 continue @@ -582,42 +582,41 @@ raise Exception("expected to receive 4 bytes, but got %d (%r)" % (len(s)/2, s)) if "0001fe00" == s: if (verbose): - print "\tBSC <- NAT: PING?" + print("\tBSC <- NAT: PING?") x.send(IPA().pong()) elif "0001fe06" == s: if (verbose): - print "\tBSC <- NAT: IPA ID ACK" + print("\tBSC <- NAT: IPA ID ACK") x.send(IPA().id_ack()) elif "0001fe00" == s: if (verbose): - print "\tBSC <- NAT: PONG!" + print("\tBSC <- NAT: PONG!") else: if (verbose): - print "\tBSC <- NAT: ", s + print("\tBSC <- NAT: ", s) def ipa_handle_resp(x, tk, verbose = False, proc=None): s = data2str(x.recv(38)) if "0023fe040108010701020103010401050101010011" in s: retries = 3 while True: - print "\tsending IPA identity(%s) at %s" % (tk, time.strftime("%T")) + print("\tsending IPA identity(%s) at %s" % (tk, time.strftime("%T"))) try: x.send(IPA().id_resp(IPA().identity(name = tk.encode('utf-8')))) - print "\tdone sending IPA identity(%s) at %s" % (tk, - time.strftime("%T")) + print("\tdone sending IPA identity(%s) at %s" % (tk, time.strftime("%T"))) break except: - print "\tfailed sending IPA identity at", time.strftime("%T") + print("\tfailed sending IPA identity at", time.strftime("%T")) if proc: - print "\tproc.poll() = %r" % proc.poll() + print("\tproc.poll() = %r" % proc.poll()) if retries < 1: - print "\tgiving up" + print("\tgiving up") raise - print "\tretrying (%d attempts left)" % retries + print("\tretrying (%d attempts left)" % retries) retries -= 1 else: if (verbose): - print "\tBSC <- NAT: ", s + print("\tBSC <- NAT: ", s) def nat_bsc_num_con(x): return len(x.vty.command("show bsc connections").split('\n')) @@ -627,18 +626,18 @@ bsc.bind(('127.0.0.1', 0)) bsc.connect(('127.0.0.1', 5000)) if (verbose): - print "BSC%d " %nr - print "\tconnected to %s:%d" % bsc.getpeername() + print("BSC%d " %nr) + print("\tconnected to %s:%d" % bsc.getpeername()) if proc: - print "\tproc.poll() = %r" % proc.poll() - print "\tproc.pid = %r" % proc.pid + print("\tproc.poll() = %r" % proc.poll()) + print("\tproc.pid = %r" % proc.pid) ipa_handle_small(bsc, verbose) ipa_handle_resp(bsc, tk, verbose, proc=proc) if proc: - print "\tproc.poll() = %r" % proc.poll() + print("\tproc.poll() = %r" % proc.poll()) bsc.recv(27) # MGCP msg if proc: - print "\tproc.poll() = %r" % proc.poll() + print("\tproc.poll() = %r" % proc.poll()) ipa_handle_small(bsc, verbose) return bsc @@ -675,9 +674,9 @@ if args.p: confpath = args.p - print "confpath %s, workdir %s" % (confpath, workdir) + print("confpath %s, workdir %s" % (confpath, workdir)) os.chdir(workdir) - print "Running tests for specific VTY commands" + print("Running tests for specific VTY commands") suite = unittest.TestSuite() add_bsc_test(suite, workdir) add_nat_test(suite, workdir) -- To view, visit https://gerrit.osmocom.org/5661 To unsubscribe, visit https://gerrit.osmocom.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: Ib6f845420c0b23f81b076ef6a403d5969260811a Gerrit-PatchSet: 1 Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-Owner: Max <msuraev at sysmocom.de>