From b93d1424301978405b53784d1e85a952dd78f4e5 Mon Sep 17 00:00:00 2001 From: Klement Sekera Date: Thu, 2 Mar 2017 08:16:20 +0100 Subject: 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 --- test/Makefile | 24 ++++++++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) (limited to 'test/Makefile') 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" -- cgit 1.2.3-korg