Files
palemoon27/toolkit/devtools/server/tests/unit/test_trace_actor-13.js
T

59 lines
1.3 KiB
JavaScript

/* Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/ */
/**
* Test that job scheduler orders the jobs correctly.
*/
let { JobScheduler } = devtools.require("devtools/server/actors/tracer");
function run_test()
{
do_test_pending();
test_in_order();
test_shuffled();
do_timeout(0, do_test_finished);
}
function test_in_order() {
let jobScheduler = new JobScheduler();
let testArray = [0];
let first = jobScheduler.schedule();
let second = jobScheduler.schedule();
let third = jobScheduler.schedule();
first(() => testArray.push(1));
second(() => testArray.push(2));
third(() => testArray.push(3));
do_timeout(0, () => {
do_check_eq(testArray[0], 0);
do_check_eq(testArray[1], 1);
do_check_eq(testArray[2], 2);
do_check_eq(testArray[3], 3);
});
}
function test_shuffled() {
let jobScheduler = new JobScheduler();
let testArray = [0];
let first = jobScheduler.schedule();
let second = jobScheduler.schedule();
let third = jobScheduler.schedule();
third(() => testArray.push(3));
first(() => testArray.push(1));
second(() => testArray.push(2));
do_timeout(0, () => {
do_check_eq(testArray[0], 0);
do_check_eq(testArray[1], 1);
do_check_eq(testArray[2], 2);
do_check_eq(testArray[3], 3);
});
}