NO_CROSS_SHELL_TESTS_WARNING:=$(if$(HAVE_CROSS_SHELL_TESTS),,$(warning WARNING: This version of Urchin does not support cross-shell tests. All tests will run with 'sh'.))
# Define the default test suite(s). This can be overridden with `make TEST_SUITE=<...> <target>`.
# Define the default test suite(s). This can be overridden with `make TEST_SUITE=<...> <target>`.
# Test suites are the names of subfolders of './test'.
# Test suites are the names of subfolders of './test'.
TEST_SUITE:=$(shell find ./test/* -type d -prune -exec basename {}\;)
# Default target (by virtue of being the first non '.'-prefixed in the file).
# Default target (by virtue of being the first non '.'-prefixed in the file).
.PHONY:_no-target-specified
.PHONY:_no-target-specified
@ -38,7 +42,8 @@ $(SHELL_TARGETS):
@shell='$@';shell=$${shell##*-}; which "$$shell" >/dev/null ||{printf'\033[0;31m%s\033[0m\n'"WARNING: Cannot test with shell '$$shell': not found." >&2;exit 0;}&&\
@shell='$@';shell=$${shell##*-}; which "$$shell" >/dev/null ||{printf'\033[0;31m%s\033[0m\n'"WARNING: Cannot test with shell '$$shell': not found." >&2;exit 0;}&&\
printf'\n\033[0;34m%s\033[0m\n'"Running tests in $$shell";\
printf'\n\033[0;34m%s\033[0m\n'"Running tests in $$shell";\
[ -z "$$TRAVIS_BUILD_DIR"]&&for v in $$(export -p | awk -F'[ =]''$$2 ~ "^NVM_" { print $$2 }');dounset$$v;done&&unset v;\
[ -z "$$TRAVIS_BUILD_DIR"]&&for v in $$(export -p | awk -F'[ =]''$$2 ~ "^NVM_" { print $$2 }');dounset$$v;done&&unset v;\
for suite in $(TEST_SUITE);do$$shell $(URCHIN) -f test/$$suite || exit;done