xref: /openbmc/linux/tools/testing/selftests/lib.mk (revision 63c43812ee99efe7903955bae8cd928e9582477a)
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
5define RUN_TESTS
6	@for TEST in $(TEST_PROGS); do \
7		(./$$TEST && echo "selftests: $$TEST [PASS]") || echo "selftests: $$TEST [FAIL]"; \
8	done;
9endef
10
11run_tests: all
12	$(RUN_TESTS)
13
14define INSTALL_RULE
15	mkdir -p $(INSTALL_PATH)
16	install -t $(INSTALL_PATH) $(TEST_PROGS) $(TEST_PROGS_EXTENDED) $(TEST_FILES)
17endef
18
19install: all
20ifdef INSTALL_PATH
21	$(INSTALL_RULE)
22else
23	$(error Error: set INSTALL_PATH to use install)
24endif
25
26define EMIT_TESTS
27	@for TEST in $(TEST_PROGS); do \
28		echo "(./$$TEST && echo \"selftests: $$TEST [PASS]\") || echo \"selftests: $$TEST [FAIL]\""; \
29	done;
30endef
31
32emit_tests:
33	$(EMIT_TESTS)
34
35.PHONY: run_tests all clean install emit_tests
36