From 23f547a891ed110d773bc466864c22f0ec21e519 Mon Sep 17 00:00:00 2001 From: "W. Trevor King" Date: Mon, 4 Dec 2017 10:10:22 -0800 Subject: [PATCH] Makefile: Clearer warning on missing validation executable(s) Instead of reporting total ................................................. 0/0 and passing (which node-tap seems to do when given missing files as arguments), report: missing test executable; run 'make runtimetest validation-executables' and error out. Having a separate step to build the executables is useful for: * Not building them as root, which reduces the change of security issues by using as little privilege as possible. * Not rebuilding them on each test, since we haven't told Make about the full dependency tree for the test executables. The separate build step was introduced in e11b77f3 (validation: Use prove(1) as a TAP harness, 2017-11-25, #439), but I didn't do a good job of motivating it in that commit message. Signed-off-by: W. Trevor King --- Makefile | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/Makefile b/Makefile index a7a858123..4cd61063a 100644 --- a/Makefile +++ b/Makefile @@ -40,6 +40,14 @@ clean: rm -f oci-runtime-tool runtimetest *.1 $(VALIDATION_TESTS) localvalidation: + @for EXECUTABLE in runtimetest $(VALIDATION_TESTS); \ + do \ + if test ! -x "$${EXECUTABLE}"; \ + then \ + echo "missing test executable $${EXECUTABLE}; run 'make runtimetest validation-executables'" >&2; \ + exit 1; \ + fi; \ + done RUNTIME=$(RUNTIME) $(TAP) $(VALIDATION_TESTS) .PHONY: validation-executables