X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=tests%2Fregression%2Fjasmin%2Fruntest;h=438d321609bd131cdd71f5a5f5aeb97b7e6efda5;hb=9f859ad50d3d5d98c185d40b86b2179bc4dc9aeb;hp=341de56a2c95f770e5f18cb27d4e1855f6ea9d9c;hpb=79b3ac3da37c41f415c58475896f49d92b5e53f0;p=cacao.git diff --git a/tests/regression/jasmin/runtest b/tests/regression/jasmin/runtest old mode 100755 new mode 100644 index 341de56a2..438d32160 --- a/tests/regression/jasmin/runtest +++ b/tests/regression/jasmin/runtest @@ -1,4 +1,4 @@ -#!/bin/sh +#!/bin/bash VERBOSE=0 EXITCODE=0 @@ -12,6 +12,24 @@ if [ -z "$JAVA" ] ; then JAVA=../../../src/cacao/cacao fi +if [ -z "$TIMEOUT" ] ; then + TIMEOUT=20 +fi + +if [ -n "$TIMEOUTPROG" ] ; then + if [ -x "$TIMEOUTPROG" ] ; then + echo "$0: using timeout program: $TIMEOUTPROG" + echo "$0: timeout value [s] : $TIMEOUT" + TIMEOUTRUN="$TIMEOUTPROG $TIMEOUT" + else + echo >&2 "$0: warning: timeout program not executable: $TIMEOUTPROG" + fi +fi + +if [ -z "$TIMEOUTRUN" ] ; then + echo >&2 "$0: warning: running without timeout" +fi + if [ "$1" = "--verbose" ] ; then shift VERBOSE=1 @@ -26,7 +44,9 @@ if [ "$1" = "--color" ] ; then ECHOFLAGS='-e' fi -JASMIN_JAR=/usr/share/java/jasmin-sable.jar +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" @@ -47,8 +67,10 @@ do TESTEXPECT="TESTEXPECT" TESTLOG="TESTLOG" TESTERR="TESTERR" + TESTSIA="TESTSIA" EXPECTSTATUS=0 + CHECKICMD=0 # compile the test @@ -56,12 +78,17 @@ do if grep 'ERROR:' "$TEST" >/dev/null ; then EXPECTSTATUS=1 - EXPECTERROR=$(grep -o 'ERROR:.*' "$TEST" | sed 's,ERROR:[ \t]*,,') + EXPECTERROR=$(grep 'ERROR:.*' "$TEST" | sed 's,.*ERROR:[ \t]*,,') + fi + + if grep 'ICMD:' "$TEST" >/dev/null ; then + CHECKICMD=1 + EXPECTICMD=$(grep 'ICMD:.*' "$TEST" | sed 's,.*ICMD:[ \t]*,,') fi # run the test - $JAVA $JAVAFLAGS "$TESTBASENAME" >"$TESTOUT" 2>"$TESTERR" + $TIMEOUTRUN $JAVA $JAVAFLAGS "$TESTBASENAME" >"$TESTOUT" 2>"$TESTERR" TESTSTATUS=$? if [ $TESTSTATUS -ne $EXPECTSTATUS ] ; then @@ -94,6 +121,13 @@ do fi fi + if [ "$CHECKICMD" -ne 0 ] ; then + rm -f "$TESTSIA" + touch "$TESTSIA" + $JAVA $JAVAFLAGS -sia "$TESTBASENAME" >"$TESTSIA" 2>/dev/null + cat "$TESTSIA" | sed -n '/^'"$TESTBASENAME"'\.main/,$p' | sed '/^=====.*flags: -1/,$d' | grep "$EXPECTICMD" + fi + shift done