]> git.proxmox.com Git - mirror_ubuntu-artful-kernel.git/blame - tools/testing/selftests/Makefile
Merge tag 'efi-urgent' of git://git.kernel.org/pub/scm/linux/kernel/git/efi/efi into...
[mirror_ubuntu-artful-kernel.git] / tools / testing / selftests / Makefile
CommitLineData
5aa5bd14
DB
1TARGETS = bpf
2TARGETS += breakpoints
f4ecb322 3TARGETS += capabilities
e66d5b67 4TARGETS += cpufreq
58c7be84
PE
5TARGETS += cpu-hotplug
6TARGETS += efivarfs
96e869d8
AM
7TARGETS += exec
8TARGETS += firmware
9TARGETS += ftrace
ecac1a75 10TARGETS += futex
22f6592b 11TARGETS += gpio
6320303f 12TARGETS += intel_pstate
7e722473 13TARGETS += ipc
66a01b96 14TARGETS += kcmp
317dc34a 15TARGETS += lib
b6d97344 16TARGETS += membarrier
4f5ce5e8 17TARGETS += memfd
58c7be84 18TARGETS += memory-hotplug
db181ce0 19TARGETS += mount
96e869d8 20TARGETS += mqueue
a6f68034 21TARGETS += net
6ad92bf6 22TARGETS += nsfs
96e869d8 23TARGETS += powerpc
cc04a46f 24TARGETS += pstore
17afab1d 25TARGETS += ptrace
c99ee51a 26TARGETS += seccomp
19fd2868 27TARGETS += sigaltstack
96e869d8 28TARGETS += size
b8826e50 29TARGETS += splice
1087d019 30TARGETS += static_keys
82208160 31TARGETS += sync
96e869d8 32TARGETS += sysctl
2278e5ed 33ifneq (1, $(quicktest))
0bc4b0cf 34TARGETS += timers
2278e5ed 35endif
3e2a4c18 36TARGETS += user
96e869d8 37TARGETS += vm
3f705dfd 38TARGETS += x86
f21fb798 39TARGETS += zram
96e869d8 40#Please keep the TARGETS list alphabetically sorted
2278e5ed
SK
41# Run "make quicktest=1 run_tests" or
42# "make quicktest=1 kselftest from top level Makefile
274343ad 43
ddddda9b
SK
44TARGETS_HOTPLUG = cpu-hotplug
45TARGETS_HOTPLUG += memory-hotplug
46
67d8712d
SK
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.
50ifeq (1,$(MAKELEVEL))
60df4642 51override LDFLAGS =
67d8712d
SK
52override MAKEFLAGS =
53endif
54
a8ba798b 55BUILD := $(O)
56ifndef BUILD
57 BUILD := $(KBUILD_OUTPUT)
58endif
59ifndef BUILD
60 BUILD := $(shell pwd)
61endif
62
63export BUILD
274343ad 64all:
a8ba798b 65 for TARGET in $(TARGETS); do \
66 BUILD_TARGET=$$BUILD/$$TARGET; \
67 mkdir $$BUILD_TARGET -p; \
68 make OUTPUT=$$BUILD_TARGET -C $$TARGET;\
274343ad
FW
69 done;
70
cab6b056 71run_tests: all
f467f714 72 for TARGET in $(TARGETS); do \
a8ba798b 73 BUILD_TARGET=$$BUILD/$$TARGET; \
74 make OUTPUT=$$BUILD_TARGET -C $$TARGET run_tests;\
f467f714
FW
75 done;
76
ddddda9b
SK
77hotplug:
78 for TARGET in $(TARGETS_HOTPLUG); do \
a8ba798b 79 BUILD_TARGET=$$BUILD/$$TARGET; \
80 make OUTPUT=$$BUILD_TARGET -C $$TARGET;\
ddddda9b
SK
81 done;
82
83run_hotplug: hotplug
84 for TARGET in $(TARGETS_HOTPLUG); do \
a8ba798b 85 BUILD_TARGET=$$BUILD/$$TARGET; \
86 make OUTPUT=$$BUILD_TARGET -C $$TARGET run_full_test;\
ddddda9b
SK
87 done;
88
89clean_hotplug:
90 for TARGET in $(TARGETS_HOTPLUG); do \
a8ba798b 91 BUILD_TARGET=$$BUILD/$$TARGET; \
92 make OUTPUT=$$BUILD_TARGET -C $$TARGET clean;\
ddddda9b
SK
93 done;
94
f615e2bb
HT
95run_pstore_crash:
96 make -C pstore run_crash
97
32dcfba6
ME
98INSTALL_PATH ?= install
99INSTALL_PATH := $(abspath $(INSTALL_PATH))
100ALL_SCRIPT := $(INSTALL_PATH)/run_kselftest.sh
101
102install:
103ifdef INSTALL_PATH
104 @# Ask all targets to install their files
105 mkdir -p $(INSTALL_PATH)
106 for TARGET in $(TARGETS); do \
a8ba798b 107 BUILD_TARGET=$$BUILD/$$TARGET; \
108 make OUTPUT=$$BUILD_TARGET -C $$TARGET INSTALL_PATH=$(INSTALL_PATH)/$$TARGET install; \
32dcfba6
ME
109 done;
110
111 @# Ask all targets to emit their test scripts
a2b1e8a2 112 echo "#!/bin/sh" > $(ALL_SCRIPT)
32dcfba6
ME
113 echo "cd \$$(dirname \$$0)" >> $(ALL_SCRIPT)
114 echo "ROOT=\$$PWD" >> $(ALL_SCRIPT)
115
116 for TARGET in $(TARGETS); do \
a8ba798b 117 BUILD_TARGET=$$BUILD/$$TARGET; \
32dcfba6
ME
118 echo "echo ; echo Running tests in $$TARGET" >> $(ALL_SCRIPT); \
119 echo "echo ========================================" >> $(ALL_SCRIPT); \
120 echo "cd $$TARGET" >> $(ALL_SCRIPT); \
a8ba798b 121 make -s --no-print-directory OUTPUT=$$BUILD_TARGET -C $$TARGET emit_tests >> $(ALL_SCRIPT); \
32dcfba6
ME
122 echo "cd \$$ROOT" >> $(ALL_SCRIPT); \
123 done;
124
125 chmod u+x $(ALL_SCRIPT)
126else
127 $(error Error: set INSTALL_PATH to use install)
128endif
129
274343ad
FW
130clean:
131 for TARGET in $(TARGETS); do \
a8ba798b 132 BUILD_TARGET=$$BUILD/$$TARGET; \
133 make OUTPUT=$$BUILD_TARGET -C $$TARGET clean;\
274343ad 134 done;
32dcfba6
ME
135
136.PHONY: install