Skip to content
Snippets Groups Projects
Unverified Commit 5a2609c5 authored by Gaëtan Harter's avatar Gaëtan Harter Committed by GitHub
Browse files

Merge pull request #10439 from jcarrano/ensure-value

makefile/utils: Add a function for checking that a string is not empty.
parents cd35edda 9d252a88
No related branches found
No related tags found
No related merge requests found
# Utilities to produce errors inside Make
# Use this functions to produce friendlier error messages.
# Produce an error if the value is empty
#
# Parameters
# value: a string which should not be empty
# message: The error message to display.
# Returns:
# the first argument, if it is not empty.
ensure_value = $(if $(1),$(1),$(error $(2)))
include checks.mk
test-ensure_value:
@test "$@" = "$(call ensure_value,$@,"This should not fail")"
test-ensure_value-negative:
@echo $(call ensure_value,$^,"This should fail")
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
TESTS = test-ensure_value test-ensure_value-negative
# Tests will be run both in the host machine and in `docker`
all: build-system-utils-tests
build-system-utils-tests: $(TESTS)
.PHONY: build-system-utils-tests $(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)
Build system utils tests
========================
This test checks the build system 'utils' functions declared in
`makefiles/utils`.
The test output says nothing in case of success.
Note
----
It should not be necessary to compile but this simplifies the integration in
murdock for the moment. Also there will be other tests that may need to check
the result of the compilation.
/*
* Copyright (C) 2018 Freie Universität Berlin
*
* This file is subject to the terms and conditions of the GNU Lesser General
* Public License v2.1. See the file LICENSE in the top level directory for more
* details.
*/
/**
* @ingroup tests
* @{
*
* @file
* @brief Empty main file
*
* @author Gaëtan Harter <gaetan.harter@fu-berlin.de>
*
* @}
*/
int main(void)
{
/* The important rules are in the Makefile */
return 0;
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment