Skip to content

Commit 0aea258

Browse files
mcollinaMylesBorins
authored andcommitted
test: fix http-writable-true-after-close flakyness
Ref: #15404 Fixes: #15505 PR-URL: #15520 Reviewed-By: Luigi Pinca <luigipinca@gmail.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com>
1 parent 69f8738 commit 0aea258

File tree

1 file changed

+23
-16
lines changed

1 file changed

+23
-16
lines changed

test/parallel/test-http-writable-true-after-close.js

Lines changed: 23 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -7,29 +7,36 @@ const { get, createServer } = require('http');
77
// res.writable should not be set to false after it has finished sending
88
// Ref: https://github.com/nodejs/node/issues/15029
99

10+
let internal;
1011
let external;
1112

12-
// Http server
13-
const internal = createServer((req, res) => {
14-
res.writeHead(200);
15-
setImmediate(common.mustCall(() => {
16-
external.abort();
17-
res.end('Hello World\n');
18-
}));
19-
}).listen(0);
20-
2113
// Proxy server
2214
const server = createServer(common.mustCall((req, res) => {
2315
get(`http://127.0.0.1:${internal.address().port}`, common.mustCall((inner) => {
24-
res.on('close', common.mustCall(() => {
16+
const listener = common.mustCall(() => {
2517
assert.strictEqual(res.writable, true);
26-
}));
18+
});
19+
20+
// on CentOS 5, 'finish' is emitted
21+
res.on('finish', listener);
22+
// everywhere else, 'close' is emitted
23+
res.on('close', listener);
24+
2725
inner.pipe(res);
2826
}));
2927
})).listen(0, () => {
30-
external = get(`http://127.0.0.1:${server.address().port}`);
31-
external.on('error', common.mustCall((err) => {
32-
server.close();
33-
internal.close();
34-
}));
28+
// Http server
29+
internal = createServer((req, res) => {
30+
res.writeHead(200);
31+
setImmediate(common.mustCall(() => {
32+
external.abort();
33+
res.end('Hello World\n');
34+
}));
35+
}).listen(0, () => {
36+
external = get(`http://127.0.0.1:${server.address().port}`);
37+
external.on('error', common.mustCall((err) => {
38+
server.close();
39+
internal.close();
40+
}));
41+
});
3542
});

0 commit comments

Comments
 (0)