1'use strict'; 2require('../common'); 3const assert = require('assert'); 4const zlib = require('zlib'); 5const fixtures = require('../common/fixtures'); 6 7const file = fixtures.readSync('person.jpg'); 8const chunkSize = 16; 9const opts = { level: 0 }; 10const deflater = zlib.createDeflate(opts); 11 12const chunk = file.slice(0, chunkSize); 13const expectedNone = Buffer.from([0x78, 0x01]); 14const blkhdr = Buffer.from([0x00, 0x10, 0x00, 0xef, 0xff]); 15const adler32 = Buffer.from([0x00, 0x00, 0x00, 0xff, 0xff]); 16const expectedFull = Buffer.concat([blkhdr, chunk, adler32]); 17let actualNone; 18let actualFull; 19 20deflater.write(chunk, function() { 21 deflater.flush(zlib.constants.Z_NO_FLUSH, function() { 22 actualNone = deflater.read(); 23 deflater.flush(function() { 24 const bufs = []; 25 let buf; 26 while ((buf = deflater.read()) !== null) 27 bufs.push(buf); 28 actualFull = Buffer.concat(bufs); 29 }); 30 }); 31}); 32 33process.once('exit', function() { 34 assert.deepStrictEqual(actualNone, expectedNone); 35 assert.deepStrictEqual(actualFull, expectedFull); 36}); 37