]> git.proxmox.com Git - mirror_ubuntu-eoan-kernel.git/blame - tools/testing/selftests/lib.mk
selftests: kselftest framework: add error counter
[mirror_ubuntu-eoan-kernel.git] / tools / testing / selftests / lib.mk
CommitLineData
84f887bf
ME
1# This mimics the top-level Makefile. We do it explicitly here so that this
2# Makefile can operate with or without the kbuild infrastructure.
3CC := $(CROSS_COMPILE)gcc
4
e53aff45
SK
5ifeq (0,$(MAKELEVEL))
6OUTPUT := $(shell pwd)
7endif
8
d83c3ba0
ME
9TEST_GEN_PROGS := $(patsubst %,$(OUTPUT)/%,$(TEST_GEN_PROGS))
10TEST_GEN_FILES := $(patsubst %,$(OUTPUT)/%,$(TEST_GEN_FILES))
11
12all: $(TEST_GEN_PROGS) $(TEST_GEN_PROGS_EXTENDED) $(TEST_GEN_FILES)
13
5e29a910 14define RUN_TESTS
88baa78d 15 @for TEST in $(TEST_GEN_PROGS) $(TEST_PROGS); do \
a8ba798b 16 BASENAME_TEST=`basename $$TEST`; \
17 cd `dirname $$TEST`; (./$$BASENAME_TEST && echo "selftests: $$BASENAME_TEST [PASS]") || echo "selftests: $$BASENAME_TEST [FAIL]"; cd -;\
5e29a910
ME
18 done;
19endef
20
21run_tests: all
22 $(RUN_TESTS)
23
32dcfba6 24define INSTALL_RULE
900d65ee
BJZ
25 @if [ "X$(TEST_PROGS)$(TEST_PROGS_EXTENDED)$(TEST_FILES)" != "X" ]; then \
26 mkdir -p ${INSTALL_PATH}; \
5fe59799 27 echo "rsync -a $(TEST_PROGS) $(TEST_PROGS_EXTENDED) $(TEST_FILES) $(INSTALL_PATH)/"; \
28 rsync -a $(TEST_PROGS) $(TEST_PROGS_EXTENDED) $(TEST_FILES) $(INSTALL_PATH)/; \
88baa78d 29 fi
30 @if [ "X$(TEST_GEN_PROGS)$(TEST_GEN_PROGS_EXTENDED)$(TEST_GEN_FILES)" != "X" ]; then \
31 mkdir -p ${INSTALL_PATH}; \
32 echo "rsync -a $(TEST_GEN_PROGS) $(TEST_GEN_PROGS_EXTENDED) $(TEST_GEN_FILES) $(INSTALL_PATH)/"; \
33 rsync -a $(TEST_GEN_PROGS) $(TEST_GEN_PROGS_EXTENDED) $(TEST_GEN_FILES) $(INSTALL_PATH)/; \
a7d0f078 34 fi
32dcfba6
ME
35endef
36
37install: all
38ifdef INSTALL_PATH
39 $(INSTALL_RULE)
40else
41 $(error Error: set INSTALL_PATH to use install)
42endif
43
44define EMIT_TESTS
88baa78d 45 @for TEST in $(TEST_GEN_PROGS) $(TEST_PROGS); do \
a8ba798b 46 BASENAME_TEST=`basename $$TEST`; \
47 echo "(./$$BASENAME_TEST && echo \"selftests: $$BASENAME_TEST [PASS]\") || echo \"selftests: $$BASENAME_TEST [FAIL]\""; \
32dcfba6
ME
48 done;
49endef
50
51emit_tests:
52 $(EMIT_TESTS)
53
df6438f9 54define CLEAN
80d443e8 55 $(RM) -r $(TEST_GEN_PROGS) $(TEST_GEN_PROGS_EXTENDED) $(TEST_GEN_FILES) $(EXTRA_CLEAN)
df6438f9
SK
56endef
57
58clean:
59 $(CLEAN)
88baa78d 60
a8ba798b 61$(OUTPUT)/%:%.c
2047f1d8 62 $(LINK.c) $^ $(LDLIBS) -o $@
a8ba798b 63
64$(OUTPUT)/%.o:%.S
634ce97c 65 $(COMPILE.S) $^ -o $@
a8ba798b 66
67$(OUTPUT)/%:%.S
634ce97c 68 $(LINK.S) $^ $(LDLIBS) -o $@
7d758af2 69
32dcfba6 70.PHONY: run_tests all clean install emit_tests