X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=test%2Fframework.py;h=78aebf61e83799c03c3b356e61dbf84ec6aec65b;hb=e4e34c23fe7050c26967997fdb8f555c51fd3961;hp=fc6f550184f40b4e0ad492ff5eca9d1d016b9c35;hpb=75e7d1301475d49311d14e202936c62df0c07d10;p=vpp.git diff --git a/test/framework.py b/test/framework.py index fc6f550184f..78aebf61e83 100644 --- a/test/framework.py +++ b/test/framework.py @@ -11,6 +11,7 @@ import time import resource import faulthandler import random +import copy from collections import deque from threading import Thread, Event from inspect import getdoc, isclass @@ -32,6 +33,12 @@ if os.name == 'posix' and sys.version_info[0] < 3: else: import subprocess +debug_framework = False +if os.getenv('TEST_DEBUG', "0") == "1": + debug_framework = True + import debug_internal + + """ Test framework module. @@ -319,7 +326,7 @@ class VppTestCase(unittest.TestCase): Remove shared memory files, start vpp and connect the vpp-api """ gc.collect() # run garbage collection first - random.seed(1) + random.seed() cls.logger = getLogger(cls.__name__) cls.tempdir = tempfile.mkdtemp( prefix='vpp-unittest-%s-' % cls.__name__) @@ -453,6 +460,9 @@ class VppTestCase(unittest.TestCase): """ Perform final cleanup after running all tests in this test-case """ cls.quit() cls.file_handler.close() + cls.reset_packet_infos() + if debug_framework: + debug_internal.on_tear_down_class(cls) def tearDown(self): """ Show various debug prints after each test """ @@ -474,7 +484,7 @@ class VppTestCase(unittest.TestCase): self.logger.info("Moving %s to %s\n" % (tmp_api_trace, vpp_api_trace_log)) os.rename(tmp_api_trace, vpp_api_trace_log) - self.logger.info(self.vapi.ppcli("api trace dump %s" % + self.logger.info(self.vapi.ppcli("api trace custom-dump %s" % vpp_api_trace_log)) else: self.registry.unregister_all(self.logger) @@ -1117,16 +1127,18 @@ class VppTestRunner(unittest.TextTestRunner): class Worker(Thread): - def __init__(self, args, logger): + def __init__(self, args, logger, env={}): self.logger = logger self.args = args self.result = None + self.env = copy.deepcopy(env) 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.update(self.env) env["CK_LOG_FILE_NAME"] = "-" self.process = subprocess.Popen( self.args, shell=False, env=env, preexec_fn=os.setpgrp, @@ -1141,6 +1153,6 @@ class Worker(Thread): 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(err) self.logger.info(single_line_delim) self.result = self.process.returncode