summaryrefslogtreecommitdiffstats
path: root/test/Makefile
diff options
context:
space:
mode:
authorKlement Sekera <ksekera@cisco.com>2017-03-02 08:16:20 +0100
committerOle Trøan <otroan@employees.org>2017-03-06 12:29:45 +0000
commitb93d1424301978405b53784d1e85a952dd78f4e5 (patch)
tree030ac343d118e876f0d5ad57c3035a7e0c1d0956 /test/Makefile
parenta1cca7fab081fe038bcd4fe150f7997fa3ae8b26 (diff)
make test: don't run if other vpp process runs
Check if there are existing vpp processes before running the test suite and refuse to run if there are. This prevents the removal of other test suite temporary files and also makes sure that if the machine is loaded by (zombie) vpp processes, interactive tests (like bfd) won't fail. Change-Id: I88a74098188cb3f51966de5db19d7f80f39e51e2 Signed-off-by: Klement Sekera <ksekera@cisco.com>
Diffstat (limited to 'test/Makefile')
-rw-r--r--test/Makefile24
1 files changed, 22 insertions, 2 deletions
diff --git a/test/Makefile b/test/Makefile
index fd1bc0a4d62..25c8e0a82a0 100644
--- a/test/Makefile
+++ b/test/Makefile
@@ -5,6 +5,24 @@ ifndef VPP_PYTHON_PREFIX
$(error VPP_PYTHON_PREFIX is not set)
endif
+.PHONY: verify-no-running-vpp
+
+ifdef VPP_ZOMBIE_NOCHECK
+VPP_PIDS=
+else
+VPP_PIDS=$(shell pgrep -d, -x vpp_main)
+endif
+
+verify-no-running-vpp:
+ @if [ "$(VPP_PIDS)" != "" ]; then \
+ echo; \
+ echo "*** Existing vpp processes detected (PID(s): $(VPP_PIDS)). Running tests under these conditions is not supported. ***"; \
+ echo; \
+ ps -fp $(VPP_PIDS);\
+ echo; \
+ false; \
+ fi
+
UNITTEST_EXTRA_OPTS=""
ifeq ($(FAILFAST),1)
@@ -44,10 +62,10 @@ define retest-func
@bash -c "source $(PYTHON_VENV_PATH)/bin/activate && python run_tests.py discover $(UNITTEST_EXTRA_OPTS) -p test_\"*.py\""
endef
-test: reset verify-python-path $(PAPI_INSTALL_DONE)
+test: verify-python-path verify-no-running-vpp reset $(PAPI_INSTALL_DONE)
$(call retest-func)
-retest: reset verify-python-path
+retest: verify-python-path verify-no-running-vpp reset
$(call retest-func)
.PHONY: wipe doc
@@ -128,6 +146,8 @@ help:
@echo " TEST='bfd.BFDAPITestCase.test_add_bfd' selects a single test named test_add_bfd from test_bfd.py/BFDAPITestCase"
@echo " TEST='*.*.test_add_bfd' selects all test functions named test_add_bfd from all files/classes"
@echo ""
+ @echo " VPP_ZOMBIE_NOCHECK=1 - skip checking for vpp (zombie) processes (CAUTION)"
+ @echo ""
@echo "Creating test documentation"
@echo " test-doc - generate documentation for test framework"
@echo " test-wipe-doc - wipe documentation for test framework"