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