mirror of https://github.com/lukechilds/node.git
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.
30 lines
853 B
30 lines
853 B
node.mixin(require("common.js"));
|
|
|
|
function timer (t) {
|
|
var promise = new node.Promise();
|
|
setTimeout(function () {
|
|
promise.emitSuccess();
|
|
}, t);
|
|
return promise;
|
|
}
|
|
|
|
order = 0;
|
|
var a = new Date();
|
|
function test_timeout_order(delay, desired_order) {
|
|
timer(0).addCallback(function() {
|
|
timer(delay).wait()
|
|
var b = new Date();
|
|
assertTrue(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.
|
|
// assertEquals(desired_order, order);
|
|
});
|
|
}
|
|
test_timeout_order(10000, 6); // Why does this have the proper order??
|
|
test_timeout_order(5000, 5);
|
|
test_timeout_order(4000, 4);
|
|
test_timeout_order(3000, 3);
|
|
test_timeout_order(2000, 2);
|
|
test_timeout_order(1000, 1);
|
|
|