make test: automatic "vpp finishes startup" check
[vpp.git] / test / Makefile
index 4338e09..787dd9d 100644 (file)
@@ -23,10 +23,15 @@ verify-no-running-vpp:
                false; \
        fi
 
-UNITTEST_EXTRA_OPTS=""
+UNITTEST_EXTRA_OPTS=
+UNITTEST_FAILFAST_OPTS=
 
 ifeq ($(FAILFAST),1)
-UNITTEST_EXTRA_OPTS="-f"
+UNITTEST_EXTRA_OPTS=-f
+endif
+
+ifneq ($(EXTERN_TESTS),)
+UNITTEST_EXTRA_OPTS=$(UNITTEST_FAILFAST_OPTS) -d $(EXTERN_TESTS)
 endif
 
 PYTHON_VENV_PATH=$(VPP_PYTHON_PREFIX)/virtualenv
@@ -59,7 +64,7 @@ $(PAPI_INSTALL_DONE): $(PIP_PATCH_DONE)
        @touch $@
 
 define retest-func
-       @bash -c "source $(PYTHON_VENV_PATH)/bin/activate && python run_tests.py discover $(UNITTEST_EXTRA_OPTS) -p test_\"*.py\""
+       @bash -c "source $(PYTHON_VENV_PATH)/bin/activate && python run_tests.py -d $(TEST_DIR) $(UNITTEST_EXTRA_OPTS)"
 endef
 
 .PHONY: sanity
@@ -73,6 +78,11 @@ sanity: verify-no-running-vpp
                 echo \"* 2. execute debugger:   gdb python -ex 'run sanity_import_vpp_papi.py'\" &&\
                 echo \"*******************************************************************\" &&\
                 false)"
+       @bash -c "source $(PYTHON_VENV_PATH)/bin/activate && python sanity_run_vpp.py ||\
+               (echo \"*******************************************************************\" &&\
+                echo \"* Sanity check failed, cannot run vpp\" &&\
+                echo \"*******************************************************************\" &&\
+                false)"
 
 test: verify-python-path $(PAPI_INSTALL_DONE) sanity reset 
        $(call retest-func)
@@ -87,6 +97,8 @@ shell: verify-python-path $(PAPI_INSTALL_DONE)
                echo VPP_TEST_BIN=$(VPP_TEST_BIN);\
                echo VPP_TEST_PLUGIN_PATH=$(VPP_TEST_PLUGIN_PATH);\
                echo VPP_TEST_INSTALL_PATH=$(VPP_TEST_INSTALL_PATH);\
+               echo EXTERN_TESTS=$(EXTERN_TESTS);\
+               echo EXTERN_PLUGINS=$(EXTERN_PLUGINS);\
                echo LD_LIBRARY_PATH=$(LD_LIBRARY_PATH);\
                echo '***';\
                exec </dev/tty" | bash -i
@@ -177,6 +189,8 @@ help:
        @echo " COREDUMP_SIZE=<size> - pass <size> as unix { coredump-size <size> } argument to vpp"
        @echo "                        e.g. COREDUMP_SIZE=4g"
        @echo "                             COREDUMP_SIZE=unlimited"
+       @echo " EXTERN_TESTS=<path>  - path to out-of-tree test_<name>.py files containing test cases"
+       @echo " EXTERN_PLUGINS=<path>- path to out-of-tree plugins to be loaded by vpp under test"
        @echo ""
        @echo "Creating test documentation"
        @echo " test-doc            - generate documentation for test framework"