summaryrefslogtreecommitdiff
path: root/test/parallel/test-http2-session-unref.js
diff options
context:
space:
mode:
authorAnatoli Papirovski <apapirovski@mac.com>2018-05-21 11:42:32 +0400
committerAnatoli Papirovski <apapirovski@mac.com>2018-05-22 11:42:34 +0400
commitef9d0ae6f209851dd43d7d24b12e19547bcf0dbf (patch)
treeb766d4ad62593e198335863262cbbaa9202ec03f /test/parallel/test-http2-session-unref.js
parentb11e19e8eed059ddf473657c28c357987ca0015e (diff)
downloadandroid-node-v8-ef9d0ae6f209851dd43d7d24b12e19547bcf0dbf.tar.gz
android-node-v8-ef9d0ae6f209851dd43d7d24b12e19547bcf0dbf.tar.bz2
android-node-v8-ef9d0ae6f209851dd43d7d24b12e19547bcf0dbf.zip
test: fix flaky http2-session-unref
It's possible for the connections to take too long and since the server is already unrefed, the process will just exit. Instead adjust the test so that server unref only happens after all sessions have been successfuly established and unrefed. That still tests the same condition but will not fail under load. PR-URL: https://github.com/nodejs/node/pull/20772 Fixes: https://github.com/nodejs/node/issues/20705 Fixes: https://github.com/nodejs/node/issues/20750 Fixes: https://github.com/nodejs/node/issues/20850 Reviewed-By: Matteo Collina <matteo.collina@gmail.com> Reviewed-By: Rich Trott <rtrott@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com>
Diffstat (limited to 'test/parallel/test-http2-session-unref.js')
-rw-r--r--test/parallel/test-http2-session-unref.js5
1 files changed, 4 insertions, 1 deletions
diff --git a/test/parallel/test-http2-session-unref.js b/test/parallel/test-http2-session-unref.js
index f946c2d337..0381971c0e 100644
--- a/test/parallel/test-http2-session-unref.js
+++ b/test/parallel/test-http2-session-unref.js
@@ -9,16 +9,20 @@ const common = require('../common');
if (!common.hasCrypto)
common.skip('missing crypto');
const http2 = require('http2');
+const Countdown = require('../common/countdown');
const makeDuplexPair = require('../common/duplexpair');
const server = http2.createServer();
const { clientSide, serverSide } = makeDuplexPair();
+const counter = new Countdown(3, () => server.unref());
+
// 'session' event should be emitted 3 times:
// - the vanilla client
// - the destroyed client
// - manual 'connection' event emission with generic Duplex stream
server.on('session', common.mustCallAtLeast((session) => {
+ counter.dec();
session.unref();
}, 3));
@@ -54,4 +58,3 @@ server.listen(0, common.mustCall(() => {
}
}));
server.emit('connection', serverSide);
-server.unref();