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

Commit a8ba798b authored by bamvor.zhangjian@huawei.com's avatar bamvor.zhangjian@huawei.com Committed by Shuah Khan
Browse files

selftests: enable O and KBUILD_OUTPUT



Enable O and KBUILD_OUTPUT for kselftest. User could compile kselftest
to another directory by passing O or KBUILD_OUTPUT. And O is high
priority than KBUILD_OUTPUT.

Signed-off-by: default avatarBamvor Jian Zhang <bamvor.zhangjian@linaro.org>
Signed-off-by: default avatarShuah Khan <shuahkh@osg.samsung.com>
parent 80d443e8
Loading
Loading
Loading
Loading
+27 −9
Original line number Diff line number Diff line
@@ -49,29 +49,44 @@ override LDFLAGS =
override MAKEFLAGS =
endif

BUILD := $(O)
ifndef BUILD
  BUILD := $(KBUILD_OUTPUT)
endif
ifndef BUILD
  BUILD := $(shell pwd)
endif

export BUILD
all:
	for TARGET in $(TARGETS); do		\
		make -C $$TARGET; \
		BUILD_TARGET=$$BUILD/$$TARGET;	\
		mkdir $$BUILD_TARGET  -p;	\
		make OUTPUT=$$BUILD_TARGET -C $$TARGET;\
	done;

run_tests: all
	for TARGET in $(TARGETS); do \
		make -C $$TARGET run_tests; \
		BUILD_TARGET=$$BUILD/$$TARGET;	\
		make OUTPUT=$$BUILD_TARGET -C $$TARGET run_tests;\
	done;

hotplug:
	for TARGET in $(TARGETS_HOTPLUG); do \
		make -C $$TARGET; \
		BUILD_TARGET=$$BUILD/$$TARGET;	\
		make OUTPUT=$$BUILD_TARGET -C $$TARGET;\
	done;

run_hotplug: hotplug
	for TARGET in $(TARGETS_HOTPLUG); do \
		make -C $$TARGET run_full_test; \
		BUILD_TARGET=$$BUILD/$$TARGET;	\
		make OUTPUT=$$BUILD_TARGET -C $$TARGET run_full_test;\
	done;

clean_hotplug:
	for TARGET in $(TARGETS_HOTPLUG); do \
		make -C $$TARGET clean; \
		BUILD_TARGET=$$BUILD/$$TARGET;	\
		make OUTPUT=$$BUILD_TARGET -C $$TARGET clean;\
	done;

run_pstore_crash:
@@ -86,7 +101,8 @@ ifdef INSTALL_PATH
	@# Ask all targets to install their files
	mkdir -p $(INSTALL_PATH)
	for TARGET in $(TARGETS); do \
		make -C $$TARGET INSTALL_PATH=$(INSTALL_PATH)/$$TARGET install; \
		BUILD_TARGET=$$BUILD/$$TARGET;	\
		make OUTPUT=$$BUILD_TARGET -C $$TARGET INSTALL_PATH=$(INSTALL_PATH)/$$TARGET install; \
	done;

	@# Ask all targets to emit their test scripts
@@ -95,10 +111,11 @@ ifdef INSTALL_PATH
	echo "ROOT=\$$PWD" >> $(ALL_SCRIPT)

	for TARGET in $(TARGETS); do \
		BUILD_TARGET=$$BUILD/$$TARGET;	\
		echo "echo ; echo Running tests in $$TARGET" >> $(ALL_SCRIPT); \
		echo "echo ========================================" >> $(ALL_SCRIPT); \
		echo "cd $$TARGET" >> $(ALL_SCRIPT); \
		make -s --no-print-directory -C $$TARGET emit_tests >> $(ALL_SCRIPT); \
		make -s --no-print-directory OUTPUT=$$BUILD_TARGET -C $$TARGET emit_tests >> $(ALL_SCRIPT); \
		echo "cd \$$ROOT" >> $(ALL_SCRIPT); \
	done;

@@ -109,7 +126,8 @@ endif

