mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-08-23 09:19:51 +00:00
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>
This commit is contained in:
parent
5744de542d
commit
6faeeea44b
8 changed files with 74 additions and 83 deletions
|
@ -22,10 +22,25 @@ all: $(TARGETS)
|
||||||
$(TARGETS):
|
$(TARGETS):
|
||||||
$(MAKE) -k -C $@ all
|
$(MAKE) -k -C $@ all
|
||||||
|
|
||||||
run_tests: all
|
include ../lib.mk
|
||||||
|
|
||||||
|
override define RUN_TESTS
|
||||||
@for TARGET in $(TARGETS); do \
|
@for TARGET in $(TARGETS); do \
|
||||||
$(MAKE) -C $$TARGET run_tests; \
|
$(MAKE) -C $$TARGET run_tests; \
|
||||||
done;
|
done;
|
||||||
|
endef
|
||||||
|
|
||||||
|
override define INSTALL_RULE
|
||||||
|
@for TARGET in $(TARGETS); do \
|
||||||
|
$(MAKE) -C $$TARGET install; \
|
||||||
|
done;
|
||||||
|
endef
|
||||||
|
|
||||||
|
override define EMIT_TESTS
|
||||||
|
@for TARGET in $(TARGETS); do \
|
||||||
|
$(MAKE) -s -C $$TARGET emit_tests; \
|
||||||
|
done;
|
||||||
|
endef
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
@for TARGET in $(TARGETS); do \
|
@for TARGET in $(TARGETS); do \
|
||||||
|
@ -36,4 +51,4 @@ clean:
|
||||||
tags:
|
tags:
|
||||||
find . -name '*.c' -o -name '*.h' | xargs ctags
|
find . -name '*.c' -o -name '*.h' | xargs ctags
|
||||||
|
|
||||||
.PHONY: all run_tests clean tags $(TARGETS)
|
.PHONY: tags $(TARGETS)
|
||||||
|
|
|
@ -6,24 +6,19 @@ CFLAGS += -D SELFTEST
|
||||||
# Use our CFLAGS for the implicit .S rule
|
# Use our CFLAGS for the implicit .S rule
|
||||||
ASFLAGS = $(CFLAGS)
|
ASFLAGS = $(CFLAGS)
|
||||||
|
|
||||||
PROGS := copyuser_64 copyuser_power7 memcpy_64 memcpy_power7
|
TEST_PROGS := copyuser_64 copyuser_power7 memcpy_64 memcpy_power7
|
||||||
EXTRA_SOURCES := validate.c ../harness.c
|
EXTRA_SOURCES := validate.c ../harness.c
|
||||||
|
|
||||||
all: $(PROGS)
|
all: $(TEST_PROGS)
|
||||||
|
|
||||||
copyuser_64: CPPFLAGS += -D COPY_LOOP=test___copy_tofrom_user_base
|
copyuser_64: CPPFLAGS += -D COPY_LOOP=test___copy_tofrom_user_base
|
||||||
copyuser_power7: CPPFLAGS += -D COPY_LOOP=test___copy_tofrom_user_power7
|
copyuser_power7: CPPFLAGS += -D COPY_LOOP=test___copy_tofrom_user_power7
|
||||||
memcpy_64: CPPFLAGS += -D COPY_LOOP=test_memcpy
|
memcpy_64: CPPFLAGS += -D COPY_LOOP=test_memcpy
|
||||||
memcpy_power7: CPPFLAGS += -D COPY_LOOP=test_memcpy_power7
|
memcpy_power7: CPPFLAGS += -D COPY_LOOP=test_memcpy_power7
|
||||||
|
|
||||||
$(PROGS): $(EXTRA_SOURCES)
|
$(TEST_PROGS): $(EXTRA_SOURCES)
|
||||||
|
|
||||||
run_tests: all
|
include ../../lib.mk
|
||||||
@-for PROG in $(PROGS); do \
|
|
||||||
./$$PROG; \
|
|
||||||
done;
|
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
rm -f $(PROGS) *.o
|
rm -f $(TEST_PROGS) *.o
|
||||||
|
|
||||||
.PHONY: all run_tests clean
|
|
||||||
|
|
|
@ -1,21 +1,16 @@
|
||||||
noarg:
|
noarg:
|
||||||
$(MAKE) -C ../
|
$(MAKE) -C ../
|
||||||
|
|
||||||
PROGS := hugetlb_vs_thp_test subpage_prot
|
TEST_PROGS := hugetlb_vs_thp_test subpage_prot
|
||||||
|
|
||||||
all: $(PROGS) tempfile
|
all: $(TEST_PROGS) tempfile
|
||||||
|
|
||||||
$(PROGS): ../harness.c
|
$(TEST_PROGS): ../harness.c
|
||||||
|
|
||||||
run_tests: all
|
include ../../lib.mk
|
||||||
@-for PROG in $(PROGS); do \
|
|
||||||
./$$PROG; \
|
|
||||||
done;
|
|
||||||
|
|
||||||
tempfile:
|
tempfile:
|
||||||
dd if=/dev/zero of=tempfile bs=64k count=1
|
dd if=/dev/zero of=tempfile bs=64k count=1
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
rm -f $(PROGS) tempfile
|
rm -f $(TEST_PROGS) tempfile
|
||||||
|
|
||||||
.PHONY: all run_tests clean
|
|
||||||
|
|
|
@ -1,38 +1,42 @@
|
||||||
noarg:
|
noarg:
|
||||||
$(MAKE) -C ../
|
$(MAKE) -C ../
|
||||||
|
|
||||||
PROGS := count_instructions l3_bank_test per_event_excludes
|
TEST_PROGS := count_instructions l3_bank_test per_event_excludes
|
||||||
EXTRA_SOURCES := ../harness.c event.c lib.c
|
EXTRA_SOURCES := ../harness.c event.c lib.c
|
||||||
|
|
||||||
SUB_TARGETS = ebb
|
all: $(TEST_PROGS) ebb
|
||||||
|
|
||||||
all: $(PROGS) $(SUB_TARGETS)
|
$(TEST_PROGS): $(EXTRA_SOURCES)
|
||||||
|
|
||||||
$(PROGS): $(EXTRA_SOURCES)
|
|
||||||
|
|
||||||
# loop.S can only be built 64-bit
|
# loop.S can only be built 64-bit
|
||||||
count_instructions: loop.S count_instructions.c $(EXTRA_SOURCES)
|
count_instructions: loop.S count_instructions.c $(EXTRA_SOURCES)
|
||||||
$(CC) $(CFLAGS) -m64 -o $@ $^
|
$(CC) $(CFLAGS) -m64 -o $@ $^
|
||||||
|
|
||||||
run_tests: all sub_run_tests
|
include ../../lib.mk
|
||||||
@-for PROG in $(PROGS); do \
|
|
||||||
./$$PROG; \
|
|
||||||
done;
|
|
||||||
|
|
||||||
clean: sub_clean
|
DEFAULT_RUN_TESTS := $(RUN_TESTS)
|
||||||
rm -f $(PROGS) loop.o
|
override define RUN_TESTS
|
||||||
|
$(DEFAULT_RUN_TESTS)
|
||||||
|
$(MAKE) -C ebb run_tests
|
||||||
|
endef
|
||||||
|
|
||||||
$(SUB_TARGETS):
|
DEFAULT_EMIT_TESTS := $(EMIT_TESTS)
|
||||||
|
override define EMIT_TESTS
|
||||||
|
$(DEFAULT_EMIT_TESTS)
|
||||||
|
$(MAKE) -s -C ebb emit_tests
|
||||||
|
endef
|
||||||
|
|
||||||
|
DEFAULT_INSTALL := $(INSTALL_RULE)
|
||||||
|
override define INSTALL_RULE
|
||||||
|
$(DEFAULT_INSTALL_RULE)
|
||||||
|
$(MAKE) -C ebb install
|
||||||
|
endef
|
||||||
|
|
||||||
|
clean:
|
||||||
|
rm -f $(TEST_PROGS) loop.o
|
||||||
|
$(MAKE) -C ebb clean
|
||||||
|
|
||||||
|
ebb:
|
||||||
$(MAKE) -k -C $@ all
|
$(MAKE) -k -C $@ all
|
||||||
|
|
||||||
sub_run_tests: all
|
.PHONY: all run_tests clean ebb
|
||||||
@for TARGET in $(SUB_TARGETS); do \
|
|
||||||
$(MAKE) -C $$TARGET run_tests; \
|
|
||||||
done;
|
|
||||||
|
|
||||||
sub_clean:
|
|
||||||
@for TARGET in $(SUB_TARGETS); do \
|
|
||||||
$(MAKE) -C $$TARGET clean; \
|
|
||||||
done;
|
|
||||||
|
|
||||||
.PHONY: all run_tests clean sub_run_tests sub_clean $(SUB_TARGETS)
|
|
||||||
|
|
|
@ -4,7 +4,7 @@ noarg:
|
||||||
# The EBB handler is 64-bit code and everything links against it
|
# The EBB handler is 64-bit code and everything links against it
|
||||||
CFLAGS += -m64
|
CFLAGS += -m64
|
||||||
|
|
||||||
PROGS := reg_access_test event_attributes_test cycles_test \
|
TEST_PROGS := reg_access_test event_attributes_test cycles_test \
|
||||||
cycles_with_freeze_test pmc56_overflow_test \
|
cycles_with_freeze_test pmc56_overflow_test \
|
||||||
ebb_vs_cpu_event_test cpu_event_vs_ebb_test \
|
ebb_vs_cpu_event_test cpu_event_vs_ebb_test \
|
||||||
cpu_event_pinned_vs_ebb_test task_event_vs_ebb_test \
|
cpu_event_pinned_vs_ebb_test task_event_vs_ebb_test \
|
||||||
|
@ -16,18 +16,15 @@ PROGS := reg_access_test event_attributes_test cycles_test \
|
||||||
lost_exception_test no_handler_test \
|
lost_exception_test no_handler_test \
|
||||||
cycles_with_mmcr2_test
|
cycles_with_mmcr2_test
|
||||||
|
|
||||||
all: $(PROGS)
|
all: $(TEST_PROGS)
|
||||||
|
|
||||||
$(PROGS): ../../harness.c ../event.c ../lib.c ebb.c ebb_handler.S trace.c busy_loop.S
|
$(TEST_PROGS): ../../harness.c ../event.c ../lib.c ebb.c ebb_handler.S trace.c busy_loop.S
|
||||||
|
|
||||||
instruction_count_test: ../loop.S
|
instruction_count_test: ../loop.S
|
||||||
|
|
||||||
lost_exception_test: ../lib.c
|
lost_exception_test: ../lib.c
|
||||||
|
|
||||||
run_tests: all
|
include ../../../lib.mk
|
||||||
@-for PROG in $(PROGS); do \
|
|
||||||
./$$PROG; \
|
|
||||||
done;
|
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
rm -f $(PROGS)
|
rm -f $(TEST_PROGS)
|
||||||
|
|
|
@ -1,17 +1,12 @@
|
||||||
CFLAGS += -I$(CURDIR)
|
CFLAGS += -I$(CURDIR)
|
||||||
|
|
||||||
PROGS := load_unaligned_zeropad
|
TEST_PROGS := load_unaligned_zeropad
|
||||||
|
|
||||||
all: $(PROGS)
|
all: $(TEST_PROGS)
|
||||||
|
|
||||||
$(PROGS): ../harness.c
|
$(TEST_PROGS): ../harness.c
|
||||||
|
|
||||||
run_tests: all
|
include ../../lib.mk
|
||||||
@-for PROG in $(PROGS); do \
|
|
||||||
./$$PROG; \
|
|
||||||
done;
|
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
rm -f $(PROGS) *.o
|
rm -f $(TEST_PROGS) *.o
|
||||||
|
|
||||||
.PHONY: all run_tests clean
|
|
||||||
|
|
|
@ -2,19 +2,14 @@
|
||||||
CFLAGS += -m64
|
CFLAGS += -m64
|
||||||
CFLAGS += -I$(CURDIR)
|
CFLAGS += -I$(CURDIR)
|
||||||
|
|
||||||
PROGS := memcmp
|
TEST_PROGS := memcmp
|
||||||
EXTRA_SOURCES := memcmp_64.S ../harness.c
|
EXTRA_SOURCES := memcmp_64.S ../harness.c
|
||||||
|
|
||||||
all: $(PROGS)
|
all: $(TEST_PROGS)
|
||||||
|
|
||||||
$(PROGS): $(EXTRA_SOURCES)
|
$(TEST_PROGS): $(EXTRA_SOURCES)
|
||||||
|
|
||||||
run_tests: all
|
include ../../lib.mk
|
||||||
@-for PROG in $(PROGS); do \
|
|
||||||
./$$PROG; \
|
|
||||||
done;
|
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
rm -f $(PROGS) *.o
|
rm -f $(TEST_PROGS) *.o
|
||||||
|
|
||||||
.PHONY: all run_tests clean
|
|
||||||
|
|
|
@ -1,15 +1,10 @@
|
||||||
PROGS := tm-resched-dscr
|
TEST_PROGS := tm-resched-dscr
|
||||||
|
|
||||||
all: $(PROGS)
|
all: $(TEST_PROGS)
|
||||||
|
|
||||||
$(PROGS): ../harness.c
|
$(TEST_PROGS): ../harness.c
|
||||||
|
|
||||||
run_tests: all
|
include ../../lib.mk
|
||||||
@-for PROG in $(PROGS); do \
|
|
||||||
./$$PROG; \
|
|
||||||
done;
|
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
rm -f $(PROGS) *.o
|
rm -f $(TEST_PROGS) *.o
|
||||||
|
|
||||||
.PHONY: all run_tests clean
|
|
||||||
|
|
Loading…
Reference in a new issue