Skip to content

Commit

Permalink
test: fix flaky test-http2-create-client-connect
Browse files Browse the repository at this point in the history
The first group of tests makes one more connection and leave the server
alive for longer. Otherwise the test is just catching that the server
has closed the socket, depending on timing.

This does not quite make the test pass yet, however. There are some
quirks with how the http2 code handles errors which actually affect
1.0.2 as well.

PR-URL: #16130
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Rod Vagg <rod@vagg.org>
  • Loading branch information
davidben authored and rvagg committed Nov 11, 2017
1 parent 694efa8 commit aa81f99
Showing 1 changed file with 8 additions and 9 deletions.
17 changes: 8 additions & 9 deletions test/parallel/test-http2-create-client-connect.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
// Tests http2.connect()

const common = require('../common');
const Countdown = require('../common/countdown');
if (!common.hasCrypto)
common.skip('missing crypto');
const fixtures = require('../common/fixtures');
Expand All @@ -25,13 +26,12 @@ const URL = url.URL;
[{ port: port, hostname: '127.0.0.1' }, { protocol: 'http:' }]
];

let count = items.length;
const serverClose = new Countdown(items.length + 1,
() => setImmediate(() => server.close()));

const maybeClose = common.mustCall((client) => {
client.destroy();
if (--count === 0) {
setImmediate(() => server.close());
}
serverClose.dec();
}, items.length);

items.forEach((i) => {
Expand All @@ -42,7 +42,7 @@ const URL = url.URL;

// Will fail because protocol does not match the server.
h2.connect({ port: port, protocol: 'https:' })
.on('socketError', common.mustCall());
.on('socketError', common.mustCall(() => serverClose.dec()));
}));
}

Expand Down Expand Up @@ -70,13 +70,12 @@ const URL = url.URL;
[{ port: port, hostname: '127.0.0.1', protocol: 'https:' }, opts]
];

let count = items.length;
const serverClose = new Countdown(items.length,
() => setImmediate(() => server.close()));

const maybeClose = common.mustCall((client) => {
client.destroy();
if (--count === 0) {
setImmediate(() => server.close());
}
serverClose.dec();
}, items.length);

items.forEach((i) => {
Expand Down

0 comments on commit aa81f99

Please sign in to comment.