aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKlement Sekera <ksekera@cisco.com>2017-06-07 08:19:47 +0200
committerNeale Ranns <nranns@cisco.com>2017-06-07 17:03:37 +0000
commit3658adcadcc2e568abc985255a6cddcc4871aa87 (patch)
tree5f1400d6db050d46c7f2972bb0da8d22de6967ec
parent48113e0c864fd18d9fa65eda950aa363b813bb15 (diff)
make test: improve debugability
Introduce faulthandler to print stack trace to stderr on python crash. Don't disable automatic garbage collection to decrease the chances of running out of memory. Change-Id: I6927a5f6ea9569735d084d4ed3d258950a400d74 Signed-off-by: Klement Sekera <ksekera@cisco.com>
-rw-r--r--test/Makefile2
-rw-r--r--test/framework.py3
2 files changed, 3 insertions, 2 deletions
diff --git a/test/Makefile b/test/Makefile
index 8df96404..14c8cd26 100644
--- a/test/Makefile
+++ b/test/Makefile
@@ -35,7 +35,7 @@ UNITTEST_EXTRA_OPTS=$(UNITTEST_FAILFAST_OPTS) -d $(EXTERN_TESTS)
endif
PYTHON_VENV_PATH=$(VPP_PYTHON_PREFIX)/virtualenv
-PYTHON_DEPENDS=six scapy==2.3.3 pexpect subprocess32 cffi git+https://github.com/klement/py-lispnetworking@setup
+PYTHON_DEPENDS=faulthandler six scapy==2.3.3 pexpect subprocess32 cffi git+https://github.com/klement/py-lispnetworking@setup
SCAPY_SOURCE=$(shell find $(PYTHON_VENV_PATH) -name site-packages)
BUILD_COV_DIR=$(BR)/test-cov
diff --git a/test/framework.py b/test/framework.py
index 91915fca..3c9dd29a 100644
--- a/test/framework.py
+++ b/test/framework.py
@@ -9,6 +9,7 @@ import unittest
import tempfile
import time
import resource
+import faulthandler
from collections import deque
from threading import Thread, Event
from inspect import getdoc
@@ -940,7 +941,7 @@ class VppTestRunner(unittest.TextTestRunner):
:param test:
"""
- gc.disable() # disable garbage collection, we'll do that manually
+ faulthandler.enable() # emit stack trace to stderr if killed by signal
print("Running tests using custom test runner") # debug message
filter_file, filter_class, filter_func = self.parse_test_option()
print("Active filters: file=%s, class=%s, function=%s" % (