|
20 | 20 | // USE OR OTHER DEALINGS IN THE SOFTWARE.
|
21 | 21 |
|
22 | 22 | 'use strict';
|
23 |
| -const common = require('../common'); |
24 |
| -const assert = require('assert'); |
25 |
| -const zlib = require('zlib'); |
26 | 23 |
|
27 |
| -for (const [ createCompress, createDecompress ] of [ |
28 |
| - [ zlib.createGzip, zlib.createGunzip ], |
29 |
| - [ zlib.createBrotliCompress, zlib.createBrotliDecompress ], |
30 |
| -]) { |
31 |
| - const gzip = createCompress(); |
32 |
| - const gunz = createDecompress(); |
| 24 | +require('../common'); |
33 | 25 |
|
34 |
| - gzip.pipe(gunz); |
| 26 | +const assert = require('node:assert'); |
| 27 | +const zlib = require('node:zlib'); |
| 28 | +const { test } = require('node:test'); |
35 | 29 |
|
36 |
| - let output = ''; |
37 |
| - const input = 'A line of data\n'; |
38 |
| - gunz.setEncoding('utf8'); |
39 |
| - gunz.on('data', (c) => output += c); |
40 |
| - gunz.on('end', common.mustCall(() => { |
41 |
| - assert.strictEqual(output, input); |
42 |
| - })); |
| 30 | +test('zlib should accept writing after flush', async () => { |
| 31 | + for (const [createCompress, createDecompress] of [ |
| 32 | + [zlib.createGzip, zlib.createGunzip], |
| 33 | + [zlib.createBrotliCompress, zlib.createBrotliDecompress], |
| 34 | + ]) { |
| 35 | + const { promise, resolve, reject } = Promise.withResolvers(); |
| 36 | + const gzip = createCompress(); |
| 37 | + const gunz = createDecompress(); |
43 | 38 |
|
44 |
| - // Make sure that flush/write doesn't trigger an assert failure |
45 |
| - gzip.flush(); |
46 |
| - gzip.write(input); |
47 |
| - gzip.end(); |
48 |
| - gunz.read(0); |
49 |
| -} |
| 39 | + gzip.pipe(gunz); |
| 40 | + |
| 41 | + let output = ''; |
| 42 | + const input = 'A line of data\n'; |
| 43 | + gunz.setEncoding('utf8'); |
| 44 | + gunz.on('error', reject); |
| 45 | + gunz.on('data', (c) => output += c); |
| 46 | + gunz.on('end', () => { |
| 47 | + assert.strictEqual(output, input); |
| 48 | + resolve(); |
| 49 | + }); |
| 50 | + |
| 51 | + // Make sure that flush/write doesn't trigger an assert failure |
| 52 | + gzip.flush(); |
| 53 | + gzip.write(input); |
| 54 | + gzip.end(); |
| 55 | + gunz.read(0); |
| 56 | + await promise; |
| 57 | + } |
| 58 | +}); |
0 commit comments