forked from mirrors/gecko-dev
test_stepping-12.js wasn't correctly waiting for thread to be resumed between each of its sub test. Similarly, other tests weren't waiting for thread front's resume request to be resume. I'm also spreading the usage of resumeAndWaitForPause to better ensure we resume and wait for next paused event without any race condition. Listening to "paused" after calling "resume" is subject to race conditions. Differential Revision: https://phabricator.services.mozilla.com/D136125
56 lines
1.3 KiB
JavaScript
56 lines
1.3 KiB
JavaScript
/* Any copyright is dedicated to the Public Domain.
|
|
http://creativecommons.org/publicdomain/zero/1.0/ */
|
|
|
|
"use strict";
|
|
|
|
/**
|
|
* Check basic getSources functionality.
|
|
*/
|
|
|
|
var gNumTimesSourcesSent = 0;
|
|
|
|
add_task(
|
|
threadFrontTest(async ({ threadFront, debuggee, client }) => {
|
|
client.request = (function(origRequest) {
|
|
return function(request, onResponse) {
|
|
if (request.type === "sources") {
|
|
++gNumTimesSourcesSent;
|
|
}
|
|
return origRequest.call(this, request, onResponse);
|
|
};
|
|
})(client.request);
|
|
|
|
await executeOnNextTickAndWaitForPause(
|
|
() => evalCode(debuggee),
|
|
threadFront
|
|
);
|
|
|
|
const response = await threadFront.getSources();
|
|
|
|
Assert.ok(
|
|
response.sources.some(function(s) {
|
|
return s.url && s.url.match(/test_listsources-01.js/);
|
|
})
|
|
);
|
|
|
|
Assert.ok(
|
|
gNumTimesSourcesSent <= 1,
|
|
"Should only send one sources request at most, even though we" +
|
|
" might have had to send one to determine feature support."
|
|
);
|
|
|
|
await threadFront.resume();
|
|
})
|
|
);
|
|
|
|
function evalCode(debuggee) {
|
|
/* eslint-disable */
|
|
Cu.evalInSandbox(
|
|
"var line0 = Error().lineNumber;\n" +
|
|
"debugger;\n" + // line0 + 1
|
|
"var a = 1;\n" + // line0 + 2
|
|
"var b = 2;\n", // line0 + 3
|
|
debuggee
|
|
);
|
|
/* eslint-enable */
|
|
}
|