0
0
mirror of https://github.com/nodejs/node.git synced 2024-11-29 23:16:30 +01:00
nodejs/test/mjsunit/test-wait-ordering.js
2009-09-20 18:19:33 +02:00

31 lines
841 B
JavaScript

include("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);