ip: Router ID included in flow hash
[vpp.git] / test / Makefile
index ef0b27c..514cb27 100644 (file)
@@ -93,20 +93,21 @@ VENV_RUN_DIR:=$(VENV_PATH)/run
 endif
 
 ifeq ($(PYTHON),)
-PYTHON_INTERP=python3.6
+PYTHON_INTERP=python3
 else
 PYTHON_INTERP=$(PYTHON)
 endif
 
 PYTHON_VERSION=$(shell $(PYTHON_INTERP) -c 'import sys; print(sys.version_info.major)')
-PIP_VERSION=19.1.1
-PIP_TOOLS_VERSION=3.8.0   # Keep in sync with requirements.txt
+PIP_VERSION=20.1.1
+# Keep in sync with requirements.txt
+PIP_TOOLS_VERSION=5.1.2
 PYTHON_DEPENDS=requirements-$(PYTHON_VERSION).txt
-SCAPY_SOURCE=$(shell find $(VENV_PATH)/lib/$(PYTHON_INTERP) -name site-packages)
+SCAPY_SOURCE=$(shell find $(VENV_PATH)/lib/python* -name site-packages)
 BUILD_COV_DIR=$(TEST_BR)/coverage
 
-PIP_TOOLS_INSTALL_DONE=$(VENV_RUN_DIR)/pip-tools-install-$(PYTHON_VERSION).done
-PIP_INSTALL_DONE=$(VENV_RUN_DIR)/pip-install-$(PYTHON_VERSION).done
+PIP_TOOLS_INSTALL_DONE=$(VENV_RUN_DIR)/pip-tools-install-$(PYTHON_VERSION)-$(PIP_TOOLS_VERSION).done
+PIP_INSTALL_DONE=$(VENV_RUN_DIR)/pip-install-$(PYTHON_VERSION)-$(PIP_VERSION).done
 PIP_PATCH_DONE=$(VENV_RUN_DIR)/pip-patch-$(PYTHON_VERSION).done
 PAPI_INSTALL_DONE=$(VENV_RUN_DIR)/papi-install-$(PYTHON_VERSION).done
 PAPI_PYTHON_SRC_DIR=$(WS_ROOT)/src/vpp-api/python
@@ -115,8 +116,6 @@ PAPI_WIPE_DIST=$(WS_ROOT)/src/vpp-api/vapi/__pycache__ \
        $(PAPI_PYTHON_SRC_DIR)/vpp_papi.egg-info \
        $(PAPI_PYTHON_SRC_DIR)/vpp_papi/__pycache__
 
-PAPI_INSTALL_FLAGS=$(PIP_INSTALL_DONE) $(PIP_PATCH_DONE) $(PAPI_INSTALL_DONE)
-
 $(PIP_TOOLS_INSTALL_DONE):
        @rm -rf $(VENV_PATH)
        @mkdir -p $(VENV_RUN_DIR)
@@ -128,12 +127,12 @@ $(PIP_TOOLS_INSTALL_DONE):
                  $(PYTHON_INTERP) -m pip install pip-tools===$(PIP_TOOLS_VERSION)"
        @touch $@
 
-$(PYTHON_DEPENDS): $(PIP_TOOLS_INSTALL_DONE) requirements.txt
+$(PYTHON_DEPENDS): requirements.txt
        @bash -c "source $(VENV_PATH)/bin/activate && \
                  CUSTOM_COMPILE_COMMAND='make test-refresh-deps (or update requirements.txt)' \
                  $(PYTHON_INTERP) -m piptools compile -q --generate-hashes requirements.txt --output-file $@"
 
-$(PIP_INSTALL_DONE): $(PYTHON_DEPENDS)
+$(PIP_INSTALL_DONE): $(PIP_TOOLS_INSTALL_DONE) $(PYTHON_DEPENDS)
        @bash -c "source $(VENV_PATH)/bin/activate && \
                  $(PYTHON_INTERP) -m piptools sync $(PYTHON_DEPENDS)"
        @touch $@
@@ -145,7 +144,7 @@ $(PIP_PATCH_DONE): $(PIP_INSTALL_DONE)
                echo Applying patch: $$(basename $$f) ; \
                patch --forward -p1 -d $(SCAPY_SOURCE) < $$f ; \
                retCode=$$?; \
-               [ $$retCode -gt 0 ] && exit $$retCode; \
+               [ $$retCode -gt 1 ] && exit $$retCode; \
        done; \
        touch $@
 
@@ -220,7 +219,7 @@ ext-test-apps:
 
 $(BUILD_TEST_SRC): verify-env
        @mkdir -p $@
-       @for file in $(VPP_TEST_SRC); do if [ ! -e $(BUILD_TEST_SRC)/$$(basename $$file) ] ; then ln -s $$file $(BUILD_TEST_SRC) ; fi ; done
+       @for file in $(VPP_TEST_SRC); do if [ ! -L $$file ] && [ ! -e $(BUILD_TEST_SRC)/$$(basename $$file) ] ; then ln -s $$file $(BUILD_TEST_SRC) ; fi ; done
 
 $(FAILED_DIR): reset
        @mkdir -p $@
@@ -241,8 +240,10 @@ shell: test-dep
        @echo "source $(VENV_PATH)/bin/activate;\
                cd $(BUILD_TEST_SRC);\
                export PYTHONPATH=$(BUILD_TEST_SRC);\
+               export RND_SEED=$(RND_SEED);\
                echo '***';\
                echo PYTHONPATH=$(BUILD_TEST_SRC);\
+               echo RND_SEED=$(RND_SEED);\
                echo VPP_BUILD_DIR=$(VPP_BUILD_DIR);\
                echo VPP_BIN=$(VPP_BIN);\
                echo VPP_PLUGIN_PATH=$(VPP_PLUGIN_PATH);\
@@ -266,12 +267,11 @@ reset:
 wipe: reset
        @make -C ext clean
        @rm -rf $(VENV_PATH)
-       @rm -rf $(patsubst %,%/__pycache__, $(VPP_TEST_DIRS) $(BUILD_TEST_SRC))
+       @rm -rf $(patsubst %,%/__pycache__, $(VPP_TEST_DIRS))
+       @rm -rf  $(BUILD_TEST_SRC)
 
-$(TEST_DOC_BR):
+$(TEST_DOC_BR): $(PIP_INSTALL_DONE)
        @mkdir -p $@
-       @bash -c "source $(VENV_PATH)/bin/activate && \
-                 $(PYTHON_INTERP) -m pip install sphinx sphinx-rtd-theme"
        @bash -c "source $(VENV_PATH)/bin/activate && make -C doc html"
 
 .PHONY: doc
@@ -380,6 +380,10 @@ 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 " VARIANT=<variant>      - specify which march node variant to unit test"
+       @echo "                          e.g. VARIANT=skx test the skx march variants"
+       @echo "                          e.g. VARIANT=icl test the icl march variants"
+       @echo ""
        @echo " VPP_ZOMBIE_NOCHECK=1   - skip checking for vpp (zombie) processes (CAUTION)"
        @echo " COREDUMP_SIZE=<size>   - pass <size> as unix { coredump-size <size> } argument to vpp"
        @echo "                          e.g. COREDUMP_SIZE=4g"