X-Git-Url: http://nitlanguage.org diff --git a/tests/tests.sh b/tests/tests.sh index dfba6a7..99e3008 100755 --- a/tests/tests.sh +++ b/tests/tests.sh @@ -181,23 +181,23 @@ EOF function process_result() { # Result - pattern=$1 - description=$2 - pack=$3 - SAV="" - NSAV="" - FIXME="" - NFIXME="" - SOSO="" - NSOSO="" - SOSOF="" - NSOSOF="" - OLD="" - LIST="" - FIRST="" + local pattern=$1 + local description=$2 + local pack=$3 + local SAV="" + local NSAV="" + local FIXME="" + local NFIXME="" + local SOSO="" + local NSOSO="" + local SOSOF="" + local NSOSOF="" + local OLD="" + local LIST="" + local FIRST="" # Truncate too big res file - size=$(wc -c < "$outdir/$pattern.res") + local size=$(wc -c < "$outdir/$pattern.res") if test -n "$reslimit" -a "$size" -gt "$reslimit"; then # The most portable way to truncate a file is with Perl perl -e "truncate \"$outdir/$pattern.res\", $reslimit;" @@ -207,7 +207,7 @@ function process_result() echo >>$xml "" #for sav in "sav/$engine/fixme/$pattern.res" "sav/$engine/$pattern.res" "sav/fixme/$pattern.res" "sav/$pattern.res" "sav/$pattern.sav"; do for savdir in $savdirs; do - sav=$savdir/fixme/$pattern.res + local sav=$savdir/fixme/$pattern.res compare_to_result "$pattern" "$sav" case "$?" in 0) @@ -260,7 +260,7 @@ function process_result() esac done OLD=`echo "$OLD" | sed -e 's/ */ /g' -e 's/^ //' -e 's/ $//'` - grep 'NOT YET IMPLEMENTED' "$outdir/$pattern.res" >/dev/null + istodo "$outdir/$pattern.res" NYI="$?" if [ -n "$SAV" ]; then if [ -n "$OLD" ]; then @@ -360,38 +360,68 @@ need_skip() fi # Skip by OS - os_skip_file=`uname`.skip + local os_skip_file=`uname`.skip 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 fi + + # Skip by hostname + local host_skip_file=`hostname -s`.skip + if test -e $host_skip_file && echo "$1" | grep -f "$host_skip_file" >/dev/null 2>&1; then + echo "=> $2: [skip hostname]" + echo >>$xml "" + return 0 + fi return 1 } skip_exec() { test "$noskip" = true && return 1 - if echo "$1" | grep -f "exec.skip" >/dev/null 2>&1; then - echo -n "_ " - return 0 - fi + for savdir in $savdirs .; do + local f="$savdir/exec.skip" + test -f "$f" || continue + if echo "$1" | grep -f "$f" >/dev/null 2>&1; then + echo -n "_ no exec by $f; " + return 0 + fi + done return 1 } skip_cc() { test "$noskip" = true && return 1 - if echo "$1" | grep -f "cc.skip" >/dev/null 2>&1; then - return 0 - fi + for savdir in $savdirs .; do + local f="$savdir/cc.skip" + test -f "$f" || continue + if echo "$1" | grep -f "$f" >/dev/null 2>&1; then + return 0 + fi + done + return 1 +} + +# Check that the resfile ($1) matches some magic strings in `todo` files. +istodo() +{ + test "$no" = true && return 1 + for savdir in $savdirs .; do + local f="$savdir/todo" + test -f "$f" || continue + if grep -f "$f" "$1" >/dev/null 2>&1; then + return 0 + fi + done return 1 } find_nitc() { - name="$enginebinname" - recent=`ls -t ../src/$name ../src/$name_[0-9] ../bin/$name ../c_src/$name 2>/dev/null | head -1` + local name="$enginebinname" + local recent=`ls -t ../src/$name ../src/$name_[0-9] ../bin/$name ../c_src/$name 2>/dev/null | head -1` if [[ "x$recent" == "x" ]]; then echo "Could not find binary for engine $engine, aborting" exit 1 @@ -487,7 +517,7 @@ case $engine in ;; esac -savdirs="sav/$engine $savdirs sav/" +savdirs="sav/`hostname -s` sav/`uname` sav/$engine $savdirs sav/" # The default nitc compiler [ -z "$NITC" ] && find_nitc @@ -548,7 +578,7 @@ for ii in "$@"; do tmp=${ii/../AA} if [ "x$tmp" = "x$ii" ]; then - includes="-I . -I ../lib/standard -I ../lib/standard/collection -I alt" + includes="-I . -I ../lib/core -I ../lib/core/collection -I alt" else includes="-I alt" fi