summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKlement Sekera <ksekera@cisco.com>2017-03-21 08:21:25 +0100
committerDamjan Marion <dmarion.lists@gmail.com>2017-03-22 10:48:26 +0000
commit47e275bbe4327aabc641e917f738d72693eb2d81 (patch)
treef0e622a36ae475c47f02c87e249de9e7f11e68a1
parent993e0edf4e8078d10ddd5efa8156d62ce8f9d0c5 (diff)
make test: support out-of-tree plugins
usage: env EXTERN_PLUGINS=/path/to/plugins make test Change-Id: I8eece726dfafeff1cffd921c1e18cd3eb7eb64ed Signed-off-by: Klement Sekera <ksekera@cisco.com>
-rw-r--r--test/Makefile4
-rw-r--r--test/framework.py12
2 files changed, 14 insertions, 2 deletions
diff --git a/test/Makefile b/test/Makefile
index c65eaae6bfe..6647d67b20b 100644
--- a/test/Makefile
+++ b/test/Makefile
@@ -92,6 +92,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
@@ -182,6 +184,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"
diff --git a/test/framework.py b/test/framework.py
index d7a0026412b..fe6a8a531f4 100644
--- a/test/framework.py
+++ b/test/framework.py
@@ -146,6 +146,14 @@ class VppTestCase(unittest.TestCase):
cls.set_debug_flags(d)
cls.vpp_bin = os.getenv('VPP_TEST_BIN', "vpp")
cls.plugin_path = os.getenv('VPP_TEST_PLUGIN_PATH')
+ cls.extern_plugin_path = os.getenv('EXTERN_PLUGINS')
+ plugin_path = None
+ if cls.plugin_path is not None:
+ if cls.extern_plugin_path is not None:
+ plugin_path = "%s:%s" % (
+ cls.plugin_path, cls.extern_plugin_path)
+ elif cls.extern_plugin_path is not None:
+ plugin_path = cls.extern_plugin_path
debug_cli = ""
if cls.step or cls.debug_gdb or cls.debug_gdbserver:
debug_cli = "cli-listen localhost:5002"
@@ -164,8 +172,8 @@ class VppTestCase(unittest.TestCase):
"api-segment", "{", "prefix", cls.shm_prefix, "}",
"plugins", "{", "plugin", "dpdk_plugin.so", "{",
"disable", "}", "}"]
- if cls.plugin_path is not None:
- cls.vpp_cmdline.extend(["plugin_path", cls.plugin_path])
+ if plugin_path is not None:
+ cls.vpp_cmdline.extend(["plugin_path", plugin_path])
cls.logger.info("vpp_cmdline: %s" % cls.vpp_cmdline)
@classmethod