blob: 76faf5bf0b32fc5e2d03e43012af5c49378df520 [file] [log] [blame]
Andrew Morton66a01b92013-02-27 17:05:56 -08001TARGETS = breakpoints
Bamvor Jian Zhangf4ecb322015-11-17 22:35:42 +08002TARGETS += capabilities
Andrew Morton66a01b92013-02-27 17:05:56 -08003TARGETS += cpu-hotplug
Andrew Morton66a01b92013-02-27 17:05:56 -08004TARGETS += efivarfs
Andrew Morton96e869d2014-12-18 16:17:43 -08005TARGETS += exec
6TARGETS += firmware
7TARGETS += ftrace
Darren Hartecac1a72015-05-12 21:07:55 -07008TARGETS += futex
Bamvor Jian Zhang7e722472015-11-17 22:35:43 +08009TARGETS += ipc
Pavel Emelyanov58c7be82013-04-30 15:27:06 -070010TARGETS += kcmp
Kees Cook317dc342015-11-06 16:30:32 -080011TARGETS += lib
Pranith Kumarb6d97342015-09-11 13:07:42 -070012TARGETS += membarrier
David Herrmann4f5ce5e2014-08-08 14:25:32 -070013TARGETS += memfd
Pavel Emelyanov58c7be82013-04-30 15:27:06 -070014TARGETS += memory-hotplug
Eric W. Biedermandb181ce2014-07-29 15:50:44 -070015TARGETS += mount
Andrew Morton96e869d2014-12-18 16:17:43 -080016TARGETS += mqueue
David S. Millera6f68032013-03-20 15:07:56 -040017TARGETS += net
Andrey Vagin6ad92bf2016-09-06 00:47:16 -070018TARGETS += nsfs
Michael Ellerman0e56dac2013-08-06 17:42:35 +100019TARGETS += powerpc
Hiraku Toyookacc04a462015-10-02 20:46:39 +090020TARGETS += pstore
Andrew Morton96e869d2014-12-18 16:17:43 -080021TARGETS += ptrace
Kees Cookc99ee512015-06-16 10:54:14 -070022TARGETS += seccomp
Stas Sergeev19fd2862016-04-14 23:20:05 +030023TARGETS += sigaltstack
Tim Bird3ce51052014-12-03 10:42:21 -080024TARGETS += size
Bamvor Jian Zhang1087d012015-09-09 21:06:25 +080025TARGETS += static_keys
Andrew Morton96e869d2014-12-18 16:17:43 -080026TARGETS += sysctl
Shuah Khan2278e5e2015-06-19 13:13:43 -060027ifneq (1, $(quicktest))
Andrew Morton96e869d2014-12-18 16:17:43 -080028TARGETS += timers
Shuah Khan2278e5e2015-06-19 13:13:43 -060029endif
Andrew Morton96e869d2014-12-18 16:17:43 -080030TARGETS += user
31TARGETS += vm
Andy Lutomirski3f705df2015-04-06 23:11:06 -070032TARGETS += x86
Naresh Kambojuf21fb792015-08-18 12:31:59 +053033TARGETS += zram
Andrew Morton96e869d2014-12-18 16:17:43 -080034#Please keep the TARGETS list alphabetically sorted
Shuah Khan2278e5e2015-06-19 13:13:43 -060035# Run "make quicktest=1 run_tests" or
36# "make quicktest=1 kselftest from top level Makefile
Frederic Weisbecker274343a2012-01-12 17:20:44 -080037
Shuah Khanddddda92014-07-02 09:51:38 -060038TARGETS_HOTPLUG = cpu-hotplug
39TARGETS_HOTPLUG += memory-hotplug
40
Shuah Khan67d87122015-03-18 11:57:39 -060041# Clear LDFLAGS and MAKEFLAGS if called from main
42# Makefile to avoid test build failures when test
43# Makefile doesn't have explicit build rules.
44ifeq (1,$(MAKELEVEL))
Arnaldo Carvalho de Melo60df4642015-05-14 16:55:18 -030045override LDFLAGS =
Shuah Khan67d87122015-03-18 11:57:39 -060046override MAKEFLAGS =
47endif
48
Frederic Weisbecker274343a2012-01-12 17:20:44 -080049all:
50 for TARGET in $(TARGETS); do \
51 make -C $$TARGET; \
52 done;
53
Andrew Mortoncab6b052012-03-28 14:42:54 -070054run_tests: all
Frederic Weisbeckerf467f712012-03-28 14:42:54 -070055 for TARGET in $(TARGETS); do \
56 make -C $$TARGET run_tests; \
57 done;
58
Shuah Khanddddda92014-07-02 09:51:38 -060059hotplug:
60 for TARGET in $(TARGETS_HOTPLUG); do \
61 make -C $$TARGET; \
62 done;
63
64run_hotplug: hotplug
65 for TARGET in $(TARGETS_HOTPLUG); do \
66 make -C $$TARGET run_full_test; \
67 done;
68
69clean_hotplug:
70 for TARGET in $(TARGETS_HOTPLUG); do \
71 make -C $$TARGET clean; \
72 done;
73
Hiraku Toyookaf615e2b2015-10-02 20:46:41 +090074run_pstore_crash:
75 make -C pstore run_crash
76
Michael Ellerman32dcfba2015-03-11 15:06:00 +110077INSTALL_PATH ?= install
78INSTALL_PATH := $(abspath $(INSTALL_PATH))
79ALL_SCRIPT := $(INSTALL_PATH)/run_kselftest.sh
80
81install:
82ifdef INSTALL_PATH
83 @# Ask all targets to install their files
84 mkdir -p $(INSTALL_PATH)
85 for TARGET in $(TARGETS); do \
Michael Ellerman32dcfba2015-03-11 15:06:00 +110086 make -C $$TARGET INSTALL_PATH=$(INSTALL_PATH)/$$TARGET install; \
87 done;
88
89 @# Ask all targets to emit their test scripts
Rolf Eike Beer057ac442016-12-14 11:59:34 +010090 echo "#!/bin/sh" > $(ALL_SCRIPT)
Michael Ellerman32dcfba2015-03-11 15:06:00 +110091 echo "cd \$$(dirname \$$0)" >> $(ALL_SCRIPT)
92 echo "ROOT=\$$PWD" >> $(ALL_SCRIPT)
93
94 for TARGET in $(TARGETS); do \
95 echo "echo ; echo Running tests in $$TARGET" >> $(ALL_SCRIPT); \
96 echo "echo ========================================" >> $(ALL_SCRIPT); \
Michael Ellerman3feab922018-03-23 20:44:27 +110097 echo "[ -w /dev/kmsg ] && echo \"kselftest: Running tests in $$TARGET\" >> /dev/kmsg" >> $(ALL_SCRIPT); \
Michael Ellerman32dcfba2015-03-11 15:06:00 +110098 echo "cd $$TARGET" >> $(ALL_SCRIPT); \
99 make -s --no-print-directory -C $$TARGET emit_tests >> $(ALL_SCRIPT); \
100 echo "cd \$$ROOT" >> $(ALL_SCRIPT); \
101 done;
102
103 chmod u+x $(ALL_SCRIPT)
104else
105 $(error Error: set INSTALL_PATH to use install)
106endif
107
Frederic Weisbecker274343a2012-01-12 17:20:44 -0800108clean:
109 for TARGET in $(TARGETS); do \
110 make -C $$TARGET clean; \
111 done;
Michael Ellerman32dcfba2015-03-11 15:06:00 +1100112
113.PHONY: install