make test: automatic sanity check

Check if vpp_papi is importable before running the tests to avoid
confusing python crashes.

Change-Id: I6adf406e353bf381d590f2ef988a1ea79b95cf37
Signed-off-by: Klement Sekera <ksekera@cisco.com>
diff --git a/test/Makefile b/test/Makefile
index 0214980..8594633 100644
--- a/test/Makefile
+++ b/test/Makefile
@@ -62,10 +62,22 @@
 	@bash -c "source $(PYTHON_VENV_PATH)/bin/activate && python run_tests.py discover $(UNITTEST_EXTRA_OPTS) -p test_\"*.py\""
 endef
 
-test: verify-python-path verify-no-running-vpp reset $(PAPI_INSTALL_DONE)
+.PHONY: sanity
+
+sanity: verify-no-running-vpp
+	@bash -c "source $(PYTHON_VENV_PATH)/bin/activate && python sanity_import_vpp_papi.py ||\
+		(echo \"*******************************************************************\" &&\
+		 echo \"* Sanity check failed, cannot import vpp_papi\" &&\
+		 echo \"* to debug: \" &&\
+		 echo \"* 1. enter test shell:   make test-shell\" &&\
+		 echo \"* 2. execute debugger:   gdb python -ex 'run sanity_import_vpp_papi.py'\" &&\
+	         echo \"*******************************************************************\" &&\
+		 false)"
+
+test: verify-python-path $(PAPI_INSTALL_DONE) sanity reset 
 	$(call retest-func)
 
-retest: verify-python-path verify-no-running-vpp reset
+retest: verify-python-path sanity reset
 	$(call retest-func)
 
 shell: verify-python-path $(PAPI_INSTALL_DONE)
diff --git a/test/sanity_import_vpp_papi.py b/test/sanity_import_vpp_papi.py
new file mode 100644
index 0000000..535e00c
--- /dev/null
+++ b/test/sanity_import_vpp_papi.py
@@ -0,0 +1,4 @@
+#!/usr/bin/env python
+
+""" sanity check script """
+import vpp_papi