Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 6faeeea4 authored by Michael Ellerman's avatar Michael Ellerman Committed by Shuah Khan
Browse files

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: default avatarMichael Ellerman <mpe@ellerman.id.au>
Signed-off-by: default avatarShuah Khan <shuahkh@osg.samsung.com>
parent 5744de54
Loading
Loading
Loading
Loading
+17 −2
Original line number Diff line number Diff line
@@ -22,10 +22,25 @@ all: $(TARGETS)
$(TARGETS):
	$(MAKE) -k -C $@ all

run_tests: all
include ../lib.mk

override define RUN_TESTS
	@for TARGET in $(TARGETS); do \
		$(MAKE) -C $$TARGET run_tests; \
	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:
	@for TARGET in $(TARGETS); do \
@@ -36,4 +51,4 @@ clean:
tags:
	find . -name '*.c' -o -name '*.h' | xargs ctags

.PHONY: all run_tests clean tags $(TARGETS)
.PHONY: tags $(TARGETS)
+5 −10
Original line number Diff line number Diff line
@@ -6,24 +6,19 @@ CFLAGS += -D SELFTEST
# Use our CFLAGS for the implicit .S rule
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

all: $(PROGS)
all: $(TEST_PROGS)

copyuser_64:     CPPFLAGS += -D COPY_LOOP=test___copy_tofrom_user_base
copyuser_power7: CPPFLAGS += -D COPY_LOOP=test___copy_tofrom_user_power7
memcpy_64:       CPPFLAGS += -D COPY_LOOP=test_memcpy
memcpy_power7:   CPPFLAGS += -D COPY_LOOP=test_memcpy_power7

$(PROGS): $(EXTRA_SOURCES)
$(TEST_PROGS): $(EXTRA_SOURCES)

run_tests: all
	@-for PROG in $(PROGS); do \
		./$$PROG; \
	done;
include ../../lib.mk

clean:
	rm -f $(PROGS) *.o

.PHONY: all run_tests clean
	rm -f $(TEST_PROGS) *.o
+5 −10
Original line number Diff line number Diff line
noarg:
	$(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
	@-for PROG in $(PROGS); do \
		./$$PROG; \
	done;
include ../../lib.mk

tempfile:
	dd if=/dev/zero of=tempfile bs=64k count=1

clean:
	rm -f $(PROGS) tempfile

.PHONY: all run_tests clean
	rm -f $(TEST_PROGS) tempfile
+26 −22
Original line number Diff line number Diff line
noarg:
	$(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

SUB_TARGETS = ebb
all: $(TEST_PROGS) ebb

all: $(PROGS) $(SUB_TARGETS)

$(PROGS): $(EXTRA_SOURCES)
$(TEST_PROGS): $(EXTRA_SOURCES)

# loop.S can only be built 64-bit
count_instructions: loop.S count_instructions.c $(EXTRA_SOURCES)
	$(CC) $(CFLAGS) -m64 -o $@ $^

run_tests: all sub_run_tests
	@-for PROG in $(PROGS); do \
		./$$PROG; \
	done;
include ../../lib.mk

clean: sub_clean
	rm -f $(PROGS) loop.o
DEFAULT_RUN_TESTS := $(RUN_TESTS)
override define RUN_TESTS
	$(DEFAULT_RUN_TESTS)
	$(MAKE) -C ebb run_tests
endef

$(SUB_TARGETS):
	$(MAKE) -k -C $@ all
DEFAULT_EMIT_TESTS := $(EMIT_TESTS)
override define EMIT_TESTS
	$(DEFAULT_EMIT_TESTS)
	$(MAKE) -s -C ebb emit_tests
endef

sub_run_tests: all
	@for TARGET in $(SUB_TARGETS); do \
		$(MAKE) -C $$TARGET run_tests; \
	done;
DEFAULT_INSTALL := $(INSTALL_RULE)
override define INSTALL_RULE
	$(DEFAULT_INSTALL_RULE)
	$(MAKE) -C ebb install
endef

sub_clean:
	@for TARGET in $(SUB_TARGETS); do \
		$(MAKE) -C $$TARGET clean; \
	done;
clean:
	rm -f $(TEST_PROGS) loop.o
	$(MAKE) -C ebb clean

ebb:
	$(MAKE) -k -C $@ all

.PHONY: all run_tests clean sub_run_tests sub_clean $(SUB_TARGETS)
.PHONY: all run_tests clean ebb
+5 −8
Original line number Diff line number Diff line
@@ -4,7 +4,7 @@ noarg:
# The EBB handler is 64-bit code and everything links against it
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		\
	 ebb_vs_cpu_event_test cpu_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			\
	 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

lost_exception_test: ../lib.c

run_tests: all
	@-for PROG in $(PROGS); do \
		./$$PROG; \
	done;
include ../../../lib.mk

clean:
	rm -f $(PROGS)
	rm -f $(TEST_PROGS)
Loading