summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Makefile1
-rw-r--r--test/Makefile1
-rw-r--r--test/framework.py12
3 files changed, 14 insertions, 0 deletions
diff --git a/Makefile b/Makefile
index 4bdaab34d12..09df4a08dbc 100644
--- a/Makefile
+++ b/Makefile
@@ -355,6 +355,7 @@ define test
EXTENDED_TESTS=$(EXTENDED_TESTS) \
PYTHON=$(PYTHON) \
OS_ID=$(OS_ID) \
+ CACHE_OUTPUT=$(CACHE_OUTPUT) \
$(3)
endef
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')