X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=test%2FMakefile;h=72b4dac745448ad862a316f4057c0157c936c7a8;hb=f413bef1358e014c9a6cb75bd2ec3e1f351e64ff;hp=d0d7d098451fd44df92ab0c2f1dbd7e1b1111801;hpb=cd6cb986ed35db7e8bd2d702b595f2de065dc80f;p=vpp.git diff --git a/test/Makefile b/test/Makefile index d0d7d098451..72b4dac7454 100644 --- a/test/Makefile +++ b/test/Makefile @@ -1,5 +1,7 @@ .PHONY: verify-python-path +VPP_TEST_FAILED_DIR=/tmp/vpp-failed-unittests/ + verify-python-path: ifndef VPP_PYTHON_PREFIX $(error VPP_PYTHON_PREFIX is not set) @@ -13,6 +15,14 @@ else VPP_PIDS=$(shell pgrep -d, -x vpp_main) endif +ifeq ($(DEBUG),gdb) +FORCE_FOREGROUND=1 +else ifeq ($(DEBUG),gdbserver) +FORCE_FOREGROUND=1 +else +FORCE_FOREGROUND=0 +endif + verify-no-running-vpp: @if [ "$(VPP_PIDS)" != "" ]; then \ echo; \ @@ -35,7 +45,7 @@ UNITTEST_EXTRA_OPTS=$(UNITTEST_FAILFAST_OPTS) -d $(EXTERN_TESTS) endif PYTHON_VENV_PATH=$(VPP_PYTHON_PREFIX)/virtualenv -PYTHON_DEPENDS=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 @@ -76,7 +86,8 @@ $(PAPI_INSTALL_DONE): $(PIP_PATCH_DONE) @touch $@ define retest-func - @bash -c "source $(PYTHON_VENV_PATH)/bin/activate && python run_tests.py -d $(TEST_DIR) $(UNITTEST_EXTRA_OPTS)" + @env VPP_TEST_FAILED_DIR=$(VPP_TEST_FAILED_DIR) scripts/setsid_wrapper.sh $(FORCE_FOREGROUND) $(PYTHON_VENV_PATH)/bin/activate python run_tests.py -d $(TEST_DIR) $(UNITTEST_EXTRA_OPTS) + @env VPP_TEST_FAILED_DIR=$(VPP_TEST_FAILED_DIR) scripts/compress_failed.sh endef .PHONY: sanity @@ -121,6 +132,8 @@ shell: verify-python-path $(PAPI_INSTALL_DONE) reset: @rm -f /dev/shm/vpp-unittest-* @rm -rf /tmp/vpp-unittest-* + @rm -rf $(VPP_TEST_FAILED_DIR) + @mkdir $(VPP_TEST_FAILED_DIR) wipe: reset @rm -rf $(PYTHON_VENV_PATH) @@ -184,6 +197,7 @@ help: @echo "Arguments controlling test runs:" @echo " V=[0|1|2] - set test verbosity level" @echo " FAILFAST=[0|1] - fail fast if 1, complete all tests if 0" + @echo " TIMEOUT= - fail test suite if any single test takes longer than to finish" @echo " DEBUG= - set VPP debugging kind" @echo " DEBUG=core - detect coredump and load it in gdb on crash" @echo " DEBUG=gdb - allow easy debugging by printing VPP PID "