diff options
author | Dave Wallace <dwallacelf@gmail.com> | 2020-11-16 18:03:53 -0500 |
---|---|---|
committer | Paul Vinciguerra <pvinci@vinciconsulting.com> | 2020-11-17 00:47:31 +0000 |
commit | e1887c1765ef57d50986701f7a4563f1ad7df340 (patch) | |
tree | 96bb14265439c74fb6361519b4dea5d73d06e433 /src/vpp-api/test/test_vapi.py | |
parent | 634c2939491decc3ebab727ecea7f7056bc208e1 (diff) |
tests: move vpp-api tests to src/vpe-api/test
- Refactor make test code to be co-located with
the vpp feature source code
Type: test
Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
Change-Id: Ic42bbd4e13606a5fdc91143ecc6452102ec337fe
Diffstat (limited to 'src/vpp-api/test/test_vapi.py')
-rw-r--r-- | src/vpp-api/test/test_vapi.py | 81 |
1 files changed, 81 insertions, 0 deletions
diff --git a/src/vpp-api/test/test_vapi.py b/src/vpp-api/test/test_vapi.py new file mode 100644 index 00000000000..1a4293d7888 --- /dev/null +++ b/src/vpp-api/test/test_vapi.py @@ -0,0 +1,81 @@ +#!/usr/bin/env python3 +""" VAPI test """ + +import unittest +import os +import signal +from framework import VppTestCase, running_on_centos, VppTestRunner, Worker + + +class VAPITestCase(VppTestCase): + """ VAPI test """ + + @classmethod + def setUpClass(cls): + super(VAPITestCase, cls).setUpClass() + + @classmethod + def tearDownClass(cls): + super(VAPITestCase, cls).tearDownClass() + + def test_vapi_c(self): + """ run C VAPI tests """ + var = "TEST_BR" + built_root = os.getenv(var, None) + self.assertIsNotNone(built_root, + "Environment variable `%s' not set" % var) + executable = "%s/vapi_test/vapi_c_test" % built_root + worker = Worker( + [executable, "vapi client", self.shm_prefix], self.logger) + worker.start() + timeout = 60 + worker.join(timeout) + self.logger.info("Worker result is `%s'" % worker.result) + error = False + if worker.result is None: + try: + error = True + self.logger.error( + "Timeout! Worker did not finish in %ss" % timeout) + os.killpg(os.getpgid(worker.process.pid), signal.SIGTERM) + worker.join() + except: + self.logger.debug("Couldn't kill worker-spawned process") + raise + if error: + raise Exception( + "Timeout! Worker did not finish in %ss" % timeout) + self.assert_equal(worker.result, 0, "Binary test return code") + + @unittest.skipIf(running_on_centos, "Centos's gcc can't compile our C++") + def test_vapi_cpp(self): + """ run C++ VAPI tests """ + var = "TEST_BR" + built_root = os.getenv(var, None) + self.assertIsNotNone(built_root, + "Environment variable `%s' not set" % var) + executable = "%s/vapi_test/vapi_cpp_test" % built_root + worker = Worker( + [executable, "vapi client", self.shm_prefix], self.logger) + worker.start() + timeout = 120 + worker.join(timeout) + self.logger.info("Worker result is `%s'" % worker.result) + error = False + if worker.result is None: + try: + error = True + self.logger.error( + "Timeout! Worker did not finish in %ss" % timeout) + os.killpg(os.getpgid(worker.process.pid), signal.SIGTERM) + worker.join() + except: + raise Exception("Couldn't kill worker-spawned process") + if error: + raise Exception( + "Timeout! Worker did not finish in %ss" % timeout) + self.assert_equal(worker.result, 0, "Binary test return code") + + +if __name__ == '__main__': + unittest.main(testRunner=VppTestRunner) |