Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

selftests: Add install support for the powerpc tests

The bulk of the selftests are actually below the powerpc sub directory.

This adds support for installing them, when on a powerpc machine, or if
ARCH and CROSS_COMPILE are set appropriately.

This is a little more complicated because of the sub directory structure
under powerpc, but much of the common logic in lib.mk is still used. The
net effect of the patch is still a reduction in code.

Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Signed-off-by: Shuah Khan <shuahkh@osg.samsung.com>

authored by

Michael Ellerman and committed by
Shuah Khan
6faeeea4 5744de54

+74 -83
+17 -2
tools/testing/selftests/powerpc/Makefile
··· 22 22 $(TARGETS): 23 23 $(MAKE) -k -C $@ all 24 24 25 - run_tests: all 25 + include ../lib.mk 26 + 27 + override define RUN_TESTS 26 28 @for TARGET in $(TARGETS); do \ 27 29 $(MAKE) -C $$TARGET run_tests; \ 28 30 done; 31 + endef 32 + 33 + override define INSTALL_RULE 34 + @for TARGET in $(TARGETS); do \ 35 + $(MAKE) -C $$TARGET install; \ 36 + done; 37 + endef 38 + 39 + override define EMIT_TESTS 40 + @for TARGET in $(TARGETS); do \ 41 + $(MAKE) -s -C $$TARGET emit_tests; \ 42 + done; 43 + endef 29 44 30 45 clean: 31 46 @for TARGET in $(TARGETS); do \ ··· 51 36 tags: 52 37 find . -name '*.c' -o -name '*.h' | xargs ctags 53 38 54 - .PHONY: all run_tests clean tags $(TARGETS) 39 + .PHONY: tags $(TARGETS)
+5 -10
tools/testing/selftests/powerpc/copyloops/Makefile
··· 6 6 # Use our CFLAGS for the implicit .S rule 7 7 ASFLAGS = $(CFLAGS) 8 8 9 - PROGS := copyuser_64 copyuser_power7 memcpy_64 memcpy_power7 9 + TEST_PROGS := copyuser_64 copyuser_power7 memcpy_64 memcpy_power7 10 10 EXTRA_SOURCES := validate.c ../harness.c 11 11 12 - all: $(PROGS) 12 + all: $(TEST_PROGS) 13 13 14 14 copyuser_64: CPPFLAGS += -D COPY_LOOP=test___copy_tofrom_user_base 15 15 copyuser_power7: CPPFLAGS += -D COPY_LOOP=test___copy_tofrom_user_power7 16 16 memcpy_64: CPPFLAGS += -D COPY_LOOP=test_memcpy 17 17 memcpy_power7: CPPFLAGS += -D COPY_LOOP=test_memcpy_power7 18 18 19 - $(PROGS): $(EXTRA_SOURCES) 19 + $(TEST_PROGS): $(EXTRA_SOURCES) 20 20 21 - run_tests: all 22 - @-for PROG in $(PROGS); do \ 23 - ./$$PROG; \ 24 - done; 21 + include ../../lib.mk 25 22 26 23 clean: 27 - rm -f $(PROGS) *.o 28 - 29 - .PHONY: all run_tests clean 24 + rm -f $(TEST_PROGS) *.o
+5 -10
tools/testing/selftests/powerpc/mm/Makefile
··· 1 1 noarg: 2 2 $(MAKE) -C ../ 3 3 4 - PROGS := hugetlb_vs_thp_test subpage_prot 4 + TEST_PROGS := hugetlb_vs_thp_test subpage_prot 5 5 6 - all: $(PROGS) tempfile 6 + all: $(TEST_PROGS) tempfile 7 7 8 - $(PROGS): ../harness.c 8 + $(TEST_PROGS): ../harness.c 9 9 10 - run_tests: all 11 - @-for PROG in $(PROGS); do \ 12 - ./$$PROG; \ 13 - done; 10 + include ../../lib.mk 14 11 15 12 tempfile: 16 13 dd if=/dev/zero of=tempfile bs=64k count=1 17 14 18 15 clean: 19 - rm -f $(PROGS) tempfile 20 - 21 - .PHONY: all run_tests clean 16 + rm -f $(TEST_PROGS) tempfile
+27 -23
tools/testing/selftests/powerpc/pmu/Makefile
··· 1 1 noarg: 2 2 $(MAKE) -C ../ 3 3 4 - PROGS := count_instructions l3_bank_test per_event_excludes 4 + TEST_PROGS := count_instructions l3_bank_test per_event_excludes 5 5 EXTRA_SOURCES := ../harness.c event.c lib.c 6 6 7 - SUB_TARGETS = ebb 7 + all: $(TEST_PROGS) ebb 8 8 9 - all: $(PROGS) $(SUB_TARGETS) 10 - 11 - $(PROGS): $(EXTRA_SOURCES) 9 + $(TEST_PROGS): $(EXTRA_SOURCES) 12 10 13 11 # loop.S can only be built 64-bit 14 12 count_instructions: loop.S count_instructions.c $(EXTRA_SOURCES) 15 13 $(CC) $(CFLAGS) -m64 -o $@ $^ 16 14 17 - run_tests: all sub_run_tests 18 - @-for PROG in $(PROGS); do \ 19 - ./$$PROG; \ 20 - done; 15 + include ../../lib.mk 21 16 22 - clean: sub_clean 23 - rm -f $(PROGS) loop.o 17 + DEFAULT_RUN_TESTS := $(RUN_TESTS) 18 + override define RUN_TESTS 19 + $(DEFAULT_RUN_TESTS) 20 + $(MAKE) -C ebb run_tests 21 + endef 24 22 25 - $(SUB_TARGETS): 23 + DEFAULT_EMIT_TESTS := $(EMIT_TESTS) 24 + override define EMIT_TESTS 25 + $(DEFAULT_EMIT_TESTS) 26 + $(MAKE) -s -C ebb emit_tests 27 + endef 28 + 29 + DEFAULT_INSTALL := $(INSTALL_RULE) 30 + override define INSTALL_RULE 31 + $(DEFAULT_INSTALL_RULE) 32 + $(MAKE) -C ebb install 33 + endef 34 + 35 + clean: 36 + rm -f $(TEST_PROGS) loop.o 37 + $(MAKE) -C ebb clean 38 + 39 + ebb: 26 40 $(MAKE) -k -C $@ all 27 41 28 - sub_run_tests: all 29 - @for TARGET in $(SUB_TARGETS); do \ 30 - $(MAKE) -C $$TARGET run_tests; \ 31 - done; 32 - 33 - sub_clean: 34 - @for TARGET in $(SUB_TARGETS); do \ 35 - $(MAKE) -C $$TARGET clean; \ 36 - done; 37 - 38 - .PHONY: all run_tests clean sub_run_tests sub_clean $(SUB_TARGETS) 42 + .PHONY: all run_tests clean ebb
+5 -8
tools/testing/selftests/powerpc/pmu/ebb/Makefile
··· 4 4 # The EBB handler is 64-bit code and everything links against it 5 5 CFLAGS += -m64 6 6 7 - PROGS := reg_access_test event_attributes_test cycles_test \ 7 + TEST_PROGS := reg_access_test event_attributes_test cycles_test \ 8 8 cycles_with_freeze_test pmc56_overflow_test \ 9 9 ebb_vs_cpu_event_test cpu_event_vs_ebb_test \ 10 10 cpu_event_pinned_vs_ebb_test task_event_vs_ebb_test \ ··· 16 16 lost_exception_test no_handler_test \ 17 17 cycles_with_mmcr2_test 18 18 19 - all: $(PROGS) 19 + all: $(TEST_PROGS) 20 20 21 - $(PROGS): ../../harness.c ../event.c ../lib.c ebb.c ebb_handler.S trace.c busy_loop.S 21 + $(TEST_PROGS): ../../harness.c ../event.c ../lib.c ebb.c ebb_handler.S trace.c busy_loop.S 22 22 23 23 instruction_count_test: ../loop.S 24 24 25 25 lost_exception_test: ../lib.c 26 26 27 - run_tests: all 28 - @-for PROG in $(PROGS); do \ 29 - ./$$PROG; \ 30 - done; 27 + include ../../../lib.mk 31 28 32 29 clean: 33 - rm -f $(PROGS) 30 + rm -f $(TEST_PROGS)
+5 -10
tools/testing/selftests/powerpc/primitives/Makefile
··· 1 1 CFLAGS += -I$(CURDIR) 2 2 3 - PROGS := load_unaligned_zeropad 3 + TEST_PROGS := load_unaligned_zeropad 4 4 5 - all: $(PROGS) 5 + all: $(TEST_PROGS) 6 6 7 - $(PROGS): ../harness.c 7 + $(TEST_PROGS): ../harness.c 8 8 9 - run_tests: all 10 - @-for PROG in $(PROGS); do \ 11 - ./$$PROG; \ 12 - done; 9 + include ../../lib.mk 13 10 14 11 clean: 15 - rm -f $(PROGS) *.o 16 - 17 - .PHONY: all run_tests clean 12 + rm -f $(TEST_PROGS) *.o
+5 -10
tools/testing/selftests/powerpc/stringloops/Makefile
··· 2 2 CFLAGS += -m64 3 3 CFLAGS += -I$(CURDIR) 4 4 5 - PROGS := memcmp 5 + TEST_PROGS := memcmp 6 6 EXTRA_SOURCES := memcmp_64.S ../harness.c 7 7 8 - all: $(PROGS) 8 + all: $(TEST_PROGS) 9 9 10 - $(PROGS): $(EXTRA_SOURCES) 10 + $(TEST_PROGS): $(EXTRA_SOURCES) 11 11 12 - run_tests: all 13 - @-for PROG in $(PROGS); do \ 14 - ./$$PROG; \ 15 - done; 12 + include ../../lib.mk 16 13 17 14 clean: 18 - rm -f $(PROGS) *.o 19 - 20 - .PHONY: all run_tests clean 15 + rm -f $(TEST_PROGS) *.o
+5 -10
tools/testing/selftests/powerpc/tm/Makefile
··· 1 - PROGS := tm-resched-dscr 1 + TEST_PROGS := tm-resched-dscr 2 2 3 - all: $(PROGS) 3 + all: $(TEST_PROGS) 4 4 5 - $(PROGS): ../harness.c 5 + $(TEST_PROGS): ../harness.c 6 6 7 - run_tests: all 8 - @-for PROG in $(PROGS); do \ 9 - ./$$PROG; \ 10 - done; 7 + include ../../lib.mk 11 8 12 9 clean: 13 - rm -f $(PROGS) *.o 14 - 15 - .PHONY: all run_tests clean 10 + rm -f $(TEST_PROGS) *.o