* tests/regression/jasmin/runtest: Delete temporary files.
[cacao.git] / tests / regression / jasmin / runtest
1 #!/bin/sh
2
3 VERBOSE=0
4 EXITCODE=0
5
6 if [ -z "$JAVA" ] ; then
7         JAVA=../../../src/cacao/cacao
8 fi
9
10 if [ "$1" = "--verbose" ] ; then
11         shift
12         VERBOSE=1
13 fi
14
15 JASMIN_JAR=/usr/share/java/jasmin-sable.jar
16 JASMIN="$JAVA -cp $JASMIN_JAR jasmin.Main"
17
18 while [ -n "$1" ]
19 do
20     TEST="$1"
21     TESTBASENAME=$(basename "$TEST" .j)
22
23     TESTOUT="TESTOUT"
24     TESTEXPECT="TESTEXPECT"
25     TESTLOG="TESTLOG"
26     TESTERR="TESTERR"
27
28         EXPECTSTATUS=0
29
30         # compile the test
31
32     $JASMIN "$TEST" || exit 2
33
34         if grep 'ERROR:' "$TEST" >/dev/null ; then
35                 EXPECTSTATUS=1
36                 EXPECTERROR=$(grep -o 'ERROR:.*' "$TEST" | sed 's,ERROR:\s*,,')
37         fi
38
39         # run the test
40
41     $JAVA "$TESTBASENAME" >"$TESTOUT" 2>"$TESTERR"
42         TESTSTATUS=$?
43
44         if [ $TESTSTATUS -ne $EXPECTSTATUS ] ; then
45                 echo "FAIL: $TEST - expected status $EXPECTSTATUS, but got $TESTSTATUS"
46         fi
47
48         if [ $EXPECTSTATUS -eq 0 ] ; then
49                 grep 'OUTPUT:' "$TEST" | sed 's,.*OUTPUT:\s*,,' >"$TESTEXPECT"
50
51                 if diff -u "$TESTEXPECT" "$TESTOUT" ; then
52                         echo "PASS: $TEST"
53                 else
54                         echo "FAIL: $TEST"
55                 EXITCODE=1
56                 fi
57
58                 if [ "$VERBOSE" -eq "1" ] ; then
59                 $JAVA -sia "$TESTBASENAME" >"$TESTLOG" || exit 2
60                 ./show "$TESTLOG"
61                 fi
62         else
63                 if grep "$EXPECTERROR" "$TESTERR" >/dev/null ; then
64                         echo "PASS: $TEST - got expected error: $EXPECTERROR"
65                 else
66                         echo "FAIL: $TEST - did not get expected error: $EXPECTERROR"
67                 fi
68         fi
69
70     shift
71 done
72
73 rm -f "$TESTOUT" "$TESTEXPECT" "$TESTLOG" "$TESTERR"
74
75 exit $EXITCODE
76