test: add setTimeout/setInterval multi-arg tests

It turns out we have little to no test coverage for setTimeout() and
setInterval() calls with optional arguments.  Now we do.

PR-URL: https://github.com/iojs/io.js/pull/1221
Reviewed-By: Trevor Norris <trev.norris@gmail.com>
pull/1221/head
Ben Noordhuis 2015-03-20 17:35:52 +01:00
parent 33fea6ed5f
commit 2b3b2d392f
1 changed files with 30 additions and 0 deletions

View File

@ -0,0 +1,30 @@
var common = require('../common');
var assert = require('assert');
function range(n) {
return 'x'.repeat(n + 1).split('').map(function(_, i) { return i; });
}
function timeout(nargs) {
var args = range(nargs);
setTimeout.apply(null, [callback, 1].concat(args));
function callback() {
assert.deepEqual([].slice.call(arguments), args);
if (nargs < 128) timeout(nargs + 1);
}
}
function interval(nargs) {
var args = range(nargs);
var timer = setTimeout.apply(null, [callback, 1].concat(args));
function callback() {
clearInterval(timer);
assert.deepEqual([].slice.call(arguments), args);
if (nargs < 128) interval(nargs + 1);
}
}
timeout(0);
interval(0);