mirror of
https://github.com/RIOT-OS/RIOT.git
synced 2025-12-16 10:03:50 +01:00
build system: Allow running tests in docker
When building for native with `BUILD_IN_DOCKER=1`, the created elf file may not be compatible with the host system if: - The container used is using glibc and the host system is using another C lib - Both container and host are using glibc, but the container is using a more recent one than the host To avoid these issues, this commit changes behavior to just run the `test` goal inside the docker image as well when the board is `native%`.
This commit is contained in:
parent
5987b19788
commit
651e1907dc
@ -19,13 +19,20 @@ DEPS_FOR_RUNNING_DOCKER :=
|
|||||||
DOCKER ?= docker
|
DOCKER ?= docker
|
||||||
|
|
||||||
# List of Docker-enabled make goals
|
# List of Docker-enabled make goals
|
||||||
export DOCKER_MAKECMDGOALS_POSSIBLE = \
|
DOCKER_MAKECMDGOALS_POSSIBLE := \
|
||||||
all \
|
all \
|
||||||
scan-build \
|
scan-build \
|
||||||
scan-build-analyze \
|
scan-build-analyze \
|
||||||
tests-% \
|
tests-% \
|
||||||
#
|
#
|
||||||
export DOCKER_MAKECMDGOALS = $(filter $(DOCKER_MAKECMDGOALS_POSSIBLE),$(MAKECMDGOALS))
|
|
||||||
|
# On native, we also can run the test in docker
|
||||||
|
ifneq (, $(filter native%,$(BOARD)))
|
||||||
|
DOCKER_MAKECMDGOALS_POSSIBLE += test
|
||||||
|
endif
|
||||||
|
|
||||||
|
export DOCKER_MAKECMDGOALS_POSSIBLE
|
||||||
|
export DOCKER_MAKECMDGOALS := $(filter $(DOCKER_MAKECMDGOALS_POSSIBLE),$(MAKECMDGOALS))
|
||||||
|
|
||||||
# Docker creates the files .dockerinit and .dockerenv in the root directory of
|
# Docker creates the files .dockerinit and .dockerenv in the root directory of
|
||||||
# the container, we check for the files to determine if we are inside a container.
|
# the container, we check for the files to determine if we are inside a container.
|
||||||
|
|||||||
@ -22,10 +22,17 @@ TEST_DEPS += $(TERMDEPS)
|
|||||||
TEST_EXECUTOR ?=
|
TEST_EXECUTOR ?=
|
||||||
TEST_EXECUTOR_FLAGS ?=
|
TEST_EXECUTOR_FLAGS ?=
|
||||||
|
|
||||||
|
# Are tests going to be run in docker and we are not yet in docker?
|
||||||
|
ifeq (0-test,$(INSIDE_DOCKER)-$(filter test,$(DOCKER_MAKECMDGOALS)))
|
||||||
|
# Yes --> defer test execution to docker
|
||||||
|
test: ..in-docker-container
|
||||||
|
else
|
||||||
|
# No --> run test in this context
|
||||||
test: $(TEST_DEPS)
|
test: $(TEST_DEPS)
|
||||||
$(Q) for t in $(TESTS); do \
|
$(Q) for t in $(TESTS); do \
|
||||||
$(TEST_EXECUTOR) $(TEST_EXECUTOR_FLAGS) $$t || exit 1; \
|
$(TEST_EXECUTOR) $(TEST_EXECUTOR_FLAGS) $$t || exit 1; \
|
||||||
done
|
done
|
||||||
|
endif
|
||||||
|
|
||||||
test/available:
|
test/available:
|
||||||
ifneq (,$(TEST_ON_CI_WHITELIST))
|
ifneq (,$(TEST_ON_CI_WHITELIST))
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user