11 if [ -z "$JAVACMD" ] ; then
12 JAVACMD=../../../src/cacao/cacao
15 if [ -z "$TIMEOUT" ] ; then
19 if [ -n "$TIMEOUTPROG" ] ; then
20 if [ -x "$TIMEOUTPROG" ] ; then
21 echo "$0: using timeout program: $TIMEOUTPROG"
22 echo "$0: timeout value [s] : $TIMEOUT"
23 TIMEOUTRUN="$TIMEOUTPROG $TIMEOUT"
25 echo >&2 "$0: warning: timeout program not executable: $TIMEOUTPROG"
29 if [ -z "$TIMEOUTRUN" ] ; then
30 echo >&2 "$0: warning: running without timeout"
33 if [ "$1" = "--verbose" ] ; then
38 if [ "$1" = "--color" ] ; then
41 PASSCOLOR='\033[1;32m'
42 FAILCOLOR='\033[1;31m'
47 echo "java command: $JAVACMD $JAVAFLAGS"
52 TESTBASENAME=$(basename "$TEST" .j)
55 TESTEXPECT="TESTEXPECT"
63 if grep 'ERROR:' "$TEST" >/dev/null ; then
65 EXPECTERROR=$(grep 'ERROR:.*' "$TEST" | sed 's,.*ERROR:[ \t]*,,')
68 if grep 'ICMD:' "$TEST" >/dev/null ; then
70 EXPECTICMD=$(grep 'ICMD:.*' "$TEST" | sed 's,.*ICMD:[ \t]*,,')
75 if [ -z "$TIMEOUTRUN" ] ; then
76 eval $JAVACMD $JAVAFLAGS "$TESTBASENAME" >"$TESTOUT" 2>"$TESTERR"
78 $TIMEOUTRUN $JAVACMD $JAVAFLAGS "$TESTBASENAME" >"$TESTOUT" 2>"$TESTERR"
82 if [ $TESTSTATUS -ne $EXPECTSTATUS ] ; then
83 echo $ECHOFLAGS "${FAILCOLOR}FAIL: $TESTBASENAME - expected status $EXPECTSTATUS, but got $TESTSTATUS${NOCOLOR}"
87 if [ $EXPECTSTATUS -eq 0 ] ; then
88 grep 'OUTPUT:' "$TEST" | sed 's,.*OUTPUT:[ \t]*,,' >"$TESTEXPECT"
90 if diff -u "$TESTEXPECT" "$TESTOUT" ; then
91 if [ $TESTSTATUS -eq 0 ] ; then
92 echo $ECHOFLAGS "${PASSCOLOR}PASS: $TESTBASENAME${NOCOLOR}"
95 echo $ECHOFLAGS "${FAILCOLOR}FAIL: $TESTBASENAME - wrong output${NOCOLOR}"
99 if [ "$VERBOSE" -eq "1" ] ; then
100 eval $JAVACMD $JAVAFLAGS -sia "$TESTBASENAME" >"$TESTLOG" || exit 2
104 if grep "$EXPECTERROR" "$TESTERR" >/dev/null ; then
105 echo $ECHOFLAGS "${PASSCOLOR}PASS: $TESTBASENAME - got expected error: $EXPECTERROR${NOCOLOR}"
107 echo $ECHOFLAGS "${FAILCOLOR}FAIL: $TESTBASENAME - did not get expected error: $EXPECTERROR${NOCOLOR}"
112 if [ "$CHECKICMD" -ne 0 ] ; then
115 eval $JAVACMD $JAVAFLAGS -sia "$TESTBASENAME" >"$TESTSIA" 2>/dev/null
116 cat "$TESTSIA" | sed -n '/^'"$TESTBASENAME"'\.main/,$p' | sed '/^=====.*flags: -1/,$d' | grep "$EXPECTICMD"
122 rm -f "$TESTOUT" "$TESTEXPECT" "$TESTLOG" "$TESTERR"