Bug 1459927 - Traverse nsIStackFrame async callers when reporting browser-chrome test harness failures. r=ted.mielczarek draft
authorPaolo Amadini <paolo.mozmail@amadzone.org>
Tue, 08 May 2018 15:10:01 +0100
changeset 792522 cb96c8338b5d1b624e148a1e6bb5d3538691caa5
parent 792270 59005ba3cd3e7b3f9e8804bea881bf4c3a755d7c
child 792602 b928280e1209efd6097ecb73b4a8696bc1990b58
push id109124
push userpaolo.mozmail@amadzone.org
push dateTue, 08 May 2018 14:11:38 +0000
reviewersted.mielczarek
bugs1459927
milestone62.0a1
Bug 1459927 - Traverse nsIStackFrame async callers when reporting browser-chrome test harness failures. r=ted.mielczarek MozReview-Commit-ID: BZ1bt1amerq
testing/mochitest/browser-test.js
--- a/testing/mochitest/browser-test.js
+++ b/testing/mochitest/browser-test.js
@@ -1243,18 +1243,19 @@ function testResult({ name, pass, todo, 
     this.msg += String(ex);
   }
 
   if (stack) {
     this.msg += "\nStack trace:\n";
     let normalized;
     if (stack instanceof Ci.nsIStackFrame) {
       let frames = [];
-      for (let frame = stack; frame; frame = frame.caller) {
-        frames.push(frame.filename + ":" + frame.name + ":" + frame.lineNumber);
+      for (let frame = stack; frame; frame = frame.asyncCaller || frame.caller) {
+        let msg = `${frame.filename}:${frame.name}:${frame.lineNumber}`;
+        frames.push(frame.asyncCause ? `${frame.asyncCause}*${msg}` : msg);
       }
       normalized = frames.join("\n");
     } else {
       normalized = "" + stack;
     }
     this.msg += normalized;
   }