clean:
	for TARGET in $(TARGETS); do \
		make -C $$TARGET clean; \
		BUILD_TARGET=$$BUILD/$$TARGET;	\
		make OUTPUT=$$BUILD_TARGET -C $$TARGET clean;\
	done;

.PHONY: install
+7 −6
Original line number Diff line number Diff line
@@ -5,18 +5,19 @@ TEST_GEN_FILES := execveat.symlink execveat.denatured script subdir
# Makefile is a run-time dependency, since it's accessed by the execveat test
TEST_FILES := Makefile

EXTRA_CLEAN := subdir.moved execveat.moved xxxxx*
EXTRA_CLEAN := $(OUTPUT)/subdir.moved $(OUTPUT)/execveat.moved $(OUTPUT)/xxxxx*

include ../lib.mk

subdir:
$(OUTPUT)/subdir:
	mkdir -p $@
script:
$(OUTPUT)/script:
	echo '#!/bin/sh' > $@
	echo 'exit $$*' >> $@
	chmod +x $@
execveat.symlink: execveat
	ln -s -f $< $@
execveat.denatured: execveat
$(OUTPUT)/execveat.symlink: $(OUTPUT)/execveat
	cd $(OUTPUT) && ln -s -f $(shell basename $<) $(shell basename $@)
$(OUTPUT)/execveat.denatured: $(OUTPUT)/execveat
	cp $< $@
	chmod -x $@
+1 −1
Original line number Diff line number Diff line
@@ -2,6 +2,6 @@ all:

TEST_PROGS := ftracetest
TEST_FILES := test.d
EXTRA_CLEAN := logs/*
EXTRA_CLEAN := $(OUTPUT)/logs/*

include ../lib.mk
+16 −5
Original line number Diff line number Diff line
@@ -3,13 +3,18 @@ SUBDIRS := functional
TEST_PROGS := run.sh

.PHONY: all clean
all:
	for DIR in $(SUBDIRS); do $(MAKE) -C $$DIR $@ ; done

include ../lib.mk

all:
	for DIR in $(SUBDIRS); do		\
		BUILD_TARGET=$$OUTPUT/$$DIR;	\
		mkdir $$BUILD_TARGET  -p;	\
		make OUTPUT=$$BUILD_TARGET -C $$DIR $@;\
	done

override define RUN_TESTS
	./run.sh
	@if [ `dirname $(OUTPUT)` = $(PWD) ]; then ./run.sh; fi
endef

override define INSTALL_RULE
@@ -17,7 +22,9 @@ override define INSTALL_RULE
	install -t $(INSTALL_PATH) $(TEST_PROGS) $(TEST_PROGS_EXTENDED) $(TEST_FILES)

	@for SUBDIR in $(SUBDIRS); do \
		$(MAKE) -C $$SUBDIR INSTALL_PATH=$(INSTALL_PATH)/$$SUBDIR install; \
		BUILD_TARGET=$$OUTPUT/$$SUBDIR;	\
		mkdir $$BUILD_TARGET  -p;	\
		$(MAKE) OUTPUT=$$BUILD_TARGET -C $$SUBDIR INSTALL_PATH=$(INSTALL_PATH)/$$SUBDIR install; \
	done;
endef

@@ -26,4 +33,8 @@ override define EMIT_TESTS
endef

clean:
	for DIR in $(SUBDIRS); do $(MAKE) -C $$DIR $@ ; done
	for DIR in $(SUBDIRS); do		\
		BUILD_TARGET=$$OUTPUT/$$DIR;	\
		mkdir $$BUILD_TARGET  -p;	\
		make OUTPUT=$$BUILD_TARGET -C $$DIR $@;\
	done
+1 −1
Original line number Diff line number Diff line
@@ -2,7 +2,7 @@ CFLAGS += -I../../../../usr/include/

TEST_GEN_PROGS := kcmp_test

EXTRA_CLEAN := kcmp-test-file
EXTRA_CLEAN := $(OUTPUT)/kcmp-test-file

include ../lib.mk
Loading