Merge: Subtyping test with perfect hashing in the Nit vm
[nit.git] / tests / tests.sh
index da605a8..956c0ab 100755 (executable)
@@ -206,17 +206,25 @@ function process_result()
                echo >>$xml "]]></system-out>"
                nok="$nok $pattern"
                echo "$ii" >> "$ERRLIST"
-       else
+       elif [ -s out/$pattern.res ]; then
                if [ -n "$tap" ]; then
-                       echo "ok - $description # skip no sav"
+                       echo "no ok - $description"
                else
-                       echo "[=== no sav ===] out/$pattern.res"
+                       echo "[=== no sav ===] out/$pattern.res is not empty"
                fi
-               echo >>$xml "<skipped/>"
+               echo >>$xml "<error message='no sav and not empty'/>"
                echo >>$xml "<system-out><![CDATA["
                cat -v >>$xml out/$pattern.res
                echo >>$xml "]]></system-out>"
                nos="$nos $pattern"
+       else
+               # no sav but empty res
+               if [ -n "$tap" ]; then
+                       echo "ok - $description"
+               else
+                       echo "[0k] out/$pattern.res is empty"
+               fi
+               ok="$ok $pattern"
        fi
        if test -s out/$pattern.cmp.err; then
                echo >>$xml "<system-err><![CDATA["
@@ -239,6 +247,16 @@ need_skip()
                echo >>$xml "<testcase classname='$3' name='$2'><skipped/></testcase>"
                return 0
        fi
+       if test $engine = niti && echo "$1" | grep -f "exec.skip" >/dev/null 2>&1; then
+               ((tapcount=tapcount+1))
+               if [ -n "$tap" ]; then
+                       echo "ok - $2 # skip"
+               else
+                       echo "=> $2: [skip exec]"
+               fi
+               echo >>$xml "<testcase classname='$3' name='$2'><skipped/></testcase>"
+               return 0
+       fi
        return 1
 }
 
@@ -252,6 +270,15 @@ skip_exec()
        return 1
 }
 
+skip_cc()
+{
+       test "$noskip" = true && return 1
+       if echo "$1" | grep -f "cc.skip" >/dev/null 2>&1; then
+               return 0
+       fi
+       return 1
+}
+
 find_nitc()
 {
        ((tapcount=tapcount+1))
@@ -421,13 +448,18 @@ END
                        > "$ff.compile.log"
                        ERR=0
                else
+                       if skip_cc "$bf"; then
+                               nocc="--no-cc"
+                       else
+                               nocc=
+                       fi
                        # Compile
                        if [ "x$verbose" = "xtrue" ]; then
                                echo ""
-                               echo $NITC --no-color $OPT -o "$ff.bin" "$i" "$includes"
+                               echo $NITC --no-color $OPT -o "$ff.bin" "$i" "$includes" $nocc
                        fi
                        NIT_NO_STACK=1 JNI_LIB_PATH=$JNI_LIB_PATH JAVA_HOME=$JAVA_HOME \
-                               $TIMEOUT $NITC --no-color $OPT -o "$ff.bin" "$i" $includes 2> "$ff.cmp.err" > "$ff.compile.log"
+                               $TIMEOUT $NITC --no-color $OPT -o "$ff.bin" "$i" $includes $nocc 2> "$ff.cmp.err" > "$ff.compile.log"
                        ERR=$?
                        if [ "x$verbose" = "xtrue" ]; then
                                cat "$ff.compile.log"
@@ -442,6 +474,11 @@ END
                        # No exec
                        > "$ff.res"
                        process_result $bf $bf $pack
+               elif [ -n "$nocc" ]; then
+                       # not compiled
+                       test -z "$tap" && echo -n "nocc "
+                       > "$ff.res"
+                       process_result $bf $bf $pack
                elif [ -x "./$ff.bin" ]; then
                        test -z "$tap" && echo -n ". "
                        # Execute