X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=test%2Ftest_vapi.py;h=1a4293d7888a295f0f1d1acb501667b8a713ed03;hb=b4e5e50fe;hp=d8e1ebe000ff7a5c840397630bcd9c666311251a;hpb=dc15be2ca7c51772b00e4c5548934a35aa7e4add;p=vpp.git diff --git a/test/test_vapi.py b/test/test_vapi.py index d8e1ebe000f..1a4293d7888 100644 --- a/test/test_vapi.py +++ b/test/test_vapi.py @@ -1,53 +1,26 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 """ 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_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") 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 """ - var = "BR" + var = "TEST_BR" built_root = os.getenv(var, None) self.assertIsNotNone(built_root, "Environment variable `%s' not set" % var) @@ -67,15 +40,17 @@ 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_BR" built_root = os.getenv(var, None) self.assertIsNotNone(built_root, "Environment variable `%s' not set" % var)