Skip to content

Commit

Permalink
test: add setTimeout/setInterval multi-arg tests
Browse files Browse the repository at this point in the history
It turns out we have little to no test coverage for setTimeout() and
setInterval() calls with optional arguments.  Now we do.

PR-URL: #1221
Reviewed-By: Trevor Norris <trev.norris@gmail.com>
  • Loading branch information
bnoordhuis committed Mar 20, 2015
1 parent 33fea6e commit 2b3b2d3
Showing 1 changed file with 30 additions and 0 deletions.
30 changes: 30 additions & 0 deletions test/parallel/test-timers-args.js
Original file line number Diff line number Diff line change
@@ -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);

0 comments on commit 2b3b2d3

Please sign in to comment.