11 if [ -z "$JAVA" ] ; then
12 JAVA=../../../src/cacao/cacao
15 if [ "$1" = "--verbose" ] ; then
20 if [ "$1" = "--color" ] ; then
23 PASSCOLOR='\033[1;32m'
24 FAILCOLOR='\033[1;31m'
29 if [ -z "$JASMIN_JAR" ] ; then
30 JASMIN_JAR=/usr/share/java/jasmin-sable.jar
33 if [ ! -r "$JASMIN_JAR" ] ; then
34 echo >&2 "$0: warning: jasmin .jar is not available at $JASMIN_JAR"
38 JASMIN="$JAVA $JAVAFLAGS -cp $JASMIN_JAR jasmin.Main"
40 echo "java command: $JAVA $JAVAFLAGS"
41 echo "jasmin command: $JASMIN"
46 TESTBASENAME=$(basename "$TEST" .j)
49 TESTEXPECT="TESTEXPECT"
57 $JASMIN "$TEST" || exit 2
59 if grep 'ERROR:' "$TEST" >/dev/null ; then
61 EXPECTERROR=$(grep 'ERROR:.*' "$TEST" | sed 's,.*ERROR:[ \t]*,,')
66 $JAVA $JAVAFLAGS "$TESTBASENAME" >"$TESTOUT" 2>"$TESTERR"
69 if [ $TESTSTATUS -ne $EXPECTSTATUS ] ; then
70 echo $ECHOFLAGS "${FAILCOLOR}FAIL: $TESTBASENAME - expected status $EXPECTSTATUS, but got $TESTSTATUS${NOCOLOR}"
74 if [ $EXPECTSTATUS -eq 0 ] ; then
75 grep 'OUTPUT:' "$TEST" | sed 's,.*OUTPUT:[ \t]*,,' >"$TESTEXPECT"
77 if diff -u "$TESTEXPECT" "$TESTOUT" ; then
78 if [ $TESTSTATUS -eq 0 ] ; then
79 echo $ECHOFLAGS "${PASSCOLOR}PASS: $TESTBASENAME${NOCOLOR}"
82 echo $ECHOFLAGS "${FAILCOLOR}FAIL: $TESTBASENAME - wrong output${NOCOLOR}"
86 if [ "$VERBOSE" -eq "1" ] ; then
87 $JAVA $JAVAFLAGS -sia "$TESTBASENAME" >"$TESTLOG" || exit 2
91 if grep "$EXPECTERROR" "$TESTERR" >/dev/null ; then
92 echo $ECHOFLAGS "${PASSCOLOR}PASS: $TESTBASENAME - got expected error: $EXPECTERROR${NOCOLOR}"
94 echo $ECHOFLAGS "${FAILCOLOR}FAIL: $TESTBASENAME - did not get expected error: $EXPECTERROR${NOCOLOR}"
102 rm -f "$TESTOUT" "$TESTEXPECT" "$TESTLOG" "$TESTERR"