Skip to content

Commit

Permalink
Merge pull request #88 from w3c/jgraham/stack_trace
Browse files Browse the repository at this point in the history
Log the stack trace for failures, where available
  • Loading branch information
jgraham committed Mar 13, 2015
2 parents cd49e9e + f681f9b commit 421ca30
Show file tree
Hide file tree
Showing 6 changed files with 13 additions and 8 deletions.
2 changes: 1 addition & 1 deletion wptrunner/executors/base.py
Original file line number Diff line number Diff line change
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
Original file line number Diff line number Diff line change
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
5 changes: 3 additions & 2 deletions wptrunner/executors/testharness_webdriver.js
Original file line number Diff line number Diff line change
Expand Up @@ -8,12 +8,13 @@ window.timeout_multiplier = %(timeout_multiplier)d;
window.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}
});
callback({test:"%(url)s",
tests:test_results,
status: status.status,
message: status.message});
message: status.message,
stack: status.stack});
}

window.win = window.open("%(abs_url)s", "%(window_id)s");
Expand Down
3 changes: 2 additions & 1 deletion wptrunner/testharnessreport-servo.js
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,10 @@ setup(props);
add_completion_callback(function (tests, harness_status) {
alert("RESULT: " + JSON.stringify({
tests: tests.map(function(t) {
return { name: t.name, status: t.status, message: t.message }
return { name: t.name, status: t.status, message: t.message, stack: t.stack}
}),
status: harness_status.status,
message: harness_status.message,
stack: harness_status.stack,
}));
});
3 changes: 2 additions & 1 deletion wptrunner/testrunner.py
Original file line number Diff line number Diff line change
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
Original file line number Diff line number Diff line change
Expand Up @@ -21,12 +21,13 @@ 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.stack = stack
self.expected = expected


Expand Down

0 comments on commit 421ca30

Please sign in to comment.