aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/tools/testing/selftests/lib.mk
diff options
context:
space:
mode:
authorMichael Ellerman <mpe@ellerman.id.au>2015-03-11 15:06:00 +1100
committerShuah Khan <shuahkh@osg.samsung.com>2015-03-13 15:21:56 -0600
commit32dcfba6f8df667e4b915e0542b33ccbc8e76fa8 (patch)
treeb7e9728ba9a2e7ba625bf37b374b56762bc082b0 /tools/testing/selftests/lib.mk
parentselftests: Introduce minimal shared logic for running tests (diff)
downloadwireguard-linux-32dcfba6f8df667e4b915e0542b33ccbc8e76fa8.tar.xz
wireguard-linux-32dcfba6f8df667e4b915e0542b33ccbc8e76fa8.zip
selftests: Add install target
This adds make install support to selftests. The basic usage is: $ cd tools/testing/selftests $ make install That installs into tools/testing/selftests/install, which can then be copied where ever necessary. The install destination is also configurable using eg: $ INSTALL_PATH=/mnt/selftests make install The implementation uses two targets in the child makefiles. The first "install" is expected to install all files into $(INSTALL_PATH). The second, "emit_tests", is expected to emit the test instructions (ie. bash script) on stdout. Separating this from install means the child makefiles need no knowledge of the location of the test script. Signed-off-by: Michael Ellerman <mpe@ellerman.id.au> Signed-off-by: Shuah Khan <shuahkh@osg.samsung.com>
Diffstat (limited to 'tools/testing/selftests/lib.mk')
-rw-r--r--tools/testing/selftests/lib.mk23
1 files changed, 22 insertions, 1 deletions
diff --git a/tools/testing/selftests/lib.mk b/tools/testing/selftests/lib.mk
index b30c5a49cb61..7bd3dabe2846 100644
--- a/tools/testing/selftests/lib.mk
+++ b/tools/testing/selftests/lib.mk
@@ -7,4 +7,25 @@ endef
run_tests: all
$(RUN_TESTS)
-.PHONY: run_tests all clean
+define INSTALL_RULE
+ mkdir -p $(INSTALL_PATH)
+ install -t $(INSTALL_PATH) $(TEST_PROGS) $(TEST_FILES)
+endef
+
+install: all
+ifdef INSTALL_PATH
+ $(INSTALL_RULE)
+else
+ $(error Error: set INSTALL_PATH to use install)
+endif
+
+define EMIT_TESTS
+ @for TEST in $(TEST_PROGS); do \
+ echo "(./$$TEST && echo \"selftests: $$TEST [PASS]\") || echo \"selftests: $$TEST [FAIL]\""; \
+ done;
+endef
+
+emit_tests:
+ $(EMIT_TESTS)
+
+.PHONY: run_tests all clean install emit_tests