X-Git-Url: http://nitlanguage.org diff --git a/tests/tests.sh b/tests/tests.sh index 658cbbb..c19a9a8 100755 --- a/tests/tests.sh +++ b/tests/tests.sh @@ -19,10 +19,31 @@ # Set lang do default to avoid failed tests because of locale export LANG=C.UTF-8 -export LC_ALL=C.UTF-8 + +# Explore candidates for LC_ALL +# +# If C.UTF-8, the most agnostic UTF-8 locale is supported, we +# use it, otherwise we default to the UTF-8 system locale, and +# if unavailable, we default on C. +# +# Note that C however is not guaranteed to be UTF-8, and +# some tests may fail when relying on Unicode semantics. +locale_candidate=C.UTF-8 +if ! locale -a 2>/dev/null | grep -q C.UTF-8; then + locale_candidate="$(locale -a | grep -i utf8 | head -n1)" + if [ -z "$locale_candidate" ]; then + locale_candidate=C + fi +fi +export LC_ALL="$locale_candidate" + +# Darwin / macOS if uname | grep Darwin 1>/dev/null 2>&1; then export LANG=en_US.UTF-8 export LC_ALL=en_US.UTF-8 + + # Fix for errors on some libevent/nitcorn clients + export EVENT_NOKQUEUE=1 fi export NIT_TESTING=true @@ -30,6 +51,9 @@ export NIT_TESTING=true export NIT_TESTING_ID=$$ export NIT_SRAND=0 +# Identify this as a tests.sh test to differentiate from a nitunit test +export NIT_TESTING_TESTS_SH=true + unset NIT_DIR # Get the first Java lib available @@ -387,6 +411,11 @@ need_skip() echo >>$xml "" return 0 fi + if test -n "GITLAB_CI" && echo "$1" | grep -f "gitlab_ci.skip" >/dev/null 2>&1; then + echo "=> $2: [skip gitlab ci]" + echo >>$xml "" + return 0 + fi # Skip by OS local os_skip_file=$UNAME.skip @@ -552,6 +581,7 @@ case $engine in esac savdirs="sav/`$HOSTNAME` sav/$UNAME sav/$engine $savdirs sav/" +test -n "$GITLAB_CI" && savdirs="sav/gitlab_ci $savdirs" # The default nitc compiler [ -z "$NITC" ] && find_nitc @@ -816,6 +846,10 @@ fi echo >>$xml "" +if type junit2html >/dev/null; then + junit2html "$xml" +fi + if [ -n "$nok" ]; then exit 1 else