summaryrefslogtreecommitdiff
path: root/test/parallel/test-http-writable-true-after-close.js
diff options
context:
space:
mode:
authorMatteo Collina <hello@matteocollina.com>2017-09-21 08:57:25 +0200
committerMatteo Collina <hello@matteocollina.com>2017-09-27 14:07:11 +0100
commit1fe9b535a78a23a9549b544ec4a4f76614f45c5c (patch)
treea3e5c283125b36bade97b88e4ee0d6b071f8c5ed /test/parallel/test-http-writable-true-after-close.js
parenteee166f24d5cfa447f3a484f0f75acc278091aa8 (diff)
downloadandroid-node-v8-1fe9b535a78a23a9549b544ec4a4f76614f45c5c.tar.gz
android-node-v8-1fe9b535a78a23a9549b544ec4a4f76614f45c5c.tar.bz2
android-node-v8-1fe9b535a78a23a9549b544ec4a4f76614f45c5c.zip
test: fix http-writable-true-after-close flakyness
Ref: https://github.com/nodejs/node/pull/15404 Fixes: https://github.com/nodejs/node/issues/15505 PR-URL: https://github.com/nodejs/node/pull/15520 Reviewed-By: Luigi Pinca <luigipinca@gmail.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com>
Diffstat (limited to 'test/parallel/test-http-writable-true-after-close.js')
-rw-r--r--test/parallel/test-http-writable-true-after-close.js39
1 files changed, 23 insertions, 16 deletions
diff --git a/test/parallel/test-http-writable-true-after-close.js b/test/parallel/test-http-writable-true-after-close.js
index 3cac10bdde..49688a00ef 100644
--- a/test/parallel/test-http-writable-true-after-close.js
+++ b/test/parallel/test-http-writable-true-after-close.js
@@ -7,29 +7,36 @@ const { get, createServer } = require('http');
// res.writable should not be set to false after it has finished sending
// Ref: https://github.com/nodejs/node/issues/15029
+let internal;
let external;
-// Http server
-const internal = createServer((req, res) => {
- res.writeHead(200);
- setImmediate(common.mustCall(() => {
- external.abort();
- res.end('Hello World\n');
- }));
-}).listen(0);
-
// Proxy server
const server = createServer(common.mustCall((req, res) => {
get(`http://127.0.0.1:${internal.address().port}`, common.mustCall((inner) => {
- res.on('close', common.mustCall(() => {
+ const listener = common.mustCall(() => {
assert.strictEqual(res.writable, true);
- }));
+ });
+
+ // on CentOS 5, 'finish' is emitted
+ res.on('finish', listener);
+ // everywhere else, 'close' is emitted
+ res.on('close', listener);
+
inner.pipe(res);
}));
})).listen(0, () => {
- external = get(`http://127.0.0.1:${server.address().port}`);
- external.on('error', common.mustCall((err) => {
- server.close();
- internal.close();
- }));
+ // Http server
+ internal = createServer((req, res) => {
+ res.writeHead(200);
+ setImmediate(common.mustCall(() => {
+ external.abort();
+ res.end('Hello World\n');
+ }));
+ }).listen(0, () => {
+ external = get(`http://127.0.0.1:${server.address().port}`);
+ external.on('error', common.mustCall((err) => {
+ server.close();
+ internal.close();
+ }));
+ });
});