diff options
Diffstat (limited to 'test')
-rw-r--r-- | test/Makefile | 1 | ||||
-rw-r--r-- | test/framework.py | 12 |
2 files changed, 13 insertions, 0 deletions
diff --git a/test/Makefile b/test/Makefile index f8da35098ab..b429ac9e6e2 100644 --- a/test/Makefile +++ b/test/Makefile @@ -210,6 +210,7 @@ help: @echo "" @echo "Arguments controlling test runs:" @echo " V=[0|1|2] - set test verbosity level" + @echo " CACHE_OUTPUT=[0|1] - cache VPP stdout/stderr and log as one block after test finishes (default: 1)" @echo " FAILFAST=[0|1] - fail fast if 1, complete all tests if 0" @echo " TIMEOUT=<timeout> - fail test suite if any single test takes longer than <timeout> to finish" @echo " RETRIES=<n> - retry failed tests <n> times" diff --git a/test/framework.py b/test/framework.py index 0c85bfbfcf5..00f55ad893e 100644 --- a/test/framework.py +++ b/test/framework.py @@ -76,9 +76,15 @@ def pump_output(testclass): if testclass.vpp.stdout.fileno() in readable: read = os.read(testclass.vpp.stdout.fileno(), 1024) testclass.vpp_stdout_deque.append(read) + if not testclass.cache_vpp_output: + for line in read.splitlines(): + testclass.logger.debug("VPP STDOUT: %s" % line) if testclass.vpp.stderr.fileno() in readable: read = os.read(testclass.vpp.stderr.fileno(), 1024) testclass.vpp_stderr_deque.append(read) + if not testclass.cache_vpp_output: + for line in read.splitlines(): + testclass.logger.debug("VPP STDERR: %s" % line) # ignoring the dummy pipe here intentionally - the flag will take care # of properly terminating the loop @@ -190,6 +196,12 @@ class VppTestCase(unittest.TestCase): d = os.getenv("DEBUG") except: d = None + try: + c = os.getenv("CACHE_OUTPUT", "1") + cls.cache_vpp_output = \ + True if c.lower() in ("y", "yes", "1") else False + except: + cls.cache_vpp_output = True cls.set_debug_flags(d) cls.vpp_bin = os.getenv('VPP_TEST_BIN', "vpp") cls.plugin_path = os.getenv('VPP_TEST_PLUGIN_PATH') |