2016-10-17 15:28:36 +03:00
TARGETS = bpf
TARGETS += breakpoints
2015-11-17 17:35:42 +03:00
TARGETS += capabilities
2017-01-13 09:36:45 +03:00
TARGETS += cpufreq
2013-05-01 02:27:06 +04:00
TARGETS += cpu-hotplug
TARGETS += efivarfs
2014-12-19 03:17:43 +03:00
TARGETS += exec
TARGETS += firmware
TARGETS += ftrace
2015-05-13 07:07:55 +03:00
TARGETS += futex
2016-11-21 13:16:11 +03:00
TARGETS += gpio
2017-01-11 18:16:07 +03:00
TARGETS += intel_pstate
2015-11-17 17:35:43 +03:00
TARGETS += ipc
2013-02-28 05:05:56 +04:00
TARGETS += kcmp
2015-11-07 03:30:32 +03:00
TARGETS += lib
2015-09-11 23:07:42 +03:00
TARGETS += membarrier
2014-08-09 01:25:32 +04:00
TARGETS += memfd
2013-05-01 02:27:06 +04:00
TARGETS += memory-hotplug
2014-07-30 02:50:44 +04:00
TARGETS += mount
2014-12-19 03:17:43 +03:00
TARGETS += mqueue
2013-03-20 23:07:56 +04:00
TARGETS += net
2016-09-06 10:47:16 +03:00
TARGETS += nsfs
2014-12-19 03:17:43 +03:00
TARGETS += powerpc
2015-10-02 14:46:39 +03:00
TARGETS += pstore
2013-05-01 02:28:00 +04:00
TARGETS += ptrace
2015-06-16 20:54:14 +03:00
TARGETS += seccomp
2016-04-14 23:20:05 +03:00
TARGETS += sigaltstack
2014-12-19 03:17:43 +03:00
TARGETS += size
2017-02-19 06:07:24 +03:00
TARGETS += splice
2015-09-09 16:06:25 +03:00
TARGETS += static_keys
2016-10-19 15:49:48 +03:00
TARGETS += sync
2014-12-19 03:17:43 +03:00
TARGETS += sysctl
2015-06-19 22:13:43 +03:00
i f n e q ( 1 , $( quicktest ) )
2013-06-28 04:06:43 +04:00
TARGETS += timers
2015-06-19 22:13:43 +03:00
e n d i f
2014-01-24 03:54:38 +04:00
TARGETS += user
2014-12-19 03:17:43 +03:00
TARGETS += vm
2015-04-07 09:11:06 +03:00
TARGETS += x86
2015-08-18 10:01:59 +03:00
TARGETS += zram
2014-12-19 03:17:43 +03:00
#Please keep the TARGETS list alphabetically sorted
2015-06-19 22:13:43 +03:00
# Run "make quicktest=1 run_tests" or
2017-04-14 02:43:16 +03:00
# "make quicktest=1 kselftest" from top level Makefile
2012-01-13 05:20:44 +04:00
2014-07-02 19:51:38 +04:00
TARGETS_HOTPLUG = cpu-hotplug
TARGETS_HOTPLUG += memory-hotplug
2015-03-18 20:57:39 +03:00
# Clear LDFLAGS and MAKEFLAGS if called from main
# Makefile to avoid test build failures when test
# Makefile doesn't have explicit build rules.
i f e q ( 1 , $( MAKELEVEL ) )
2015-05-14 22:55:18 +03:00
o v e r r i d e LDFLAGS =
2015-03-18 20:57:39 +03:00
o v e r r i d e MAKEFLAGS =
e n d i f
2017-09-08 04:57:43 +03:00
i f n e q ( $( KBUILD_SRC ) , )
o v e r r i d e LDFLAGS =
e n d i f
2016-11-29 14:55:52 +03:00
BUILD := $( O)
i f n d e f B U I L D
BUILD := $( KBUILD_OUTPUT)
e n d i f
i f n d e f B U I L D
BUILD := $( shell pwd )
e n d i f
export BUILD
2012-01-13 05:20:44 +04:00
all :
2016-11-29 14:55:52 +03:00
for TARGET in $( TARGETS) ; do \
BUILD_TARGET = $$ BUILD/$$ TARGET; \
mkdir $$ BUILD_TARGET -p; \
make OUTPUT = $$ BUILD_TARGET -C $$ TARGET; \
2012-01-13 05:20:44 +04:00
done ;
2012-03-29 01:42:54 +04:00
run_tests : all
2012-03-29 01:42:54 +04:00
for TARGET in $( TARGETS) ; do \
2016-11-29 14:55:52 +03:00
BUILD_TARGET = $$ BUILD/$$ TARGET; \
make OUTPUT = $$ BUILD_TARGET -C $$ TARGET run_tests; \
2012-03-29 01:42:54 +04:00
done ;
2014-07-02 19:51:38 +04:00
hotplug :
for TARGET in $( TARGETS_HOTPLUG) ; do \
2016-11-29 14:55:52 +03:00
BUILD_TARGET = $$ BUILD/$$ TARGET; \
make OUTPUT = $$ BUILD_TARGET -C $$ TARGET; \
2014-07-02 19:51:38 +04:00
done ;
run_hotplug : hotplug
for TARGET in $( TARGETS_HOTPLUG) ; do \
2016-11-29 14:55:52 +03:00
BUILD_TARGET = $$ BUILD/$$ TARGET; \
make OUTPUT = $$ BUILD_TARGET -C $$ TARGET run_full_test; \
2014-07-02 19:51:38 +04:00
done ;
clean_hotplug :
for TARGET in $( TARGETS_HOTPLUG) ; do \
2016-11-29 14:55:52 +03:00
BUILD_TARGET = $$ BUILD/$$ TARGET; \
make OUTPUT = $$ BUILD_TARGET -C $$ TARGET clean; \
2014-07-02 19:51:38 +04:00
done ;
2015-10-02 14:46:41 +03:00
run_pstore_crash :
make -C pstore run_crash
2015-03-11 07:06:00 +03:00
INSTALL_PATH ?= install
INSTALL_PATH := $( abspath $( INSTALL_PATH) )
ALL_SCRIPT := $( INSTALL_PATH) /run_kselftest.sh
install :
i f d e f I N S T A L L _ P A T H
@# Ask all targets to install their files
mkdir -p $( INSTALL_PATH)
for TARGET in $( TARGETS) ; do \
2016-11-29 14:55:52 +03:00
BUILD_TARGET = $$ BUILD/$$ TARGET; \
make OUTPUT = $$ BUILD_TARGET -C $$ TARGET INSTALL_PATH = $( INSTALL_PATH) /$$ TARGET install; \
2015-03-11 07:06:00 +03:00
done ;
@# Ask all targets to emit their test scripts
2016-12-14 13:59:34 +03:00
echo "#!/bin/sh" > $( ALL_SCRIPT)
2015-03-11 07:06:00 +03:00
echo " cd \$ $( dirname \$ $0 ) " >> $( ALL_SCRIPT)
echo " ROOT=\$ $PWD " >> $( ALL_SCRIPT)
for TARGET in $( TARGETS) ; do \
2016-11-29 14:55:52 +03:00
BUILD_TARGET = $$ BUILD/$$ TARGET; \
2015-03-11 07:06:00 +03:00
echo " echo ; echo Running tests in $$ TARGET " >> $( ALL_SCRIPT) ; \
echo "echo ========================================" >> $( ALL_SCRIPT) ; \
echo " cd $$ TARGET " >> $( ALL_SCRIPT) ; \
2016-11-29 14:55:52 +03:00
make -s --no-print-directory OUTPUT = $$ BUILD_TARGET -C $$ TARGET emit_tests >> $( ALL_SCRIPT) ; \
2015-03-11 07:06:00 +03:00
echo " cd \$ $ROOT " >> $( ALL_SCRIPT) ; \
done ;
chmod u+x $( ALL_SCRIPT)
e l s e
$( error Error: set INSTALL_PATH to use install)
e n d i f
2012-01-13 05:20:44 +04:00
clean :
for TARGET in $( TARGETS) ; do \
2016-11-29 14:55:52 +03:00
BUILD_TARGET = $$ BUILD/$$ TARGET; \
make OUTPUT = $$ BUILD_TARGET -C $$ TARGET clean; \
2012-01-13 05:20:44 +04:00
done ;
2015-03-11 07:06:00 +03:00
2017-04-14 02:44:46 +03:00
.PHONY : all run_tests hotplug run_hotplug clean_hotplug run_pstore_crash install clean