1
0
mirror of https://github.com/RIOT-OS/RIOT.git synced 2024-12-29 04:50:03 +01:00
RIOT/tests/build_system_utils/Makefile
Gaëtan Harter 2c5eeca47a
makefiles/utils: function to memoize a variable evaluation
This allow deferring a variable evaluation to its usage but still
benefit from only evaluating it once on multiple uses.
2019-06-28 11:34:43 +02:00

42 lines
1.3 KiB
Makefile

BOARD_WHITELIST = native
include ../Makefile.tests_common
include $(RIOTBASE)/Makefile.include
# Test utils commands
define command_should_fail
$1 2>/dev/null && { echo "Command '$1' should have failed but did not" >&2; $1; exit 1; } || true
endef
define command_should_succeed
$1 || { echo "Command '$1' failed" >&2; $1; exit 1; }
endef
MAKEFILES_UTILS = $(RIOTMAKE)/utils
COMPILE_TESTS += test-ensure_value test-ensure_value-negative
COMPILE_TESTS += test-exported-variables
COMPILE_TESTS += test-memoized-variables
# Tests will be run both in the host machine and in `docker`
all: build-system-utils-tests
build-system-utils-tests: $(COMPILE_TESTS)
.PHONY: build-system-utils-tests $(COMPILE_TESTS)
# tests for 'ensure_value'
test-ensure_value:
$(Q)$(call command_should_succeed,"$(MAKE)" -C $(MAKEFILES_UTILS) -f test-checks.mk test-ensure_value)
test-ensure_value-negative:
$(Q)$(call command_should_fail,"$(MAKE)" -C $(MAKEFILES_UTILS) -f test-checks.mk test-ensure_value-negative)
test-exported-variables:
$(Q)$(call command_should_succeed,"$(MAKE)" -C $(MAKEFILES_UTILS) -f test-variables.mk test-exported-variables)
test-memoized-variables:
$(Q)$(call command_should_succeed,"$(MAKE)" -C $(MAKEFILES_UTILS) -f test-variables.mk test-memoized-variables)