Home | History | Annotate | Download | only in selftests
      1 TARGETS = breakpoints
      2 TARGETS += capabilities
      3 TARGETS += cpu-hotplug
      4 TARGETS += efivarfs
      5 TARGETS += exec
      6 TARGETS += firmware
      7 TARGETS += ftrace
      8 TARGETS += futex
      9 TARGETS += ipc
     10 TARGETS += kcmp
     11 TARGETS += lib
     12 TARGETS += membarrier
     13 TARGETS += memfd
     14 TARGETS += memory-hotplug
     15 TARGETS += mount
     16 TARGETS += mqueue
     17 TARGETS += net
     18 TARGETS += powerpc
     19 TARGETS += pstore
     20 TARGETS += ptrace
     21 TARGETS += seccomp
     22 TARGETS += sigaltstack
     23 TARGETS += size
     24 TARGETS += static_keys
     25 TARGETS += sysctl
     26 ifneq (1, $(quicktest))
     27 TARGETS += timers
     28 endif
     29 TARGETS += user
     30 TARGETS += vm
     31 TARGETS += x86
     32 TARGETS += zram
     33 #Please keep the TARGETS list alphabetically sorted
     34 # Run "make quicktest=1 run_tests" or
     35 # "make quicktest=1 kselftest from top level Makefile
     36 
     37 TARGETS_HOTPLUG = cpu-hotplug
     38 TARGETS_HOTPLUG += memory-hotplug
     39 
     40 # Clear LDFLAGS and MAKEFLAGS if called from main
     41 # Makefile to avoid test build failures when test
     42 # Makefile doesn't have explicit build rules.
     43 ifeq (1,$(MAKELEVEL))
     44 override LDFLAGS =
     45 override MAKEFLAGS =
     46 endif
     47 
     48 all:
     49 	for TARGET in $(TARGETS); do \
     50 		make -C $$TARGET; \
     51 	done;
     52 
     53 run_tests: all
     54 	for TARGET in $(TARGETS); do \
     55 		make -C $$TARGET run_tests; \
     56 	done;
     57 
     58 hotplug:
     59 	for TARGET in $(TARGETS_HOTPLUG); do \
     60 		make -C $$TARGET; \
     61 	done;
     62 
     63 run_hotplug: hotplug
     64 	for TARGET in $(TARGETS_HOTPLUG); do \
     65 		make -C $$TARGET run_full_test; \
     66 	done;
     67 
     68 clean_hotplug:
     69 	for TARGET in $(TARGETS_HOTPLUG); do \
     70 		make -C $$TARGET clean; \
     71 	done;
     72 
     73 run_pstore_crash:
     74 	make -C pstore run_crash
     75 
     76 INSTALL_PATH ?= install
     77 INSTALL_PATH := $(abspath $(INSTALL_PATH))
     78 ALL_SCRIPT := $(INSTALL_PATH)/run_kselftest.sh
     79 
     80 install:
     81 ifdef INSTALL_PATH
     82 	@# Ask all targets to install their files
     83 	mkdir -p $(INSTALL_PATH)
     84 	for TARGET in $(TARGETS); do \
     85 		make -C $$TARGET INSTALL_PATH=$(INSTALL_PATH)/$$TARGET install; \
     86 	done;
     87 
     88 	@# Ask all targets to emit their test scripts
     89 	echo "#!/bin/bash" > $(ALL_SCRIPT)
     90 	echo "cd \$$(dirname \$$0)" >> $(ALL_SCRIPT)
     91 	echo "ROOT=\$$PWD" >> $(ALL_SCRIPT)
     92 
     93 	for TARGET in $(TARGETS); do \
     94 		echo "echo ; echo Running tests in $$TARGET" >> $(ALL_SCRIPT); \
     95 		echo "echo ========================================" >> $(ALL_SCRIPT); \
     96 		echo "cd $$TARGET" >> $(ALL_SCRIPT); \
     97 		make -s --no-print-directory -C $$TARGET emit_tests >> $(ALL_SCRIPT); \
     98 		echo "cd \$$ROOT" >> $(ALL_SCRIPT); \
     99 	done;
    100 
    101 	chmod u+x $(ALL_SCRIPT)
    102 else
    103 	$(error Error: set INSTALL_PATH to use install)
    104 endif
    105 
    106 clean:
    107 	for TARGET in $(TARGETS); do \
    108 		make -C $$TARGET clean; \
    109 	done;
    110 
    111 .PHONY: install
    112