test.js 845 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. var pump = require('./index')
  2. var rs = require('fs').createReadStream('/dev/random')
  3. var ws = require('fs').createWriteStream('/dev/null')
  4. var toHex = function () {
  5. var reverse = new (require('stream').Transform)()
  6. reverse._transform = function (chunk, enc, callback) {
  7. reverse.push(chunk.toString('hex'))
  8. callback()
  9. }
  10. return reverse
  11. }
  12. var wsClosed = false
  13. var rsClosed = false
  14. var callbackCalled = false
  15. var check = function () {
  16. if (wsClosed && rsClosed && callbackCalled) process.exit(0)
  17. }
  18. ws.on('close', function () {
  19. wsClosed = true
  20. check()
  21. })
  22. rs.on('close', function () {
  23. rsClosed = true
  24. check()
  25. })
  26. pump(rs, toHex(), toHex(), toHex(), ws, function () {
  27. callbackCalled = true
  28. check()
  29. })
  30. setTimeout(function () {
  31. rs.destroy()
  32. }, 1000)
  33. setTimeout(function () {
  34. throw new Error('timeout')
  35. }, 5000)