fune/devtools/server/tests/unit/test_eventlooplag_actor.js
Michael Brennan 8229796378 Bug 1325989 - Resolve ESLint issues in devtools/server/tests/unit. r=jryans
--HG--
extra : rebase_source : 855f1da9fc88af46e8be78c94762a90df29cb75f
2017-03-18 12:26:05 +01:00

57 lines
1.3 KiB
JavaScript

/* Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/ */
/**
* Test the eventLoopLag actor.
*/
"use strict";
function run_test() {
let {EventLoopLagFront} = require("devtools/shared/fronts/eventlooplag");
DebuggerServer.init();
DebuggerServer.addBrowserActors();
// As seen in EventTracer.cpp
let threshold = 20;
let interval = 10;
let front;
let client = new DebuggerClient(DebuggerServer.connectPipe());
// Start tracking event loop lags.
client.connect().then(function () {
client.listTabs(function (resp) {
front = new EventLoopLagFront(client, resp);
front.start().then(success => {
do_check_true(success);
front.once("event-loop-lag", gotLagEvent);
do_execute_soon(lag);
});
});
});
// Force a lag
function lag() {
let start = new Date();
let duration = threshold + interval + 1;
while (true) {
if (((new Date()) - start) > duration) {
break;
}
}
}
// Got a lag event. The test will time out if the actor
// fails to detect the lag.
function gotLagEvent(time) {
do_print("lag: " + time);
do_check_true(time >= threshold);
front.stop().then(() => {
finishClient(client);
});
}
do_test_pending();
}