From 2b3b2d392fbd11ce8af53b8ac5185da793f0304f Mon Sep 17 00:00:00 2001 From: Ben Noordhuis Date: Fri, 20 Mar 2015 17:35:52 +0100 Subject: [PATCH] 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 --- test/parallel/test-timers-args.js | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 test/parallel/test-timers-args.js diff --git a/test/parallel/test-timers-args.js b/test/parallel/test-timers-args.js new file mode 100644 index 00000000000000..599037b95bc6e6 --- /dev/null +++ b/test/parallel/test-timers-args.js @@ -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);