1 # SPDX-License-Identifier: GPL-2.0
5 TARGETS
+= capabilities
10 TARGETS
+= filesystems
15 TARGETS
+= intel_pstate
21 TARGETS
+= memory-hotplug
30 TARGETS
+= sigaltstack
33 TARGETS
+= static_keys
36 ifneq (1, $(quicktest
))
43 #Please keep the TARGETS list alphabetically sorted
44 # Run "make quicktest=1 run_tests" or
45 # "make quicktest=1 kselftest" from top level Makefile
47 TARGETS_HOTPLUG
= cpu-hotplug
48 TARGETS_HOTPLUG
+= memory-hotplug
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.
58 ifneq ($(KBUILD_SRC
),)
64 BUILD
:= $(KBUILD_OUTPUT
)
72 @for TARGET in
$(TARGETS
); do \
73 BUILD_TARGET
=$$BUILD/$$TARGET; \
74 mkdir
$$BUILD_TARGET -p
; \
75 make OUTPUT
=$$BUILD_TARGET -C
$$TARGET;\
79 @for TARGET in
$(TARGETS
); do \
80 BUILD_TARGET
=$$BUILD/$$TARGET; \
81 make OUTPUT
=$$BUILD_TARGET -C
$$TARGET run_tests
;\
85 @for TARGET in
$(TARGETS_HOTPLUG
); do \
86 BUILD_TARGET
=$$BUILD/$$TARGET; \
87 make OUTPUT
=$$BUILD_TARGET -C
$$TARGET;\
91 @for TARGET in
$(TARGETS_HOTPLUG
); do \
92 BUILD_TARGET
=$$BUILD/$$TARGET; \
93 make OUTPUT
=$$BUILD_TARGET -C
$$TARGET run_full_test
;\
97 @for TARGET in
$(TARGETS_HOTPLUG
); do \
98 BUILD_TARGET
=$$BUILD/$$TARGET; \
99 make OUTPUT
=$$BUILD_TARGET -C
$$TARGET clean;\
103 make
-C pstore run_crash
105 INSTALL_PATH ?
= install
106 INSTALL_PATH
:= $(abspath
$(INSTALL_PATH
))
107 ALL_SCRIPT
:= $(INSTALL_PATH
)/run_kselftest.sh
111 @
# Ask all targets to install their files
112 mkdir
-p
$(INSTALL_PATH
)
113 @for TARGET in
$(TARGETS
); do \
114 BUILD_TARGET
=$$BUILD/$$TARGET; \
115 make OUTPUT
=$$BUILD_TARGET -C
$$TARGET INSTALL_PATH
=$(INSTALL_PATH
)/$$TARGET install; \
118 @
# Ask all targets to emit their test scripts
119 echo
"#!/bin/sh" > $(ALL_SCRIPT
)
120 echo
"cd \$$(dirname \$$0)" >> $(ALL_SCRIPT
)
121 echo
"ROOT=\$$PWD" >> $(ALL_SCRIPT
)
123 for TARGET in
$(TARGETS
); do \
124 BUILD_TARGET
=$$BUILD/$$TARGET; \
125 echo
"echo ; echo Running tests in $$TARGET" >> $(ALL_SCRIPT
); \
126 echo
"echo ========================================" >> $(ALL_SCRIPT
); \
127 echo
"[ -w /dev/kmsg ] && echo \"kselftest: Running tests in $$TARGET\" >> /dev/kmsg" >> $(ALL_SCRIPT
); \
128 echo
"cd $$TARGET" >> $(ALL_SCRIPT
); \
129 make
-s
--no-print-directory OUTPUT
=$$BUILD_TARGET -C
$$TARGET emit_tests
>> $(ALL_SCRIPT
); \
130 echo
"cd \$$ROOT" >> $(ALL_SCRIPT
); \
133 chmod u
+x
$(ALL_SCRIPT
)
135 $(error Error
: set INSTALL_PATH to use
install)
139 @for TARGET in
$(TARGETS
); do \
140 BUILD_TARGET
=$$BUILD/$$TARGET; \
141 make OUTPUT
=$$BUILD_TARGET -C
$$TARGET clean;\
144 .PHONY
: all run_tests hotplug run_hotplug clean_hotplug run_pstore_crash
install clean