VERBOSE=0
EXITCODE=0
+COLOR=0
+PASSCOLOR=''
+FAILCOLOR=''
+NOCOLOR=''
+ECHOFLAGS=''
if [ -z "$JAVA" ] ; then
JAVA=../../../src/cacao/cacao
VERBOSE=1
fi
-JASMIN_JAR=/usr/share/java/jasmin-sable.jar
-JASMIN="$JAVA -cp $JASMIN_JAR jasmin.Main"
+if [ "$1" = "--color" ] ; then
+ shift
+ COLOR=1
+ PASSCOLOR='\033[1;32m'
+ FAILCOLOR='\033[1;31m'
+ NOCOLOR='\033[0m'
+ 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"
while [ -n "$1" ]
do
if grep 'ERROR:' "$TEST" >/dev/null ; then
EXPECTSTATUS=1
- EXPECTERROR=$(grep -o 'ERROR:.*' "$TEST" | sed 's,ERROR:\s*,,')
+ EXPECTERROR=$(grep -o 'ERROR:.*' "$TEST" | sed 's,ERROR:[ \t]*,,')
fi
# 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: $TESTBASENAME - expected status $EXPECTSTATUS, but got $TESTSTATUS${NOCOLOR}"
+ EXITCODE=1
fi
if [ $EXPECTSTATUS -eq 0 ] ; then
- grep 'OUTPUT:' "$TEST" | sed 's,.*OUTPUT:\s*,,' >"$TESTEXPECT"
+ grep 'OUTPUT:' "$TEST" | sed 's,.*OUTPUT:[ \t]*,,' >"$TESTEXPECT"
if diff -u "$TESTEXPECT" "$TESTOUT" ; then
- echo "PASS: $TEST"
+ if [ $TESTSTATUS -eq 0 ] ; then
+ echo $ECHOFLAGS "${PASSCOLOR}PASS: $TESTBASENAME${NOCOLOR}"
+ fi
else
- echo "FAIL: $TEST"
- EXITCODE=1
+ echo $ECHOFLAGS "${FAILCOLOR}FAIL: $TESTBASENAME - 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: $TESTBASENAME - got expected error: $EXPECTERROR${NOCOLOR}"
else
- echo "FAIL: $TEST - did not get expected error: $EXPECTERROR"
+ echo $ECHOFLAGS "${FAILCOLOR}FAIL: $TESTBASENAME - did not get expected error: $EXPECTERROR${NOCOLOR}"
+ EXITCODE=1
fi
fi
shift
done
-#rm -f "$TESTOUT" "$TESTEXPECT" "$TESTLOG"
+rm -f "$TESTOUT" "$TESTEXPECT" "$TESTLOG" "$TESTERR"
exit $EXITCODE