summaryrefslogtreecommitdiffstats
path: root/debian/patches/debian-hacks/Add-a-2-minutes-timeout-on-xpcshell-tests.patch
diff options
context:
space:
mode:
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.patch47
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..1ae44c6d9d
--- /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 996590e..69aae75 100755
+--- a/testing/xpcshell/runxpcshelltests.py
++++ b/testing/xpcshell/runxpcshelltests.py
+@@ -13,6 +13,7 @@ import os
+ import pipes
+ import random
+ import re
++import select
+ import shutil
+ import signal
+ import sys
+@@ -830,9 +831,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...