X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=test%2Ftest_vapi.py;h=ebd189cd7c890a1d8b3610975e70f71db24ce8a8;hb=7c03ed4;hp=d8e1ebe000ff7a5c840397630bcd9c666311251a;hpb=dc15be2ca7c51772b00e4c5548934a35aa7e4add;p=vpp.git diff --git a/test/test_vapi.py b/test/test_vapi.py index d8e1ebe000f..ebd189cd7c8 100644 --- a/test/test_vapi.py +++ b/test/test_vapi.py @@ -1,57 +1,24 @@ #!/usr/bin/env python """ VAPI test """ -from __future__ import division 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, VppTestRunner +from framework import VppTestCase, running_extended_tests, \ + running_on_centos, VppTestRunner, Worker -class Worker(Thread): - def __init__(self, args, logger): - self.logger = logger - self.args = args - self.result = None - super(Worker, self).__init__() - - def run(self): - executable = self.args[0] - self.logger.debug("Running executable w/args `%s'" % self.args) - env = os.environ.copy() - env["CK_LOG_FILE_NAME"] = "-" - self.process = subprocess.Popen( - self.args, shell=False, env=env, preexec_fn=os.setpgrp, - stdout=subprocess.PIPE, stderr=subprocess.PIPE) - out, err = self.process.communicate() - self.logger.debug("Finished running `%s'" % executable) - self.logger.info("Return code is `%s'" % self.process.returncode) - self.logger.info(single_line_delim) - self.logger.info("Executable `%s' wrote to stdout:" % executable) - self.logger.info(single_line_delim) - self.logger.info(out) - self.logger.info(single_line_delim) - self.logger.info("Executable `%s' wrote to stderr:" % executable) - self.logger.info(single_line_delim) - self.logger.error(err) - self.logger.info(single_line_delim) - self.result = self.process.returncode - - -@unittest.skipUnless(running_extended_tests(), "part of extended tests") +@unittest.skipUnless(running_extended_tests, "part of extended tests") class VAPITestCase(VppTestCase): """ VAPI test """ def test_vapi_c(self): """ run C VAPI tests """ - var = "BR" + var = "TEST_DIR" 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 + executable = "%s/build/vapi_test/vapi_c_test" % built_root worker = Worker( [executable, "vapi client", self.shm_prefix], self.logger) worker.start() @@ -67,19 +34,21 @@ class VAPITestCase(VppTestCase): os.killpg(os.getpgid(worker.process.pid), signal.SIGTERM) worker.join() except: - raise Exception("Couldn't kill worker-spawned process") + 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 = "BR" + var = "TEST_DIR" 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 + executable = "%s/build/vapi_test/vapi_cpp_test" % built_root worker = Worker( [executable, "vapi client", self.shm_prefix], self.logger) worker.start()