mirror of
https://github.com/nodejs/node.git
synced 2024-11-21 10:59:27 +00:00
35f491b2e8
Change the test to not be sensitive to the buffer size causing TCP resets to be received by the client causing the test to fail. The test now reads the entire expected buffer and then checks for the expected event to fire. PR-URL: https://github.com/nodejs/node/pull/31499 Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl> Reviewed-By: David Carlier <devnexen@gmail.com> Reviewed-By: Rich Trott <rtrott@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com>
47 lines
1.1 KiB
JavaScript
47 lines
1.1 KiB
JavaScript
'use strict';
|
|
const common = require('../common');
|
|
|
|
if (!common.hasCrypto)
|
|
common.skip('missing crypto');
|
|
|
|
// Issue #24984
|
|
// 'close' event isn't emitted on a TLS connection if it's been written to
|
|
// (but 'end' and 'finish' events are). Without a fix, this test won't exit.
|
|
|
|
const tls = require('tls');
|
|
const fixtures = require('../common/fixtures');
|
|
let cconn = null;
|
|
let sconn = null;
|
|
let read_len = 0;
|
|
const buffer_size = 1024 * 1024;
|
|
|
|
function test() {
|
|
if (cconn && sconn) {
|
|
cconn.resume();
|
|
sconn.resume();
|
|
sconn.end(Buffer.alloc(buffer_size));
|
|
}
|
|
}
|
|
|
|
const server = tls.createServer({
|
|
key: fixtures.readKey('agent1-key.pem'),
|
|
cert: fixtures.readKey('agent1-cert.pem')
|
|
}, (c) => {
|
|
c.on('close', common.mustCall(() => server.close()));
|
|
sconn = c;
|
|
test();
|
|
}).listen(0, common.mustCall(function() {
|
|
tls.connect(this.address().port, {
|
|
rejectUnauthorized: false
|
|
}, common.mustCall(function() {
|
|
cconn = this;
|
|
cconn.on('data', (d) => {
|
|
read_len += d.length;
|
|
if (read_len === buffer_size) {
|
|
cconn.end();
|
|
}
|
|
});
|
|
test();
|
|
}));
|
|
}));
|