1 | var assert = require('assert');
|
2 | var pump = require('./index');
|
3 |
|
4 | var rs = require('fs').createReadStream('/dev/random');
|
5 | var ws = require('fs').createWriteStream('/dev/null');
|
6 |
|
7 | var toHex = function() {
|
8 | var reverse = new (require('stream').Transform)();
|
9 |
|
10 | reverse._transform = function(chunk, enc, callback) {
|
11 | reverse.push(chunk.toString('hex'));
|
12 | callback();
|
13 | };
|
14 |
|
15 | return reverse;
|
16 | };
|
17 |
|
18 | var wsClosed = false;
|
19 | var rsClosed = false;
|
20 | var callbackCalled = false;
|
21 |
|
22 | var check = function() {
|
23 | if (wsClosed && rsClosed && callbackCalled) process.exit(0);
|
24 | };
|
25 |
|
26 | ws.on('close', function() {
|
27 | wsClosed = true;
|
28 | check();
|
29 | });
|
30 |
|
31 | rs.on('close', function() {
|
32 | rsClosed = true;
|
33 | check();
|
34 | });
|
35 |
|
36 | pump(rs, toHex(), toHex(), toHex(), ws, function(err) {
|
37 | callbackCalled = true;
|
38 | check();
|
39 | });
|
40 |
|
41 | setTimeout(function() {
|
42 | rs.destroy();
|
43 | }, 1000);
|
44 |
|
45 | setTimeout(function() {
|
46 | throw new Error('timeout');
|
47 | }, 5000); |
\ | No newline at end of file |