Makefile now makes use of the `-s <shell>` option for Urchin, IF it is available, for true cross-shell testing.
Conversely, a warning is issued if it is missing, because that implies that no actual cross-shell testing will take place.
Also, the shell command that determines the set of available test suites is now POSIX-compliant.
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>`.
# Test suites are the names of subfolders of './test'.
@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";\
[ -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