diff options
author | Neale Ranns <neale.ranns@cisco.com> | 2017-10-16 04:20:13 -0700 |
---|---|---|
committer | Damjan Marion <dmarion.lists@gmail.com> | 2017-11-01 09:28:06 +0000 |
commit | 812ed39f9da336310e815c361ab5a9f118657d94 (patch) | |
tree | 9d8cddc917acbb65b3dc401d880d5eb2a7f392c6 /test/test_vom.py | |
parent | 14edd97c20735ffd1c24000a7df78e154ac61478 (diff) |
VPP Object Model (VOM)
The VOM is a C++ library for use by clients/agents of VPP for programming
state. It uses the binary APIs to do so. Various other common client side
functions are also provided. Please see om.hpp for a more detailed description.
Change-Id: Ib756bfe99817093815a9e26ccf464aa5583fc523
Signed-off-by: Neale Ranns <neale.ranns@cisco.com>
Co-authored-by: Mohsin Kazmi <sykazmi@cisco.com>
Diffstat (limited to 'test/test_vom.py')
-rw-r--r-- | test/test_vom.py | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/test/test_vom.py b/test/test_vom.py new file mode 100644 index 00000000000..bfd7007fbec --- /dev/null +++ b/test/test_vom.py @@ -0,0 +1,48 @@ +#!/usr/bin/env python +""" VAPI test """ + +import unittest +import os +import signal +import subprocess +from threading import Thread +from log import single_line_delim +from framework import VppTestCase, running_extended_tests, \ + running_on_centos, VppTestRunner, Worker + + +@unittest.skipUnless(running_extended_tests(), "part of extended tests") +class VOMTestCase(VppTestCase): + """ VPP Object Model Test """ + + def test_vom_cpp(self): + """ run C++ VOM tests """ + var = "BR" + built_root = os.getenv(var, None) + self.assertIsNotNone(built_root, + "Environment variable `%s' not set" % var) + executable = "%s/vom_test/vom_test" % built_root + worker = Worker( + [executable, "vpp object model", 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) |