make test: improve debugability 43/7043/2
authorKlement Sekera <ksekera@cisco.com>
Wed, 7 Jun 2017 06:19:47 +0000 (08:19 +0200)
committerNeale Ranns <nranns@cisco.com>
Wed, 7 Jun 2017 17:03:37 +0000 (17:03 +0000)
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>
test/Makefile
test/framework.py

index 8df9640..14c8cd2 100644 (file)
@@ -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
 
index 91915fc..3c9dd29 100644 (file)
@@ -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" % (