diff options
Diffstat (limited to 'debian/patches/debian-hacks/Add-a-2-minutes-timeout-on-xpcshell-tests.patch')
-rw-r--r-- | debian/patches/debian-hacks/Add-a-2-minutes-timeout-on-xpcshell-tests.patch | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/debian/patches/debian-hacks/Add-a-2-minutes-timeout-on-xpcshell-tests.patch b/debian/patches/debian-hacks/Add-a-2-minutes-timeout-on-xpcshell-tests.patch new file mode 100644 index 0000000000..2aaafbfd9b --- /dev/null +++ b/debian/patches/debian-hacks/Add-a-2-minutes-timeout-on-xpcshell-tests.patch @@ -0,0 +1,47 @@ +From: Mike Hommey <mh@glandium.org> +Date: Mon, 27 Dec 2010 10:44:28 +0100 +Subject: Add a 2 minutes timeout on xpcshell tests + +--- + testing/xpcshell/runxpcshelltests.py | 21 ++++++++++++++++++--- + 1 file changed, 18 insertions(+), 3 deletions(-) + +diff --git a/testing/xpcshell/runxpcshelltests.py b/testing/xpcshell/runxpcshelltests.py +index 8a5378e..42e8255 100755 +--- a/testing/xpcshell/runxpcshelltests.py ++++ b/testing/xpcshell/runxpcshelltests.py +@@ -10,6 +10,7 @@ import os + import pipes + import random + import re ++import select + import shutil + import signal + import subprocess +@@ -838,9 +839,23 @@ class XPCShellTestThread(Thread): + if self.interactive: + self.log.info("%s | Process ID: %d" % (name, self.proc_ident)) + +- # Communicate returns a tuple of (stdout, stderr), however we always +- # redirect stderr to stdout, so the second element is ignored. +- process_output, _ = self.communicate(proc) ++ if self.pStdout == PIPE: ++ process_stdout = "" ++ while True: ++ (r, w, e) = select.select([proc.stdout], [], [], 120) ++ if len(r) == 0: ++ process_stdout += "TEST-UNEXPECTED-FAIL | %s | application timed out after 120 seconds with no output" % (test) ++ proc.kill() ++ break ++ line = proc.stdout.read(1) ++ if line == "": ++ break ++ process_stdout += line ++ proc.wait() ++ else: ++ # Communicate returns a tuple of (stdout, stderr), however we always ++ # redirect stderr to stdout, so the second element is ignored. ++ process_output, _ = self.communicate(proc) + + if self.interactive: + # Not sure what else to do here... |