* configure.ac: Generate tests/regression/jasmin/Makefile.
[cacao.git] / tests / regression / jasmin / runtest
index 47c79bc814bd7da3e2ce01e6111b36f96cd4f34b..c1c5c3f5372abf9e2891bfa8e49074447579fddb 100755 (executable)
@@ -2,6 +2,11 @@
 
 VERBOSE=0
 EXITCODE=0
+COLOR=0
+PASSCOLOR=''
+FAILCOLOR=''
+NOCOLOR=''
+ECHOFLAGS=''
 
 if [ -z "$JAVA" ] ; then
        JAVA=../../../src/cacao/cacao
@@ -12,8 +17,26 @@ if [ "$1" = "--verbose" ] ; then
        VERBOSE=1
 fi
 
+if [ "$1" = "--color" ] ; then
+       shift
+       COLOR=1
+       PASSCOLOR='\033[1;32m'
+       FAILCOLOR='\033[1;31m'
+       NOCOLOR='\033[0m'
+       ECHOFLAGS='-e'
+fi
+
 JASMIN_JAR=/usr/share/java/jasmin-sable.jar
-JASMIN="$JAVA -cp $JASMIN_JAR jasmin.Main"
+
+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"
 
 while [ -n "$1" ]
 do
@@ -38,32 +61,36 @@ do
 
        # run the test
 
-    $JAVA "$TESTBASENAME" >"$TESTOUT" 2>"$TESTERR"
+    $JAVA $JAVAFLAGS "$TESTBASENAME" >"$TESTOUT" 2>"$TESTERR"
        TESTSTATUS=$?
 
        if [ $TESTSTATUS -ne $EXPECTSTATUS ] ; then
-               echo "FAIL: $TEST - expected status $EXPECTSTATUS, but got $TESTSTATUS"
+               echo $ECHOFLAGS "${FAILCOLOR}FAIL: $TEST - expected status $EXPECTSTATUS, but got $TESTSTATUS${NOCOLOR}"
+               EXITCODE=1
        fi
 
        if [ $EXPECTSTATUS -eq 0 ] ; then
                grep 'OUTPUT:' "$TEST" | sed 's,.*OUTPUT:\s*,,' >"$TESTEXPECT"
 
                if diff -u "$TESTEXPECT" "$TESTOUT" ; then
-                       echo "PASS: $TEST"
+                       if [ $TESTSTATUS -eq 0 ] ; then
+                               echo $ECHOFLAGS "${PASSCOLOR}PASS: $TEST${NOCOLOR}"
+                       fi
                else
-                       echo "FAIL: $TEST"
-               EXITCODE=1
+                       echo $ECHOFLAGS "${FAILCOLOR}FAIL: $TEST - wrong output${NOCOLOR}"
+                       EXITCODE=1
                fi
 
                if [ "$VERBOSE" -eq "1" ] ; then
-               $JAVA -sia "$TESTBASENAME" >"$TESTLOG" || exit 2
-               ./show "$TESTLOG"
+                       $JAVA $JAVAFLAGS -sia "$TESTBASENAME" >"$TESTLOG" || exit 2
+                       ./show "$TESTLOG"
                fi
        else
                if grep "$EXPECTERROR" "$TESTERR" >/dev/null ; then
-                       echo "PASS: $TEST - got expected error: $EXPECTERROR"
+                       echo $ECHOFLAGS "${PASSCOLOR}PASS: $TEST - got expected error: $EXPECTERROR${NOCOLOR}"
                else
-                       echo "FAIL: $TEST - did not get expected error: $EXPECTERROR"
+                       echo $ECHOFLAGS "${FAILCOLOR}FAIL: $TEST - did not get expected error: $EXPECTERROR${NOCOLOR}"
+                       EXITCODE=1
                fi
        fi