| 'use strict'; |
| |
| const common = require('../common'); |
| const assert = require('assert'); |
| const { Readable } = require('stream'); |
| |
| const buf = Buffer.alloc(8192); |
| |
| const readable = new Readable({ |
| read: common.mustCall(function() { |
| this.push(buf); |
| }, 31) |
| }); |
| |
| let i = 0; |
| |
| readable.on('readable', common.mustCall(function() { |
| if (i++ === 10) { |
| // We will just terminate now. |
| process.removeAllListeners('readable'); |
| return; |
| } |
| |
| const data = readable.read(); |
| // TODO(mcollina): there is something odd in the highWaterMark logic |
| // investigate. |
| if (i === 1) { |
| assert.strictEqual(data.length, 8192 * 2); |
| } else { |
| assert.strictEqual(data.length, 8192 * 3); |
| } |
| }, 11)); |