You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

31 lines
863 B

process.mixin(require("./common"));
function timer (t) {
var promise = new process.Promise();
setTimeout(function () {
promise.emitSuccess();
}, t);
return promise;
}
order = 0;
var a = new Date();
function test_timeout_order(delay, desired_order) {
delay *= 10;
timer(0).addCallback(function() {
timer(delay).wait()
var b = new Date();
assert.equal(true, b - a >= delay);
order++;
// A stronger assertion would be that the ordering is correct.
// With Poor Man's coroutines we cannot guarentee that.
// Replacing wait() with actual coroutines would solve that issue.
// assert.equal(desired_order, order);
});
}
test_timeout_order(10, 6); // Why does this have the proper order??
test_timeout_order(5, 5);
test_timeout_order(4, 4);
test_timeout_order(3, 3);
test_timeout_order(2, 2);
test_timeout_order(1, 1);