NOCOLOR=''
ECHOFLAGS=''
-if [ -z "$JAVA" ] ; then
- JAVA=../../../src/cacao/cacao
+if [ -z "$JAVACMD" ] ; then
+ JAVACMD=../../../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
ECHOFLAGS='-e'
fi
-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"
- exit 0
-fi
-
-JASMIN="$JAVA $JAVAFLAGS -cp $JASMIN_JAR jasmin.Main"
-
-echo "java command: $JAVA $JAVAFLAGS"
-echo "jasmin command: $JASMIN"
+echo "java command: $JAVACMD $JAVAFLAGS"
while [ -n "$1" ]
do
TESTEXPECT="TESTEXPECT"
TESTLOG="TESTLOG"
TESTERR="TESTERR"
+ TESTSIA="TESTSIA"
EXPECTSTATUS=0
-
- # compile the test
-
- $JASMIN "$TEST" || exit 2
+ CHECKICMD=0
if grep 'ERROR:' "$TEST" >/dev/null ; then
EXPECTSTATUS=1
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"
+ if [ -z "$TIMEOUTRUN" ] ; then
+ eval $JAVACMD $JAVAFLAGS "$TESTBASENAME" >"$TESTOUT" 2>"$TESTERR"
+ else
+ $TIMEOUTRUN $JAVACMD $JAVAFLAGS "$TESTBASENAME" >"$TESTOUT" 2>"$TESTERR"
+ fi
TESTSTATUS=$?
if [ $TESTSTATUS -ne $EXPECTSTATUS ] ; then
fi
if [ "$VERBOSE" -eq "1" ] ; then
- $JAVA $JAVAFLAGS -sia "$TESTBASENAME" >"$TESTLOG" || exit 2
+ eval $JAVACMD $JAVAFLAGS -sia "$TESTBASENAME" >"$TESTLOG" || exit 2
./show "$TESTLOG"
fi
else
fi
fi
+ if [ "$CHECKICMD" -ne 0 ] ; then
+ rm -f "$TESTSIA"
+ touch "$TESTSIA"
+ eval $JAVACMD $JAVAFLAGS -sia "$TESTBASENAME" >"$TESTSIA" 2>/dev/null
+ cat "$TESTSIA" | sed -n '/^'"$TESTBASENAME"'\.main/,$p' | sed '/^=====.*flags: -1/,$d' | grep "$EXPECTICMD"
+ fi
+
shift
done