tests: replace pycodestyle with black
[vpp.git] / extras / deprecated / vom / test / test_vom.py
1 #!/usr/bin/env python3
2 """ VAPI test """
3
4 import unittest
5 import os
6 import signal
7 from framework import VppTestCase, running_extended_tests, VppTestRunner, Worker
8
9
10 @unittest.skipUnless(running_extended_tests, "part of extended tests")
11 class VOMTestCase(VppTestCase):
12     """VPP Object Model Test"""
13
14     @classmethod
15     def setUpClass(cls):
16         super(VOMTestCase, cls).setUpClass()
17
18     @classmethod
19     def tearDownClass(cls):
20         super(VOMTestCase, cls).tearDownClass()
21
22     def test_vom_cpp(self):
23         """run C++ VOM tests"""
24         var = "TEST_BR"
25         built_root = os.getenv(var, None)
26         self.assertIsNotNone(built_root, "Environment variable `%s' not set" % var)
27         executable = "%s/vom_test/vom_test" % built_root
28         worker = Worker(
29             [executable, "vpp object model", self.get_api_segment_prefix()], self.logger
30         )
31         worker.start()
32         timeout = 120
33         worker.join(timeout)
34         self.logger.info("Worker result is `%s'" % worker.result)
35         error = False
36         if worker.result is None:
37             try:
38                 error = True
39                 self.logger.error("Timeout! Worker did not finish in %ss" % timeout)
40                 os.killpg(os.getpgid(worker.process.pid), signal.SIGTERM)
41                 worker.join()
42             except:
43                 raise Exception("Couldn't kill worker-spawned process")
44         if error:
45             raise Exception("Timeout! Worker did not finish in %ss" % timeout)
46         self.assert_equal(worker.result, 0, "Binary test return code")
47
48
49 if __name__ == "__main__":
50     unittest.main(testRunner=VppTestRunner)