Fix tests.sh to not forget some alternatives.
[nit.git] / tests / tests.sh
index 436ee2f..1b45228 100755 (executable)
@@ -39,8 +39,8 @@ elif [ ! -f "$HTM" ]; then
        for i in "$@"; do
                f=`echo $i | cut -f1 -d.`
                echo -n "<td><a href=\"$f.nit\">$f</a>" >> $HTM
-               if [ -r "$f.sav" ]; then
-                       echo -n " - <a href=\"$f.sav\">sav</a>" >> $HTM
+               if [ -r "sav/$f.sav" ]; then
+                       echo -n " - <a href=\"sav/$f.sav\">sav</a>" >> $HTM
                fi
                if [ -f "$f.inputs" ]; then
                        echo -n " - <a href=\"$f.inputs\">inputs</a>" >> $HTM
@@ -55,7 +55,7 @@ nok=""
 echo "<tr><td>$MARK</td>" >> $HTM
 
 for ii in "$@"; do
-    for alt in "" `sed -n 's/.*#\(alt[0-9]*\)#.*/\1/p' "$ii" | sort -u`; do
+    for alt in "" `sed -n 's/.*#!*\(alt[0-9]*\)#.*/\1/p' "$ii" | sort -u`; do
        f=`basename "$ii" .nit`
        d=`dirname "$ii"`
        ff="$f"
@@ -107,29 +107,33 @@ for ii in "$@"; do
        fi
 
        # Result        
-       if [ -r "$ff.sav" ]; then
-               diff "$ff.res" "$ff.sav" > "$ff.diff.log"
+       if [ -r "sav/$ff.sav" ]; then
+               diff "$ff.res" "sav/$ff.sav" > "$ff.diff.log"
                if [ "$?" == 0 ]; then
                        echo "[ok] $ff.res"
                        ok="$ok $ff"
                        echo -n "<a href=\"$ff.res\">res ok</a>" >> $HTM
                else
-                       echo "[======= fail $ff.res $ff.sav =======]"
+                       echo "[======= fail $ff.res sav/$ff.sav =======]"
                        nok="$nok $ff"
                        echo -n "<strong style=\"background-color:red\"><a href=\"$ff.res\">res fail</a> - <a href=\"$ff.diff.log\">diff</a></strong>" >> $HTM
                fi
        else
                echo "[=== no sav ===] $ff.res"
                echo -n "<a href=\"$ff.res\">res</a>" >> $HTM
+               nos="$nos $ff"
        fi
        echo "</td>" >> $HTM
    done
 done
 
-echo "ok: " `echo $ok | wc -w` "/ $#"
+echo "ok: " `echo $ok | wc -w` "/" `echo $ok $nok $nos | wc -w`
 echo "<td>" `echo $ok | wc -w` "</td><td>" `echo $nok | wc -w` "</td></tr>" >> $HTM
 
 if [ -n "$nok" ]; then
        echo "fail: $nok"
        echo "There were errors !"
 fi
+if [ -n "$nos" ]; then
+       echo "no sav: $nos"
+fi