diff options
author | Pratikshya Prasai <pratikshyaprasai2112@gmail.com> | 2022-08-18 11:09:38 -0400 |
---|---|---|
committer | Dave Wallace <dwallacelf@gmail.com> | 2022-11-09 21:22:33 -0500 |
commit | 657bdf781ae876c945ca034e52cf25cccb09f71e (patch) | |
tree | 9ae70d0cb644ea9f609509ba4e83c84f687a264e /test/asf/test_vapi.py | |
parent | 4dbd641136db81ba969a5a1c0374ec9c24525526 (diff) |
tests: initial asf framework refactoring for 'make test'
Type: refactor
Change-Id: I41455b759a5d302ad5c4247c13634c471e7d49a8
Signed-off-by: Pratikshya Prasai <pratikshyaprasai2112@gmail.com>
Signed-off-by: Saima Yunus <yunus.saima.234@gmail.com>
Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
Diffstat (limited to 'test/asf/test_vapi.py')
-rw-r--r-- | test/asf/test_vapi.py | 71 |
1 files changed, 71 insertions, 0 deletions
diff --git a/test/asf/test_vapi.py b/test/asf/test_vapi.py new file mode 100644 index 00000000000..2eb47b59017 --- /dev/null +++ b/test/asf/test_vapi.py @@ -0,0 +1,71 @@ +#!/usr/bin/env python3 +""" VAPI test """ + +import unittest +import os +import signal +from config import config +from asfframework import VppTestCase, 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""" + executable = f"{config.vpp_build_dir}/vpp/bin/vapi_c_test" + worker = Worker( + [executable, "vapi client", self.get_api_segment_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") + + def test_vapi_cpp(self): + """run C++ VAPI tests""" + executable = f"{config.vpp_build_dir}/vpp/bin/vapi_cpp_test" + worker = Worker( + [executable, "vapi client", self.get_api_segment_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) |