mirror of https://gitee.com/openkylin/nodejs.git
38 lines
895 B
JavaScript
38 lines
895 B
JavaScript
'use strict';
|
|
const common = require('../common');
|
|
const assert = require('assert');
|
|
const zlib = require('zlib');
|
|
|
|
// Tests that zlib streams support .reset() and .params()
|
|
// before the first write. That is important to ensure that
|
|
// lazy init of zlib native library handles these cases.
|
|
|
|
for (const fn of [
|
|
(z, cb) => {
|
|
z.reset();
|
|
cb();
|
|
},
|
|
(z, cb) => z.params(0, zlib.constants.Z_DEFAULT_STRATEGY, cb)
|
|
]) {
|
|
const deflate = zlib.createDeflate();
|
|
const inflate = zlib.createInflate();
|
|
|
|
deflate.pipe(inflate);
|
|
|
|
const output = [];
|
|
inflate
|
|
.on('error', (err) => {
|
|
assert.ifError(err);
|
|
})
|
|
.on('data', (chunk) => output.push(chunk))
|
|
.on('end', common.mustCall(
|
|
() => assert.deepStrictEqual(Buffer.concat(output).toString(), 'abc')));
|
|
|
|
fn(deflate, () => {
|
|
fn(inflate, () => {
|
|
deflate.write('abc');
|
|
deflate.end();
|
|
});
|
|
});
|
|
}
|