* tests/regression/jasmin/Makefile.am: Use JAVACMD as in other test dirs.
[cacao.git] / tests / regression / jasmin / runtest
index d2740a304cbd7205d07074f6417c355418f3fbad..b8a58860de4e8eb5e9a27d3e3d72ad15343b66fe 100755 (executable)
@@ -8,8 +8,8 @@ FAILCOLOR=''
 NOCOLOR=''
 ECHOFLAGS=''
 
-if [ -z "$JAVA" ] ; then
-       JAVA=../../../src/cacao/cacao
+if [ -z "$JAVACMD" ] ; then
+       JAVACMD=../../../src/cacao/cacao
 fi
 
 if [ -z "$TIMEOUT" ] ; then
@@ -44,19 +44,7 @@ if [ "$1" = "--color" ] ; then
        ECHOFLAGS='-e'
 fi
 
-if [ -z "$JASMIN_JAR" ] ; then
-       JASMIN_JAR=/usr/share/java/jasmin-sable.jar
-fi
-
-if [ ! -r "$JASMIN_JAR" ] ; then
-       echo >&2 "$0: warning: jasmin .jar is not available at $JASMIN_JAR"
-       exit 0
-fi
-
-JASMIN="$JAVA $JAVAFLAGS -cp $JASMIN_JAR jasmin.Main"
-
-echo "java command: $JAVA $JAVAFLAGS"
-echo "jasmin command: $JASMIN"
+echo "java command: $JAVACMD $JAVAFLAGS"
 
 while [ -n "$1" ]
 do
@@ -67,21 +55,28 @@ do
     TESTEXPECT="TESTEXPECT"
     TESTLOG="TESTLOG"
     TESTERR="TESTERR"
+       TESTSIA="TESTSIA"
 
        EXPECTSTATUS=0
-
-       # compile the test
-
-    $JASMIN "$TEST" || exit 2
+       CHECKICMD=0
 
        if grep 'ERROR:' "$TEST" >/dev/null ; then
                EXPECTSTATUS=1
                EXPECTERROR=$(grep 'ERROR:.*' "$TEST" | sed 's,.*ERROR:[ \t]*,,')
        fi
 
+       if grep 'ICMD:' "$TEST" >/dev/null ; then
+               CHECKICMD=1
+               EXPECTICMD=$(grep 'ICMD:.*' "$TEST" | sed 's,.*ICMD:[ \t]*,,')
+       fi
+
        # run the test
 
-    $TIMEOUTRUN $JAVA $JAVAFLAGS "$TESTBASENAME" >"$TESTOUT" 2>"$TESTERR"
+       if [ -z "$TIMEOUTRUN" ] ; then
+               eval $JAVACMD $JAVAFLAGS "$TESTBASENAME" >"$TESTOUT" 2>"$TESTERR"
+       else
+               $TIMEOUTRUN $JAVACMD $JAVAFLAGS "$TESTBASENAME" >"$TESTOUT" 2>"$TESTERR"
+       fi
        TESTSTATUS=$?
 
        if [ $TESTSTATUS -ne $EXPECTSTATUS ] ; then
@@ -102,7 +97,7 @@ do
                fi
 
                if [ "$VERBOSE" -eq "1" ] ; then
-                       $JAVA $JAVAFLAGS -sia "$TESTBASENAME" >"$TESTLOG" || exit 2
+                       eval $JAVACMD $JAVAFLAGS -sia "$TESTBASENAME" >"$TESTLOG" || exit 2
                        ./show "$TESTLOG"
                fi
        else
@@ -114,6 +109,13 @@ do
                fi
        fi
 
+       if [ "$CHECKICMD" -ne 0 ] ; then
+               rm -f "$TESTSIA"
+               touch "$TESTSIA"
+               eval $JAVACMD $JAVAFLAGS -sia "$TESTBASENAME" >"$TESTSIA" 2>/dev/null
+               cat "$TESTSIA" | sed -n '/^'"$TESTBASENAME"'\.main/,$p' | sed '/^=====.*flags: -1/,$d' | grep "$EXPECTICMD"
+       fi
+
     shift
 done