X-Git-Url: http://nitlanguage.org diff --git a/tests/tests.sh b/tests/tests.sh index a91d049..3fd5510 100755 --- a/tests/tests.sh +++ b/tests/tests.sh @@ -21,7 +21,7 @@ export LANG=C export LC_ALL=C export NIT_TESTING=true -export MNIT_SRAND=0 +export NIT_SRAND=0 unset NIT_DIR @@ -35,7 +35,7 @@ JNI_LIB_PATH=`dirname ${paths[0]}` shopt -u nullglob outdir="out" -compdir=".nit_compile" +compdir="nit_compile" usage() { @@ -48,8 +48,9 @@ Usage: $e [options] modulenames --engine Use a specific engine (default=nitc) --noskip Do not skip a test even if the .skip file matches --outdir Use a specific output folder (default=out/) ---compdir Use a specific temporary compilation folder (default=.nit_compile) +--compdir Use a specific temporary compilation folder (default=$compdir) --node Run as a node in parallel, will not output context information +--autosav Copy the .res files directly in the sav folder overriding existing .res files END } @@ -69,7 +70,9 @@ saferun() *) stop=true esac done - if test -n "$TIME"; then + if test -d "$1"; then + find $1 | sort + elif test -n "$TIME"; then $TIME -o "$o" $a $TIMEOUT "$@" else if test -n "$a"; then echo 0 >> "$o"; else echo 0 > "$o"; fi @@ -232,6 +235,7 @@ function process_result() echo "[*ok*] $outdir/$pattern.res $SAV - but $OLD remains!" echo >>$xml "" remains="$remains $OLD" + test "$autosav" = "true" && rm "$OLD" else echo "[ok] $outdir/$pattern.res $SAV" fi @@ -241,6 +245,7 @@ function process_result() echo "[*fixme*] $outdir/$pattern.res $FIXME - but $OLD remains!" echo >>$xml "" remains="$remains $OLD" + test "$autosav" = "true" && rm "$OLD" else echo "[fixme] $outdir/$pattern.res $FIXME" echo >>$xml "" @@ -258,6 +263,7 @@ function process_result() echo >>$xml "]]>" nok="$nok $pattern" echo "$ii" >> "$ERRLIST" + test "$autosav" = "true" && cp "$outdir/$pattern.res" "$SOSO" elif [ -n "$SOSOF" ]; then echo "[======= fixme soso $outdir/$pattern.res $SOSOF =======]" echo >>$xml "" @@ -266,6 +272,7 @@ function process_result() echo >>$xml "]]>" nok="$nok $pattern" echo "$ii" >> "$ERRLIST" + test "$autosav" = "true" && cp "$outdir/$pattern.res" && "$SOSO" elif [ -n "$NSAV" ]; then echo "[======= fail $outdir/$pattern.res $NSAV =======]" echo >>$xml "" @@ -274,6 +281,7 @@ function process_result() echo >>$xml "]]>" nok="$nok $pattern" echo "$ii" >> "$ERRLIST" + test "$autosav" = "true" && cp "$outdir/$pattern.res" "$NSAV" elif [ -n "$NFIXME" ]; then echo "[======= changed $outdir/$pattern.res $NFIXME ======]" echo >>$xml "" @@ -282,6 +290,7 @@ function process_result() echo >>$xml "]]>" nok="$nok $pattern" echo "$ii" >> "$ERRLIST" + test "$autosav" = "true" && cp "$outdir/$pattern.res" "$NFIXME" elif [ -s "$outdir/$pattern.res" ]; then echo "[=== no sav ===] $outdir/$pattern.res is not empty" echo >>$xml "" @@ -290,6 +299,7 @@ function process_result() echo >>$xml "]]>" nos="$nos $pattern" echo "$ii" >> "$ERRLIST" + test "$autosav" = "true" && cp "$outdir/$pattern.res" "sav/" else # no sav but empty res echo "[0k] $outdir/$pattern.res is empty" @@ -319,7 +329,7 @@ need_skip() # Skip by OS os_skip_file=`uname`.skip - if test -e $os_skip_file && echo "$1" | grep -f "$os_skip_file"; then + if test -e $os_skip_file && echo "$1" | grep -f "$os_skip_file" >/dev/null 2>&1; then echo "=> $2: [skip os]" echo >>$xml "" return 0 @@ -362,6 +372,7 @@ find_nitc() verbose=false isnode=false +autosav=false stop=false engine=nitc noskip= @@ -376,6 +387,7 @@ while [ $stop = false ]; do --outdir) outdir="$2"; shift; shift;; --compdir) compdir="$2"; shift; shift;; --node) isnode=true; shift;; + --autosav) autosav=true; shift;; *) stop=true esac done @@ -552,6 +564,8 @@ END cat -- "$ff.compile.log" cat >&2 -- "$ff.cmp.err" fi + # Clean + rm -r "$compdir" 2>/dev/null fi if [ "$engine" = "emscripten" ]; then echo > "$ff.bin" "nodejs $ffout \"\$@\""