diff options
Diffstat (limited to 'test/parallel/test-zlib-failed-init.js')
-rw-r--r-- | test/parallel/test-zlib-failed-init.js | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/test/parallel/test-zlib-failed-init.js b/test/parallel/test-zlib-failed-init.js new file mode 100644 index 0000000000..3b6da1d4fb --- /dev/null +++ b/test/parallel/test-zlib-failed-init.js @@ -0,0 +1,37 @@ +'use strict'; + +require('../common'); + +const assert = require('assert'); +const zlib = require('zlib'); + +// For raw deflate encoding, requests for 256-byte windows are rejected as +// invalid by zlib. +// (http://zlib.net/manual.html#Advanced) +assert.throws(() => { + zlib.createDeflateRaw({ windowBits: 8 }); +}, /^Error: Init error$/); + +// Regression tests for bugs in the validation logic. + +assert.throws(() => { + zlib.createGzip({ chunkSize: 0 }); +}, /^RangeError: Invalid chunk size: 0$/); + +assert.throws(() => { + zlib.createGzip({ windowBits: 0 }); +}, /^RangeError: Invalid windowBits: 0$/); + +assert.throws(() => { + zlib.createGzip({ memLevel: 0 }); +}, /^RangeError: Invalid memLevel: 0$/); + +{ + const stream = zlib.createGzip({ level: NaN }); + assert.strictEqual(stream._level, zlib.constants.Z_DEFAULT_COMPRESSION); +} + +{ + const stream = zlib.createGzip({ strategy: NaN }); + assert.strictEqual(stream._strategy, zlib.constants.Z_DEFAULT_STRATEGY); +} |