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