selftests: allow detection of build failures
Commit 5f70bde26a
("selftests: fix build behaviour on targets' failures")
added a logic to track failure of builds of individual targets. However, it
does exactly the opposite of what a distro kernel needs: we create a RPM
package with a selected set of selftests and we need the build to fail if
build of any of the targets fail.
Both use cases are valid. A distribution kernel is in control of what is
included in the kernel and what is being built; any error needs to be
flagged and acted upon. A CI system that tries to build as many tests as
possible on the best effort basis is not really interested in a failure here
and there.
Support both use cases by introducing a FORCE_TARGETS variable. It is
switched off by default to make life for CI systems easier, distributions
can easily switch it on while building their packages.
Reported-by: Yauheni Kaliuta <yauheni.kaliuta@redhat.com>
Signed-off-by: Jiri Benc <jbenc@redhat.com>
Reviewed-by: Cristian Marussi <cristian.marussi@arm.com>
Tested-by: Cristian Marussi <cristian.marussi@arm.com>
Signed-off-by: Shuah Khan <skhan@linuxfoundation.org>
This commit is contained in:
Родитель
b32694cd07
Коммит
9d235a558c
|
@ -77,6 +77,12 @@ ifneq ($(SKIP_TARGETS),)
|
|||
override TARGETS := $(TMP)
|
||||
endif
|
||||
|
||||
# User can set FORCE_TARGETS to 1 to require all targets to be successfully
|
||||
# built; make will fail if any of the targets cannot be built. If
|
||||
# FORCE_TARGETS is not set (the default), make will succeed if at least one
|
||||
# of the targets gets built.
|
||||
FORCE_TARGETS ?=
|
||||
|
||||
# Clear LDFLAGS and MAKEFLAGS if called from main
|
||||
# Makefile to avoid test build failures when test
|
||||
# Makefile doesn't have explicit build rules.
|
||||
|
@ -151,7 +157,8 @@ all: khdr
|
|||
for TARGET in $(TARGETS); do \
|
||||
BUILD_TARGET=$$BUILD/$$TARGET; \
|
||||
mkdir $$BUILD_TARGET -p; \
|
||||
$(MAKE) OUTPUT=$$BUILD_TARGET -C $$TARGET; \
|
||||
$(MAKE) OUTPUT=$$BUILD_TARGET -C $$TARGET \
|
||||
$(if $(FORCE_TARGETS),|| exit); \
|
||||
ret=$$((ret * $$?)); \
|
||||
done; exit $$ret;
|
||||
|
||||
|
@ -205,7 +212,8 @@ ifdef INSTALL_PATH
|
|||
@ret=1; \
|
||||
for TARGET in $(TARGETS); do \
|
||||
BUILD_TARGET=$$BUILD/$$TARGET; \
|
||||
$(MAKE) OUTPUT=$$BUILD_TARGET -C $$TARGET INSTALL_PATH=$(INSTALL_PATH)/$$TARGET install; \
|
||||
$(MAKE) OUTPUT=$$BUILD_TARGET -C $$TARGET INSTALL_PATH=$(INSTALL_PATH)/$$TARGET install \
|
||||
$(if $(FORCE_TARGETS),|| exit); \
|
||||
ret=$$((ret * $$?)); \
|
||||
done; exit $$ret;
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче