summaryrefslogtreecommitdiff
path: root/tools/testing
diff options
context:
space:
mode:
authorRicardo B. Marlière <rbm@suse.com>2026-03-20 21:29:20 +0300
committerShuah Khan <skhan@linuxfoundation.org>2026-04-13 20:05:39 +0300
commit7e47389142b8ada66280be71e01a3238751086f0 (patch)
tree1afe49c16eef6265d107faca86183e9605e82401 /tools/testing
parentd6ea9f404b905ba7351d6b0e9ed611d9d0bf20f7 (diff)
downloadlinux-7e47389142b8ada66280be71e01a3238751086f0.tar.xz
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: Ricardo B. Marlière <rbm@suse.com> Link: https://lore.kernel.org/r/20260320-selftests-fixes-v1-5-79144f76be01@suse.com Signed-off-by: Shuah Khan <skhan@linuxfoundation.org>
Diffstat (limited to 'tools/testing')
-rw-r--r--tools/testing/selftests/Makefile8
1 files changed, 4 insertions, 4 deletions
diff --git a/tools/testing/selftests/Makefile b/tools/testing/selftests/Makefile
index 450f13ba4cca..0949f370ad78 100644
--- a/tools/testing/selftests/Makefile
+++ b/tools/testing/selftests/Makefile
@@ -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;