Merge branch 'core-rseq-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git...
[sfrench/cifs-2.6.git] / tools / testing / selftests / lib.mk
index ceb6c7c485474b5febb0ed99accb13cba667465b..17ab36605a8e8933b77624843572a2d23fe846ec 100644 (file)
@@ -19,25 +19,43 @@ TEST_GEN_FILES := $(patsubst %,$(OUTPUT)/%,$(TEST_GEN_FILES))
 all: $(TEST_GEN_PROGS) $(TEST_GEN_PROGS_EXTENDED) $(TEST_GEN_FILES)
 
 .ONESHELL:
+define RUN_TEST_PRINT_RESULT
+       TEST_HDR_MSG="selftests: "`basename $$PWD`:" $$BASENAME_TEST";  \
+       echo $$TEST_HDR_MSG;                                    \
+       echo "========================================";        \
+       if [ ! -x $$TEST ]; then        \
+               echo "$$TEST_HDR_MSG: Warning: file $$BASENAME_TEST is not executable, correct this.";\
+               echo "not ok 1..$$test_num $$TEST_HDR_MSG [FAIL]"; \
+       else                                    \
+               cd `dirname $$TEST` > /dev/null; \
+               if [ "X$(summary)" != "X" ]; then       \
+                       (./$$BASENAME_TEST > /tmp/$$BASENAME_TEST 2>&1 && \
+                       echo "ok 1..$$test_num $$TEST_HDR_MSG [PASS]") || \
+                       (if [ $$? -eq $$skip ]; then    \
+                               echo "not ok 1..$$test_num $$TEST_HDR_MSG [SKIP]";                              \
+                       else echo "not ok 1..$$test_num $$TEST_HDR_MSG [FAIL]";                                 \
+                       fi;)                    \
+               else                            \
+                       (./$$BASENAME_TEST &&   \
+                       echo "ok 1..$$test_num $$TEST_HDR_MSG [PASS]") ||                                               \
+                       (if [ $$? -eq $$skip ]; then \
+                               echo "not ok 1..$$test_num $$TEST_HDR_MSG [SKIP]"; \
+                       else echo "not ok 1..$$test_num $$TEST_HDR_MSG [FAIL]";                         \
+                       fi;)            \
+               fi;                             \
+               cd - > /dev/null;               \
+       fi;
+endef
+
 define RUN_TESTS
        @export KSFT_TAP_LEVEL=`echo 1`;                \
        test_num=`echo 0`;                              \
+       skip=`echo 4`;                                  \
        echo "TAP version 13";                          \
        for TEST in $(1); do                            \
                BASENAME_TEST=`basename $$TEST`;        \
                test_num=`echo $$test_num+1 | bc`;      \
-               echo "selftests: $$BASENAME_TEST";      \
-               echo "========================================";        \
-               if [ ! -x $$TEST ]; then        \
-                       echo "selftests: Warning: file $$BASENAME_TEST is not executable, correct this.";\
-                       echo "not ok 1..$$test_num selftests: $$BASENAME_TEST [FAIL]"; \
-               else                                    \
-               if [ "X$(summary)" != "X" ]; then               \
-                               cd `dirname $$TEST` > /dev/null; (./$$BASENAME_TEST > /tmp/$$BASENAME_TEST 2>&1 && echo "ok 1..$$test_num selftests: $$BASENAME_TEST [PASS]") || echo "not ok 1..$$test_num selftests:  $$BASENAME_TEST [FAIL]"; cd - > /dev/null;\
-                       else                            \
-                               cd `dirname $$TEST` > /dev/null; (./$$BASENAME_TEST && echo "ok 1..$$test_num selftests: $$BASENAME_TEST [PASS]") || echo "not ok 1..$$test_num selftests:  $$BASENAME_TEST [FAIL]"; cd - > /dev/null;\
-                       fi;                             \
-               fi;                                     \
+               $(call RUN_TEST_PRINT_RESULT,$(TEST),$(BASENAME_TEST),$(test_num),$(skip))                                              \
        done;
 endef
 
@@ -76,9 +94,18 @@ else
 endif
 
 define EMIT_TESTS
-       @for TEST in $(TEST_GEN_PROGS) $(TEST_CUSTOM_PROGS) $(TEST_PROGS); do \
+       @test_num=`echo 0`;                             \
+       for TEST in $(TEST_GEN_PROGS) $(TEST_CUSTOM_PROGS) $(TEST_PROGS); do \
                BASENAME_TEST=`basename $$TEST`;        \
-               echo "(./$$BASENAME_TEST >> \$$OUTPUT 2>&1 && echo \"selftests: $$BASENAME_TEST [PASS]\") || echo \"selftests: $$BASENAME_TEST [FAIL]\""; \
+               test_num=`echo $$test_num+1 | bc`;      \
+               TEST_HDR_MSG="selftests: "`basename $$PWD`:" $$BASENAME_TEST";  \
+               echo "echo $$TEST_HDR_MSG";     \
+               if [ ! -x $$TEST ]; then        \
+                       echo "echo \"$$TEST_HDR_MSG: Warning: file $$BASENAME_TEST is not executable, correct this.\"";         \
+                       echo "echo \"not ok 1..$$test_num $$TEST_HDR_MSG [FAIL]\""; \
+               else
+                       echo "(./$$BASENAME_TEST >> \$$OUTPUT 2>&1 && echo \"ok 1..$$test_num $$TEST_HDR_MSG [PASS]\") || (if [ \$$? -eq \$$skip ]; then echo \"not ok 1..$$test_num $$TEST_HDR_MSG [SKIP]\"; else echo \"not ok 1..$$test_num $$TEST_HDR_MSG [FAIL]\"; fi;)"; \
+               fi;             \
        done;
 endef