--- /dev/null
+var binary = require('../');
+var test = require('tap').test;
+var EventEmitter = require('events').EventEmitter;
+
+test('interval', function (t) {
+ t.plan(1);
+
+ var em = new EventEmitter;
+ var i = 0;
+ var iv = setInterval(function () {
+ var buf = new Buffer(1000);
+ buf[0] = 0xff;
+ if (++i >= 1000) {
+ clearInterval(iv);
+ buf[0] = 0;
+ }
+ em.emit('data', buf);
+ }, 1);
+
+ var loops = 0;
+ binary(em)
+ .loop(function (end) {
+ this
+ .word8('x')
+ .word8('y')
+ .word32be('z')
+ .word32le('w')
+ .buffer('buf', 1000 - 10)
+ .tap(function (vars) {
+ loops ++;
+ if (vars.x == 0) end();
+ })
+ })
+ .tap(function () {
+ t.same(loops, 1000);
+ })
+ ;
+});