gotest: Add external timeout if internal timeout fails.
authorIan Lance Taylor <ian@gcc.gnu.org>
Tue, 5 Apr 2011 21:11:35 +0000 (21:11 +0000)
committerIan Lance Taylor <ian@gcc.gnu.org>
Tue, 5 Apr 2011 21:11:35 +0000 (21:11 +0000)
From-SVN: r172003

libgo/testsuite/gotest

index 650e4333c0b44b56b711ca2c4262502c5651b037..cae420f4f4bd413b53c053b64702236d1b846bf5 100755 (executable)
@@ -377,7 +377,20 @@ case "x$dejagnu" in
 xno)
        ${GC} -g -c _testmain.go
        ${GL} *.o ${GOLIBS}
-       ./a.out -test.short -test.timeout=$timeout "$@"
+
+       ./a.out -test.short -test.timeout=$timeout "$@" &
+       pid=$!
+       (sleep `expr $timeout + 10`
+           echo > gotest-timeout
+           echo "timed out in gotest" 1>&2
+           kill -9 $pid) &
+       alarmpid=$!
+       wait $pid
+       status=$?
+       if ! test -f gotest-timeout; then
+           kill $alarmpid
+       fi
+       exit $status
        ;;
 xyes)
        rm -rf ../testsuite/*.o