Add test timeouts

This commit is contained in:
hmelder 2024-09-09 19:46:07 +02:00
parent 1d48b14ff3
commit c6a561d713

View file

@ -55,7 +55,7 @@ GSTESTDIR=`pwd`
export GSTESTDIR export GSTESTDIR
GSTESTMODE=normal GSTESTMODE=normal
GSTESTTIMEOUT="30s"
GSMAKEOPTIONS="debug=yes" GSMAKEOPTIONS="debug=yes"
GSVERBOSECFLAG= GSVERBOSECFLAG=
@ -67,6 +67,10 @@ do
--clean) --clean)
GSTESTMODE=clean GSTESTMODE=clean
;; ;;
--timeout)
GSTESTTIMEOUT=$2
shift
;;
--debug) --debug)
GSTESTDBG="$GSTESTDIR/gdb.cmds" GSTESTDBG="$GSTESTDIR/gdb.cmds"
;; ;;
@ -112,6 +116,7 @@ do
echo "current directory if no arguments are given." echo "current directory if no arguments are given."
echo "Use 'gnustep-tests --documentation' for full details." echo "Use 'gnustep-tests --documentation' for full details."
echo "Use 'gnustep-tests --clean' to remove old logs and leftover files." echo "Use 'gnustep-tests --clean' to remove old logs and leftover files."
echo "Use 'gnustep-tests --timeout <VAL>' to change the default timeout ($GSTESTTIMEOUT)."
echo "Use 'gnustep-tests --failfast' to stop after the first failure." echo "Use 'gnustep-tests --failfast' to stop after the first failure."
echo "Use 'gnustep-tests --debug' to run gdb/lldb for any failed tests." echo "Use 'gnustep-tests --debug' to run gdb/lldb for any failed tests."
echo "Use 'gnustep-tests --make-debug' to enable make debug output." echo "Use 'gnustep-tests --make-debug' to enable make debug output."
@ -441,32 +446,35 @@ run_test ()
# Env.sh is deprecated ... we should only use TestInfo to setup for a test # Env.sh is deprecated ... we should only use TestInfo to setup for a test
if test -r ./Env.sh if test -r ./Env.sh
then then
( . ./Env.sh; $RUN_CMD ) ( . ./Env.sh; timeout $GSTESTTIMEOUT $RUN_CMD )
else else
if test -r ./make-check.env if test -r ./make-check.env
then then
( . ./make-check.env; . ./TestInfo > /dev/null 2>&1; $RUN_CMD ) ( . ./make-check.env; . ./TestInfo > /dev/null 2>&1; timeout $GSTESTTIMEOUT $RUN_CMD )
else else
( . ./TestInfo > /dev/null 2>&1; $RUN_CMD ) ( . ./TestInfo > /dev/null 2>&1; timeout $GSTESTTIMEOUT $RUN_CMD )
fi fi
fi fi
result=$? result=$?
if test $result != 0 if test $result -eq 0; then
then echo "Completed file: $TESTFILE" >&2
if test -r $TESTFILE.abort elif test $result -eq 124; then
then echo "Failed file: $TESTFILE did time out!" >&2
if test "$GSTESTMODE" = "failfast"; then
return 1
fi
else
if test -r $TESTFILE.abort; then
echo "Completed file: $TESTFILE" >&2 echo "Completed file: $TESTFILE" >&2
else else
echo "Failed file: $TESTFILE aborted without running all tests!" >&2 echo "Failed file: $TESTFILE aborted without running all tests!" >&2
if test "$GSTESTMODE" = "failfast" if test "$GSTESTMODE" = "failfast"; then
then
return 1 return 1
fi fi
fi fi
else
echo "Completed file: $TESTFILE" >&2
fi fi
else else
echo "Skipped (not built) file: $TESTFILE" >&2 echo "Skipped (not built) file: $TESTFILE" >&2
fi fi