X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=test%2Ftest_vapi.py;h=106c84a9bad09c3cb75d3eec7b663729ac52f276;hb=3a1a86f87fd7d9c84ad4b12124c50fc3927ec6cf;hp=d8e1ebe000ff7a5c840397630bcd9c666311251a;hpb=dc15be2ca7c51772b00e4c5548934a35aa7e4add;p=vpp.git diff --git a/test/test_vapi.py b/test/test_vapi.py index d8e1ebe000f..106c84a9bad 100644 --- a/test/test_vapi.py +++ b/test/test_vapi.py @@ -1,59 +1,32 @@ -#!/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, 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" - built_root = os.getenv(var, None) - self.assertIsNotNone(built_root, + var = "VPP_BUILD_DIR" + build_dir = os.getenv(var, None) + self.assertIsNotNone(build_dir, "Environment variable `%s' not set" % var) - executable = "%s/vapi_test/vapi_c_test" % built_root - worker = Worker( - [executable, "vapi client", self.shm_prefix], self.logger) + executable = f"{build_dir}/bin/vapi_c_test" + worker = Worker([executable, "vapi client", + self.get_api_segment_prefix()], self.logger) worker.start() timeout = 60 worker.join(timeout) @@ -67,7 +40,8 @@ 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) @@ -75,13 +49,13 @@ class VAPITestCase(VppTestCase): def test_vapi_cpp(self): """ run C++ VAPI tests """ - var = "BR" - built_root = os.getenv(var, None) - self.assertIsNotNone(built_root, + var = "VPP_BUILD_DIR" + build_dir = os.getenv(var, None) + self.assertIsNotNone(build_dir, "Environment variable `%s' not set" % var) - executable = "%s/vapi_test/vapi_cpp_test" % built_root - worker = Worker( - [executable, "vapi client", self.shm_prefix], self.logger) + executable = f"{build_dir}/bin/vapi_cpp_test" + worker = Worker([executable, "vapi client", + self.get_api_segment_prefix()], self.logger) worker.start() timeout = 120 worker.join(timeout)