0
0
mirror of https://github.com/nodejs/node.git synced 2024-11-29 23:16:30 +01:00
nodejs/test/parallel/test-zlib-destroy-pipe.js
Matteo Collina aa496f4bee zlib: check if the stream is destroyed before push
If the stream is destroyed while the transform is still being
applied, push() should not be called, and the internal state
should be cleared.

See: https://github.com/koajs/compress/issues/60
PR-URL: https://github.com/nodejs/node/pull/14330
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
2017-07-19 14:11:40 +02:00

22 lines
456 B
JavaScript

'use strict';
const common = require('../common');
const zlib = require('zlib');
const { Writable } = require('stream');
// verify that the zlib transform does not error in case
// it is destroyed with data still in flight
const ts = zlib.createGzip();
const ws = new Writable({
write: common.mustCall((chunk, enc, cb) => {
setImmediate(cb);
ts.destroy();
})
});
const buf = Buffer.allocUnsafe(1024 * 1024 * 20);
ts.end(buf);
ts.pipe(ws);