* tests/regression/jasmin/runtest: Added harness code for expecting errors.
authoredwin <none@none>
Sun, 10 Sep 2006 13:43:02 +0000 (13:43 +0000)
committeredwin <none@none>
Sun, 10 Sep 2006 13:43:02 +0000 (13:43 +0000)
--HG--
branch : unified_variables

tests/regression/jasmin/runtest

index cd1a1d8c0786f680b261a2e5ad3fbc3427c3ff68..d00188ffad68b632c45de8164dc91cffe22f29a0 100755 (executable)
@@ -23,23 +23,49 @@ do
     TESTOUT="TESTOUT"
     TESTEXPECT="TESTEXPECT"
     TESTLOG="TESTLOG"
+    TESTERR="TESTERR"
+
+       EXPECTSTATUS=0
+
+       # compile the test
 
     $JASMIN "$TEST" || exit 2
-    $JAVA "$TESTBASENAME" >"$TESTOUT" || exit 2
 
-    grep 'OUTPUT:' "$TEST" | sed 's,.*OUTPUT:\s*,,' >"$TESTEXPECT"
+       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 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
+               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