neels has submitted this change. ( https://gerrit.osmocom.org/c/osmo-hnbgw/+/32626 )
Change subject: drop ctrl_test_runner.py ...................................................................... drop ctrl_test_runner.py Unused and contains no actual tests. Change-Id: If3d6614334b692e49efcc45d1e4fb29a00c68602 --- M tests/Makefile.am D tests/ctrl_test_runner.py 2 files changed, 11 insertions(+), 209 deletions(-) Approvals: Jenkins Builder: Verified neels: Looks good to me, approved diff --git a/tests/Makefile.am b/tests/Makefile.am index a5d33ce..0225d7e 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -24,7 +24,6 @@ testsuite.at \ $(srcdir)/package.m4 \ $(TESTSUITE) \ - ctrl_test_runner.py \ osmo-hnbgw.vty \ $(NULL) @@ -39,7 +38,6 @@ $(MAKE) vty-test osmotestvty.py -p $(abs_top_srcdir) -w $(abs_top_builddir) -v osmotestconfig.py -p $(abs_top_srcdir) -w $(abs_top_builddir) -v -# $(srcdir)/ctrl_test_runner.py -w $(abs_top_builddir) -v else python-tests: echo "Not running python-based tests (determined at configure-time)" diff --git a/tests/ctrl_test_runner.py b/tests/ctrl_test_runner.py deleted file mode 100755 index 701bd89..0000000 --- a/tests/ctrl_test_runner.py +++ /dev/null @@ -1,207 +0,0 @@ -#!/usr/bin/env python3 - -# (C) 2013 by Jacob Erlbeck <jerlb...@sysmocom.de> -# (C) 2014 by Holger Hans Peter Freyther -# based on vty_test_runner.py: -# (C) 2013 by Katerina Barone-Adesi <kat.o...@gmail.com> -# (C) 2013 by Holger Hans Peter Freyther -# based on bsc_control.py. - -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. - -# You should have received a copy of the GNU General Public License -# along with this program. If not, see <http://www.gnu.org/licenses/>. - -import os -import time -import unittest -import socket -import sys -import struct - -import osmopy.obscvty as obscvty -import osmopy.osmoutil as osmoutil -from osmopy.osmo_ipa import Ctrl, IPA - -# to be able to find $top_srcdir/doc/... -confpath = os.path.join(sys.path[0], '..') -verbose = False - -class TestCtrlBase(unittest.TestCase): - - def ctrl_command(self): - raise Exception("Needs to be implemented by a subclass") - - def ctrl_app(self): - raise Exception("Needs to be implemented by a subclass") - - def setUp(self): - osmo_ctrl_cmd = self.ctrl_command()[:] - config_index = osmo_ctrl_cmd.index('-c') - if config_index: - cfi = config_index + 1 - osmo_ctrl_cmd[cfi] = os.path.join(confpath, osmo_ctrl_cmd[cfi]) - - try: - self.proc = osmoutil.popen_devnull(osmo_ctrl_cmd) - except OSError: - print("Current directory: %s" % os.getcwd(), file=sys.stderr) - print("Consider setting -b", file=sys.stderr) - - appstring = self.ctrl_app()[2] - appport = self.ctrl_app()[0] - self.connect("127.0.0.1", appport) - self.next_id = 1000 - - def tearDown(self): - self.disconnect() - osmoutil.end_proc(self.proc) - - def disconnect(self): - if not (self.sock is None): - self.sock.close() - - def connect(self, host, port): - if verbose: - print("Connecting to host %s:%i" % (host, port)) - - retries = 30 - while True: - try: - sck = socket.socket(socket.AF_INET, socket.SOCK_STREAM) - sck.setblocking(1) - sck.connect((host, port)) - except IOError: - retries -= 1 - if retries <= 0: - raise - time.sleep(.1) - continue - break - self.sock = sck - return sck - - def send(self, data): - if verbose: - print("Sending \"%s\"" %(data)) - data = Ctrl().add_header(data) - return self.sock.send(data) == len(data) - - def send_set(self, var, value, id): - setmsg = "SET %s %s %s" %(id, var, value) - return self.send(setmsg) - - def send_get(self, var, id): - getmsg = "GET %s %s" %(id, var) - return self.send(getmsg) - - def do_set(self, var, value): - id = self.next_id - self.next_id += 1 - self.send_set(var, value, id) - return self.recv_msgs()[id] - - def do_get(self, var): - id = self.next_id - self.next_id += 1 - self.send_get(var, id) - return self.recv_msgs()[id] - - def recv_msgs(self): - responses = {} - data = self.sock.recv(4096) - while (len(data)>0): - (head, data) = IPA().split_combined(data) - answer = Ctrl().rem_header(head).decode() - if verbose: - print("Got message:", answer) - (mtype, id, msg) = answer.split(None, 2) - id = int(id) - rsp = {'mtype': mtype, 'id': id} - if mtype == "ERROR": - rsp['error'] = msg - else: - split = msg.split(None, 1) - rsp['var'] = split[0] - if len(split) > 1: - rsp['value'] = split[1] - else: - rsp['value'] = None - responses[id] = rsp - - if verbose: - print("Decoded replies: ", responses) - - return responses - - -class TestCtrlHNB(TestCtrlBase): - - def tearDown(self): - TestCtrlBase.tearDown(self) - os.unlink("tmp_dummy_sock") - - def ctrl_command(self): - return ["./src/osmo-hnbgw/osmo-hnbgw", "-r", "tmp_dummy_sock", "-c", - "doc/examples/osmo-hnbgw/osmo-hnbgw.cfg"] - - def ctrl_app(self): - return (4249, "./src/osmo-hnbgw/osmo-hnbgw", "OsmoHNBGW", "hnb") - - def testCtrlErrs(self): - r = self.do_get('invalid') - self.assertEqual(r['mtype'], 'ERROR') - self.assertEqual(r['error'], 'Command not found') - - r = self.do_get('hnbgw.999') - self.assertEqual(r['mtype'], 'ERROR') - self.assertEqual(r['error'], 'Error while resolving object') - -def add_hnbgw_test(suite, workdir, klass): - if not os.path.isfile(os.path.join(workdir, "src/osmo-hnbgw/osmo-hnbgw")): - print("Skipping the HNBGW test") - return - test = unittest.TestLoader().loadTestsFromTestCase(klass) - suite.addTest(test) - -if __name__ == '__main__': - import argparse - import sys - - workdir = '.' - - parser = argparse.ArgumentParser() - parser.add_argument("-v", "--verbose", dest="verbose", - action="store_true", help="verbose mode") - parser.add_argument("-p", "--pythonconfpath", dest="p", - help="searchpath for config") - parser.add_argument("-w", "--workdir", dest="w", - help="Working directory") - args = parser.parse_args() - - verbose_level = 1 - if args.verbose: - verbose_level = 2 - verbose = True - - if args.w: - workdir = args.w - - if args.p: - confpath = args.p - - print("confpath %s, workdir %s" % (confpath, workdir)) - os.chdir(workdir) - print("Running tests for specific control commands") - suite = unittest.TestSuite() - add_hnbgw_test(suite, workdir, TestCtrlHNB) - res = unittest.TextTestRunner(verbosity=verbose_level).run(suite) - sys.exit(len(res.errors) + len(res.failures)) -- To view, visit https://gerrit.osmocom.org/c/osmo-hnbgw/+/32626 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-hnbgw Gerrit-Branch: master Gerrit-Change-Id: If3d6614334b692e49efcc45d1e4fb29a00c68602 Gerrit-Change-Number: 32626 Gerrit-PatchSet: 4 Gerrit-Owner: neels <nhofm...@sysmocom.de> Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge <lafo...@osmocom.org> Gerrit-Reviewer: neels <nhofm...@sysmocom.de> Gerrit-Reviewer: pespin <pes...@sysmocom.de> Gerrit-MessageType: merged