#!/bin/sh VERBOSE=0 EXITCODE=0 if [ -z "$JAVA" ] ; then JAVA=../../../src/cacao/cacao fi if [ "$1" = "--verbose" ] ; then shift VERBOSE=1 fi JASMIN_JAR=/usr/share/java/jasmin-sable.jar JASMIN="$JAVA -cp $JASMIN_JAR jasmin.Main" while [ -n "$1" ] do TEST="$1" TESTBASENAME=$(basename "$TEST" .j) TESTOUT="TESTOUT" TESTEXPECT="TESTEXPECT" TESTLOG="TESTLOG" TESTERR="TESTERR" EXPECTSTATUS=0 # compile the test $JASMIN "$TEST" || exit 2 if grep 'ERROR:' "$TEST" >/dev/null ; then EXPECTSTATUS=1 EXPECTERROR=$(grep -o 'ERROR:.*' "$TEST" | sed 's,ERROR:\s*,,') fi # run the test $JAVA "$TESTBASENAME" >"$TESTOUT" 2>"$TESTERR" TESTSTATUS=$? if [ $TESTSTATUS -ne $EXPECTSTATUS ] ; then echo "FAIL: $TEST - expected status $EXPECTSTATUS, but got $TESTSTATUS" fi if [ $EXPECTSTATUS -eq 0 ] ; then grep 'OUTPUT:' "$TEST" | sed 's,.*OUTPUT:\s*,,' >"$TESTEXPECT" if diff -u "$TESTEXPECT" "$TESTOUT" ; then echo "PASS: $TEST" else echo "FAIL: $TEST" EXITCODE=1 fi if [ "$VERBOSE" -eq "1" ] ; then $JAVA -sia "$TESTBASENAME" >"$TESTLOG" || exit 2 ./show "$TESTLOG" fi else if grep "$EXPECTERROR" "$TESTERR" >/dev/null ; then echo "PASS: $TEST - got expected error: $EXPECTERROR" else echo "FAIL: $TEST - did not get expected error: $EXPECTERROR" fi fi shift done rm -f "$TESTOUT" "$TESTEXPECT" "$TESTLOG" "$TESTERR" exit $EXITCODE