Skip to content

Commit

Permalink
test: keep test/parallel/test-stream-pipe-flow
Browse files Browse the repository at this point in the history
Refs: nodejs#18515
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
  • Loading branch information
mafintosh authored and addaleax committed Feb 7, 2018
1 parent 203e607 commit 1779c7d
Showing 1 changed file with 67 additions and 0 deletions.
67 changes: 67 additions & 0 deletions test/parallel/test-stream-pipe-flow.js
@@ -0,0 +1,67 @@
'use strict';
const common = require('../common');
const { Readable, Writable, PassThrough } = require('stream');

{
let ticks = 17;

const rs = new Readable({
objectMode: true,
read: () => {
if (ticks-- > 0)
return process.nextTick(() => rs.push({}));
rs.push({});
rs.push(null);
}
});

const ws = new Writable({
highWaterMark: 0,
objectMode: true,
write: (data, end, cb) => setImmediate(cb)
});

rs.on('end', common.mustCall());
ws.on('finish', common.mustCall());
rs.pipe(ws);
}

{
let missing = 8;

const rs = new Readable({
objectMode: true,
read: () => {
if (missing--) rs.push({});
else rs.push(null);
}
});

const pt = rs
.pipe(new PassThrough({ objectMode: true, highWaterMark: 2 }))
.pipe(new PassThrough({ objectMode: true, highWaterMark: 2 }));

pt.on('end', function() {
wrapper.push(null);
});

const wrapper = new Readable({
objectMode: true,
read: () => {
process.nextTick(function() {
let data = pt.read();
if (data === null) {
pt.once('readable', function() {
data = pt.read();
if (data !== null) wrapper.push(data);
});
} else {
wrapper.push(data);
}
});
}
});

wrapper.resume();
wrapper.on('end', common.mustCall());
}

0 comments on commit 1779c7d

Please sign in to comment.