From 3622fb1e03791a284ed2320b37d3aeae54671cf8 Mon Sep 17 00:00:00 2001 From: Luigi Pinca Date: Fri, 30 Jul 2021 15:36:18 +0200 Subject: [PATCH] test: deflake test-http2-buffersize This is basically a revert of https://github.com/nodejs/node/commit/c452632d3421d6baf26a61e14c21c922bd18175e. The problem with that commit is that the promises returned by `once(server, 'stream')` are all resolved with the same stream when the first `'stream'` event is emitted. Refs: https://github.com/nodejs/node/pull/39525#issuecomment-889080913 PR-URL: https://github.com/nodejs/node/pull/39591 Reviewed-By: Rich Trott Reviewed-By: Anna Henningsen --- test/parallel/test-http2-buffersize.js | 22 ++++++++++------------ 1 file changed, 10 insertions(+), 12 deletions(-) diff --git a/test/parallel/test-http2-buffersize.js b/test/parallel/test-http2-buffersize.js index 9d7355f1a0b750..68bb4315fd068b 100644 --- a/test/parallel/test-http2-buffersize.js +++ b/test/parallel/test-http2-buffersize.js @@ -5,7 +5,7 @@ if (!hasCrypto) skip('missing crypto'); const assert = require('assert'); const { createServer, connect } = require('http2'); -const { once } = require('events'); +const Countdown = require('../common/countdown'); // This test ensures that `bufferSize` of Http2Session and Http2Stream work // as expected. @@ -16,20 +16,18 @@ const { once } = require('events'); const server = createServer(); let client; + const countdown = new Countdown(kSockets, () => { + client.close(); + server.close(); + }); - const getStream = async () => { - const [ stream ] = await once(server, 'stream'); + server.on('stream', mustCall((stream) => { stream.on('data', mustCall()); stream.on('end', mustCall()); - stream.on('close', mustCall()); - return once(stream, 'close'); - }; - - const promises = [...new Array(kSockets)].map(getStream); - Promise.all(promises).then(mustCall(() => { - client.close(); - server.close(); - })); + stream.on('close', mustCall(() => { + countdown.dec(); + })); + }, kSockets)); server.listen(0, mustCall(() => { const authority = `http://localhost:${server.address().port}`;