Skip to content
This repository has been archived by the owner on Dec 18, 2018. It is now read-only.

Commit

Permalink
Log the stack trace for failures, where available
Browse files Browse the repository at this point in the history
  • Loading branch information
jgraham committed Mar 12, 2015
1 parent a86ab86 commit 3427fed
Show file tree
Hide file tree
Showing 4 changed files with 8 additions and 5 deletions.
2 changes: 1 addition & 1 deletion wptrunner/executors/base.py
Expand Up @@ -60,7 +60,7 @@ def __call__(self, test, result):
harness_result = test.result_cls(self.harness_codes[result["status"]], result["message"])
return (harness_result,
[test.subtest_result_cls(subtest["name"], self.test_codes[subtest["status"]],
subtest["message"]) for subtest in result["tests"]])
subtest["message"], subtest.get("stack", None)) for subtest in result["tests"]])
testharness_result_converter = TestharnessResultConverter()


Expand Down
5 changes: 3 additions & 2 deletions wptrunner/executors/testharness_marionette.js
Expand Up @@ -8,12 +8,13 @@ window.wrappedJSObject.explicit_timeout = %(explicit_timeout)d;
window.wrappedJSObject.done = function(tests, status) {
clearTimeout(timer);
var test_results = tests.map(function(x) {
return {name:x.name, status:x.status, message:x.message}
return {name:x.name, status:x.status, message:x.message, stack:x.stack}
});
marionetteScriptFinished({test:"%(url)s",
tests:test_results,
status: status.status,
message: status.message});
message: status.message,
stack: status.stack});
}

window.wrappedJSObject.win = window.open("%(abs_url)s", "%(window_id)s");
Expand Down
3 changes: 2 additions & 1 deletion wptrunner/testrunner.py
Expand Up @@ -498,7 +498,8 @@ def test_ended(self, test, results):
result.name,
result.status,
message=result.message,
expected=expected)
expected=expected,
stack=result.stack)

# TODO: consider changing result if there is a crash dump file

Expand Down
3 changes: 2 additions & 1 deletion wptrunner/wpttest.py
Expand Up @@ -21,13 +21,14 @@ def __init__(self, status, message, expected=None, extra=None):


class SubtestResult(object):
def __init__(self, name, status, message, expected=None):
def __init__(self, name, status, message, stack=None, expected=None):
self.name = name
if status not in self.statuses:
raise ValueError("Unrecognised status %s" % status)
self.status = status
self.message = message
self.expected = expected
self.stack = stack


class TestharnessResult(Result):
Expand Down

0 comments on commit 3427fed

Please sign in to comment.