interval.js 877 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. var binary = require('../');
  2. var test = require('tap').test;
  3. var EventEmitter = require('events').EventEmitter;
  4. test('interval', function (t) {
  5. t.plan(1);
  6. var em = new EventEmitter;
  7. var i = 0;
  8. var iv = setInterval(function () {
  9. var buf = new Buffer(1000);
  10. buf[0] = 0xff;
  11. if (++i >= 1000) {
  12. clearInterval(iv);
  13. buf[0] = 0;
  14. }
  15. em.emit('data', buf);
  16. }, 1);
  17. var loops = 0;
  18. binary(em)
  19. .loop(function (end) {
  20. this
  21. .word8('x')
  22. .word8('y')
  23. .word32be('z')
  24. .word32le('w')
  25. .buffer('buf', 1000 - 10)
  26. .tap(function (vars) {
  27. loops ++;
  28. if (vars.x == 0) end();
  29. })
  30. })
  31. .tap(function () {
  32. t.same(loops, 1000);
  33. })
  34. ;
  35. });