From 0b96fb22f30cd8049395b907224af10f36c2dbdc Mon Sep 17 00:00:00 2001 From: "sgjesse@chromium.org" Date: Wed, 29 Oct 2008 12:51:14 +0000 Subject: [PATCH] Added crash detection to tests on Linux. Added the timeout condition to the CommandOutput class. Review URL: http://codereview.chromium.org/8695 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@639 ce2b1a6d-e550-0410-aec6-3dcde31c8c00 --- test/mozilla/mozilla.status | 2 +- tools/test.py | 13 +++++++++---- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/test/mozilla/mozilla.status b/test/mozilla/mozilla.status index 46ecc4862..a5448c49e 100644 --- a/test/mozilla/mozilla.status +++ b/test/mozilla/mozilla.status @@ -193,7 +193,7 @@ ecma/String/15.5.4.12-4: FAIL_OK # unicode version converts it to itself. ecma/String/15.5.4.12-5: FAIL_OK -# Creates a linked list of arrays until we run out of memory. +# Creates a linked list of arrays until we run out of memory or timeout. js1_5/Regress/regress-312588: FAIL_OK diff --git a/tools/test.py b/tools/test.py index 037e1cf42..5b3579b7a 100755 --- a/tools/test.py +++ b/tools/test.py @@ -314,8 +314,9 @@ PROGRESS_INDICATORS = { class CommandOutput(object): - def __init__(self, exit_code, stdout, stderr): + def __init__(self, exit_code, timed_out, stdout, stderr): self.exit_code = exit_code + self.timed_out = timed_out self.stdout = stdout self.stderr = stderr @@ -372,7 +373,11 @@ class TestOutput(object): if platform.system() == 'Windows': return 0x80000000 & self.output.exit_code and not (0x3FFFFF00 & self.output.exit_code) else: - return False + # Timed out tests will have exit_code -signal.SIGTERM. + if self.output.timed_out: + return False + return self.output.exit_code < 0 and \ + self.output.exit_code != -signal.SIGABRT def HasFailed(self): execution_failed = self.test.DidFail(self.output) @@ -471,7 +476,7 @@ def Execute(args, context, timeout=None): PrintError(str(e)) CheckedUnlink(outname) CheckedUnlink(errname) - return CommandOutput(exit_code, output, errors) + return CommandOutput(exit_code, timed_out, output, errors) def ExecuteNoCapture(args, context, timeout=None): @@ -480,7 +485,7 @@ def ExecuteNoCapture(args, context, timeout=None): timeout, args = args, ) - return CommandOutput(exit_code, "", "") + return CommandOutput(exit_code, False, "", "") def CarCdr(path): -- 2.34.1