7 from config import config
8 from asfframework import VppAsfTestCase, VppTestRunner, Worker
11 class VAPITestCase(VppAsfTestCase):
16 super(VAPITestCase, cls).setUpClass()
19 def tearDownClass(cls):
20 super(VAPITestCase, cls).tearDownClass()
22 def run_vapi_c(self, path, transport):
23 executable = f"{config.vpp_build_dir}/vpp/bin/vapi_c_test"
24 worker = Worker([executable, "vapi client", path, transport], self.logger)
28 self.logger.info("Worker result is `%s'" % worker.result)
30 if worker.result is None:
33 self.logger.error("Timeout! Worker did not finish in %ss" % timeout)
34 os.killpg(os.getpgid(worker.process.pid), signal.SIGTERM)
37 self.logger.debug("Couldn't kill worker-spawned process")
40 raise Exception("Timeout! Worker did not finish in %ss" % timeout)
41 self.assert_equal(worker.result, 0, "Binary test return code")
43 def test_vapi_c_shm(self):
44 """run C VAPI tests (over shared memory)"""
45 self.run_vapi_c(self.get_api_segment_prefix(), "shm")
47 def test_vapi_c_uds(self):
48 """run C VAPI tests (over unix domain socket)"""
49 self.run_vapi_c(self.get_api_sock_path(), "uds")
51 def run_vapi_cpp(self, path, transport):
52 """run C++ VAPI tests"""
53 executable = f"{config.vpp_build_dir}/vpp/bin/vapi_cpp_test"
54 worker = Worker([executable, "vapi client", path, transport], self.logger)
58 self.logger.info("Worker result is `%s'" % worker.result)
60 if worker.result is None:
63 self.logger.error("Timeout! Worker did not finish in %ss" % timeout)
64 os.killpg(os.getpgid(worker.process.pid), signal.SIGTERM)
67 raise Exception("Couldn't kill worker-spawned process")
69 raise Exception("Timeout! Worker did not finish in %ss" % timeout)
70 self.assert_equal(worker.result, 0, "Binary test return code")
72 def test_vapi_cpp_shm(self):
73 """run C++ VAPI tests (over shared memory)"""
74 self.run_vapi_cpp(self.get_api_segment_prefix(), "shm")
76 def test_vapi_cpp_uds(self):
77 """run C++ VAPI tests (over unix domain socket)"""
78 self.run_vapi_cpp(self.get_api_sock_path(), "uds")
81 if __name__ == "__main__":
82 unittest.main(testRunner=VppTestRunner)