| var pump = require('./index') | |
| 
 | |
| var rs = require('fs').createReadStream('/dev/random') | |
| var ws = require('fs').createWriteStream('/dev/null') | |
| 
 | |
| var toHex = function () { | |
|   var reverse = new (require('stream').Transform)() | |
| 
 | |
|   reverse._transform = function (chunk, enc, callback) { | |
|     reverse.push(chunk.toString('hex')) | |
|     callback() | |
|   } | |
| 
 | |
|   return reverse | |
| } | |
| 
 | |
| var wsClosed = false | |
| var rsClosed = false | |
| var callbackCalled = false | |
| 
 | |
| var check = function () { | |
|   if (wsClosed && rsClosed && callbackCalled) { | |
|     console.log('test-node.js passes') | |
|     clearTimeout(timeout) | |
|   } | |
| } | |
| 
 | |
| ws.on('close', function () { | |
|   wsClosed = true | |
|   check() | |
| }) | |
| 
 | |
| rs.on('close', function () { | |
|   rsClosed = true | |
|   check() | |
| }) | |
| 
 | |
| var res = pump(rs, toHex(), toHex(), toHex(), ws, function () { | |
|   callbackCalled = true | |
|   check() | |
| }) | |
| 
 | |
| if (res !== ws) { | |
|   throw new Error('should return last stream') | |
| } | |
| 
 | |
| setTimeout(function () { | |
|   rs.destroy() | |
| }, 1000) | |
| 
 | |
| var timeout = setTimeout(function () { | |
|   throw new Error('timeout') | |
| }, 5000)
 |