]> git.proxmox.com Git - mirror_ubuntu-focal-kernel.git/blob - tools/testing/selftests/Makefile
Input: wm97xx: add new AC97 bus support
[mirror_ubuntu-focal-kernel.git] / tools / testing / selftests / Makefile
1 TARGETS = bpf
2 TARGETS += breakpoints
3 TARGETS += capabilities
4 TARGETS += cpufreq
5 TARGETS += cpu-hotplug
6 TARGETS += efivarfs
7 TARGETS += exec
8 TARGETS += firmware
9 TARGETS += ftrace
10 TARGETS += futex
11 TARGETS += gpio
12 TARGETS += intel_pstate
13 TARGETS += ipc
14 TARGETS += kcmp
15 TARGETS += lib
16 TARGETS += membarrier
17 TARGETS += memfd
18 TARGETS += memory-hotplug
19 TARGETS += mount
20 TARGETS += mqueue
21 TARGETS += net
22 TARGETS += nsfs
23 TARGETS += powerpc
24 TARGETS += pstore
25 TARGETS += ptrace
26 TARGETS += seccomp
27 TARGETS += sigaltstack
28 TARGETS += size
29 TARGETS += splice
30 TARGETS += static_keys
31 TARGETS += sync
32 TARGETS += sysctl
33 ifneq (1, $(quicktest))
34 TARGETS += timers
35 endif
36 TARGETS += user
37 TARGETS += vm
38 TARGETS += x86
39 TARGETS += zram
40 #Please keep the TARGETS list alphabetically sorted
41 # Run "make quicktest=1 run_tests" or
42 # "make quicktest=1 kselftest" from top level Makefile
43
44 TARGETS_HOTPLUG = cpu-hotplug
45 TARGETS_HOTPLUG += memory-hotplug
46
47 # Clear LDFLAGS and MAKEFLAGS if called from main
48 # Makefile to avoid test build failures when test
49 # Makefile doesn't have explicit build rules.
50 ifeq (1,$(MAKELEVEL))
51 override LDFLAGS =
52 override MAKEFLAGS =
53 endif
54
55 BUILD := $(O)
56 ifndef BUILD
57 BUILD := $(KBUILD_OUTPUT)
58 endif
59 ifndef BUILD
60 BUILD := $(shell pwd)
61 endif
62
63 export BUILD
64 all:
65 for TARGET in $(TARGETS); do \
66 BUILD_TARGET=$$BUILD/$$TARGET; \
67 mkdir $$BUILD_TARGET -p; \
68 make OUTPUT=$$BUILD_TARGET -C $$TARGET;\
69 done;
70
71 run_tests: all
72 for TARGET in $(TARGETS); do \
73 BUILD_TARGET=$$BUILD/$$TARGET; \
74 make OUTPUT=$$BUILD_TARGET -C $$TARGET run_tests;\
75 done;
76
77 hotplug:
78 for TARGET in $(TARGETS_HOTPLUG); do \
79 BUILD_TARGET=$$BUILD/$$TARGET; \
80 make OUTPUT=$$BUILD_TARGET -C $$TARGET;\
81 done;
82
83 run_hotplug: hotplug
84 for TARGET in $(TARGETS_HOTPLUG); do \
85 BUILD_TARGET=$$BUILD/$$TARGET; \
86 make OUTPUT=$$BUILD_TARGET -C $$TARGET run_full_test;\
87 done;
88
89 clean_hotplug:
90 for TARGET in $(TARGETS_HOTPLUG); do \
91 BUILD_TARGET=$$BUILD/$$TARGET; \
92 make OUTPUT=$$BUILD_TARGET -C $$TARGET clean;\
93 done;
94
95 run_pstore_crash:
96 make -C pstore run_crash
97
98 INSTALL_PATH ?= install
99 INSTALL_PATH := $(abspath $(INSTALL_PATH))
100 ALL_SCRIPT := $(INSTALL_PATH)/run_kselftest.sh
101
102 install:
103 ifdef INSTALL_PATH
104 @# Ask all targets to install their files
105 mkdir -p $(INSTALL_PATH)
106 for TARGET in $(TARGETS); do \
107 BUILD_TARGET=$$BUILD/$$TARGET; \
108 make OUTPUT=$$BUILD_TARGET -C $$TARGET INSTALL_PATH=$(INSTALL_PATH)/$$TARGET install; \
109 done;
110
111 @# Ask all targets to emit their test scripts
112 echo "#!/bin/sh" > $(ALL_SCRIPT)
113 echo "cd \$$(dirname \$$0)" >> $(ALL_SCRIPT)
114 echo "ROOT=\$$PWD" >> $(ALL_SCRIPT)
115
116 for TARGET in $(TARGETS); do \
117 BUILD_TARGET=$$BUILD/$$TARGET; \
118 echo "echo ; echo Running tests in $$TARGET" >> $(ALL_SCRIPT); \
119 echo "echo ========================================" >> $(ALL_SCRIPT); \
120 echo "cd $$TARGET" >> $(ALL_SCRIPT); \
121 make -s --no-print-directory OUTPUT=$$BUILD_TARGET -C $$TARGET emit_tests >> $(ALL_SCRIPT); \
122 echo "cd \$$ROOT" >> $(ALL_SCRIPT); \
123 done;
124
125 chmod u+x $(ALL_SCRIPT)
126 else
127 $(error Error: set INSTALL_PATH to use install)
128 endif
129
130 clean:
131 for TARGET in $(TARGETS); do \
132 BUILD_TARGET=$$BUILD/$$TARGET; \
133 make OUTPUT=$$BUILD_TARGET -C $$TARGET clean;\
134 done;
135
136 .PHONY: all run_tests hotplug run_hotplug clean_hotplug run_pstore_crash install clean