Commit 7e473891 authored by Ricardo B. Marlière's avatar Ricardo B. Marlière Committed by Shuah Khan
Browse files

selftests: Preserve subtarget failures in all/install



Track failures explicitly in the top-level selftests all/install loops.

The current code multiplies `ret` by each sub-make exit status. For
example, with `TARGETS=net`, the implicit `net/lib` dependency runs after
`net`, so a failed `net` build can be followed by a successful `net/lib`
build and reset the final result to success.

Set `ret` to 1 on any non-zero sub-make exit code and keep it sticky, so
the top-level make returns failure when any selected selftest target
fails.

Signed-off-by: default avatarRicardo B. Marlière <rbm@suse.com>
Link: https://lore.kernel.org/r/20260320-selftests-fixes-v1-5-79144f76be01@suse.com


Signed-off-by: default avatarShuah Khan <skhan@linuxfoundation.org>
parent d6ea9f40
Loading
Loading
Loading
Loading
+4 −4
Original line number Diff line number Diff line
@@ -209,14 +209,14 @@ export KHDR_INCLUDES
.DEFAULT_GOAL := all

all:
	@ret=1;							\
	@ret=0;							\
	for TARGET in $(TARGETS) $(INSTALL_DEP_TARGETS); do	\
		BUILD_TARGET=$$BUILD/$$TARGET;			\
		mkdir $$BUILD_TARGET  -p;			\
		$(MAKE) OUTPUT=$$BUILD_TARGET -C $$TARGET	\
				O=$(abs_objtree)		\
				$(if $(FORCE_TARGETS),|| exit);	\
		ret=$$((ret * $$?));				\
		[ $$? -eq 0 ] || ret=1;			\
	done; exit $$ret;

run_tests: all
@@ -274,7 +274,7 @@ ifdef INSTALL_PATH
	install -m 744 kselftest/ksft.py $(INSTALL_PATH)/kselftest/
	install -m 744 run_kselftest.sh $(INSTALL_PATH)/
	rm -f $(TEST_LIST)
	@ret=1;	\
	@ret=0;	\
	for TARGET in $(TARGETS) $(INSTALL_DEP_TARGETS); do \
		BUILD_TARGET=$$BUILD/$$TARGET;	\
		$(MAKE) OUTPUT=$$BUILD_TARGET -C $$TARGET install \
@@ -283,7 +283,7 @@ ifdef INSTALL_PATH
				OBJ_PATH=$(INSTALL_PATH) \
				O=$(abs_objtree)		\
				$(if $(FORCE_TARGETS),|| exit);	\
		ret=$$((ret * $$?));		\
		[ $$? -eq 0 ] || ret=1;		\
	done; exit $$ret;