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