From c9bc54d47a0c882b8c3961b1cbe6602f970bad1c Mon Sep 17 00:00:00 2001 From: Nitzan Uziely Date: Thu, 13 May 2021 02:26:48 +0300 Subject: [PATCH 1/2] test: stream.finished detects a destroyed IncomingMessage Add a test to verify that stream.finished works correctly on IncomingMessage refs: https://github.com/nodejs/node/issues/38657 --- test/parallel/test-stream-finished.js | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/test/parallel/test-stream-finished.js b/test/parallel/test-stream-finished.js index d1652396dae25d..192969648cab0e 100644 --- a/test/parallel/test-stream-finished.js +++ b/test/parallel/test-stream-finished.js @@ -570,6 +570,22 @@ testClosed((opts) => new Writable({ write() {}, ...opts })); }); } +{ + const server = http.createServer((req, res) => { + req.on('close', () => { + finished(req, common.mustCall(() => { + server.close(); + })); + }); + req.destroy(); + }).listen(0, function() { + http.request({ + method: 'GET', + port: this.address().port + }).end().on('error', common.mustCall()); + }); +} + { const w = new Writable({ From 7da0b47e112521d7e002dce130585d9a6c562570 Mon Sep 17 00:00:00 2001 From: Nitzan Uziely Date: Thu, 13 May 2021 16:20:44 +0300 Subject: [PATCH 2/2] fixup! test: stream.finished detects a destroyed IncomingMessage --- test/parallel/test-stream-finished.js | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/test/parallel/test-stream-finished.js b/test/parallel/test-stream-finished.js index 192969648cab0e..43b1e36a547402 100644 --- a/test/parallel/test-stream-finished.js +++ b/test/parallel/test-stream-finished.js @@ -553,14 +553,14 @@ testClosed((opts) => new Writable({ write() {}, ...opts })); } { - const server = http.createServer((req, res) => { - res.on('close', () => { + const server = http.createServer(common.mustCall((req, res) => { + res.on('close', common.mustCall(() => { finished(res, common.mustCall(() => { server.close(); })); - }); + })); res.end(); - }) + })) .listen(0, function() { http.request({ method: 'GET', @@ -571,14 +571,14 @@ testClosed((opts) => new Writable({ write() {}, ...opts })); } { - const server = http.createServer((req, res) => { - req.on('close', () => { + const server = http.createServer(common.mustCall((req, res) => { + req.on('close', common.mustCall(() => { finished(req, common.mustCall(() => { server.close(); })); - }); + })); req.destroy(); - }).listen(0, function() { + })).listen(0, function() { http.request({ method: 'GET', port: this.address().port