From: Mike Hommey Date: Mon, 27 Dec 2010 09:44:28 +0000 (+0100) Subject: Add a 2 minutes timeout on xpcshell tests X-Git-Tag: archive/raspbian/68.2.0esr-1+rpi1~8^2~12 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=41794b94e7ea31812e7ad740e5b217e763ff2c96;p=firefox-esr.git Add a 2 minutes timeout on xpcshell tests Gbp-Pq: Topic debian-hacks Gbp-Pq: Name Add-a-2-minutes-timeout-on-xpcshell-tests.patch --- diff --git a/testing/xpcshell/runxpcshelltests.py b/testing/xpcshell/runxpcshelltests.py index cb3902be42d..384d4e918b7 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 @@ -710,9 +711,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...