+ ok="$ok $pattern"
+ elif [ -n "$FIXME" ]; then
+ if [ -n "$OLD" ]; then
+ echo "[*fixme*] $outdir/$pattern.res $FIXME - but $OLD remains!"
+ echo >>$xml "<error message='`xmlesc "ok $outdir/$pattern.res - but $OLD remains"`'/>"
+ remains="$remains $OLD"
+ test "$autosav" = "true" && rm "$OLD"
+ else
+ echo "[fixme] $outdir/$pattern.res $FIXME"
+ echo >>$xml "<skipped/>"
+ fi
+ todos="$todos $pattern"
+ elif [ "x$NYI" = "x0" ]; then
+ echo "[todo] $outdir/$pattern.res -> not yet implemented"
+ echo >>$xml "<skipped/>"
+ todos="$todos $pattern"
+ elif [ -n "$SOSO" ]; then
+ echo "[======= soso $outdir/$pattern.res $SOSO =======]"
+ echo >>$xml "<error message='`xmlesc "soso $outdir/$pattern.res $SOSO"`'/>"
+ echo >>$xml "<system-out><![CDATA["
+ cat -v -- "$outdir/$pattern.diff.sav.log" | head >>$xml -n 50
+ echo >>$xml "]]></system-out>"
+ 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 "<error message='`xmlesc "soso $outdir/$pattern.res $SOSO"`'/>"
+ echo >>$xml "<system-out><![CDATA["
+ cat -v -- "$outdir/$pattern.diff.sav.log" | head >>$xml -n 50
+ echo >>$xml "]]></system-out>"
+ 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 "<error message='`xmlesc "fail $outdir/$pattern.res $NSAV"`'/>"
+ echo >>$xml "<system-out><![CDATA["
+ cat -v -- "$outdir/$pattern.diff.sav.log" | head >>$xml -n 50
+ echo >>$xml "]]></system-out>"
+ 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 "<error message='`xmlesc "changed $outdir/$pattern.res $NFIXME"`'/>"
+ echo >>$xml "<system-out><![CDATA["
+ cat -v -- "$outdir/$pattern.diff.sav.log" | head >>$xml -n 50
+ echo >>$xml "]]></system-out>"
+ 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 "<error message='no sav and not empty'/>"
+ echo >>$xml "<system-out><![CDATA["
+ cat -v >>$xml -- "$outdir/$pattern.res"
+ echo >>$xml "]]></system-out>"
+ 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"
+ ok="$ok $pattern"
+ fi
+ if test -s "$outdir/$pattern.cmp.err"; then
+ echo >>$xml "<system-err><![CDATA["
+ cat -v >>$xml -- "$outdir/$pattern.cmp.err"
+ echo >>$xml "]]></system-err>"
+ fi
+ echo >>$xml "</testcase>"
+}
+
+need_skip()
+{
+ test "$noskip" = true && return 1
+ if echo "$1" | grep -f "$engine.skip" >/dev/null 2>&1; then
+ echo "=> $2: [skip]"
+ echo >>$xml "<testcase classname='`xmlesc "$3"`' name='`xmlesc "$2"`' `timestamp`><skipped/></testcase>"
+ return 0
+ fi
+ if test -n "$isinterpret" && echo "$1" | grep -f "exec.skip" >/dev/null 2>&1; then
+ echo "=> $2: [skip exec]"
+ echo >>$xml "<testcase classname='`xmlesc "$3"`' name='`xmlesc "$2"`' `timestamp`><skipped/></testcase>"
+ return 0
+ fi
+
+ # Skip by OS
+ 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 "<testcase classname='`xmlesc "$3"`' name='`xmlesc "$2"`' `timestamp`><skipped/></testcase>"
+ return 0
+ fi
+
+ # Skip by hostname
+ local host_skip_file=`$HOSTNAME`.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 "<testcase classname='`xmlesc "$3"`' name='`xmlesc "$2"`' `timestamp`><skipped/></testcase>"
+ return 0
+ fi
+ return 1
+}
+
+skip_exec()
+{
+ test "$noskip" = true && return 1
+ 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