eof.js 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. var binary = require('../');
  2. var test = require('tap').test;
  3. var EventEmitter = require('events').EventEmitter;
  4. test('eof', function (t) {
  5. t.plan(4);
  6. var stream = new EventEmitter;
  7. binary.stream(stream)
  8. .buffer('sixone', 5)
  9. .peek(function () {
  10. this.word32le('len');
  11. })
  12. .buffer('buf', 'len')
  13. .word8('x')
  14. .tap(function (vars) {
  15. t.same(
  16. [].slice.call(vars.sixone),
  17. [].slice.call(new Buffer([ 6, 1, 6, 1, 6 ]))
  18. );
  19. t.same(vars.buf.length, vars.len);
  20. t.same(
  21. [].slice.call(vars.buf),
  22. [ 9, 0, 0, 0, 97, 98, 99, 100, 101 ]
  23. );
  24. t.same(vars.x, 102);
  25. })
  26. ;
  27. var bufs = [
  28. new Buffer([ 6, 1, 6, 1, 6, 9, 0, 0, 0, 97 ]),
  29. new Buffer([ 98, 99 ]),
  30. new Buffer([ 100, 101, 102 ]),
  31. ];
  32. bufs.forEach(function (buf) {
  33. stream.emit('data', buf);
  34. });
  35. stream.emit('end');
  36. });