test: refactor parallel/test-tls-async-cb-after-socket-end
PR-URL: https://github.com/nodejs/node/pull/18985 Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Richard Lau <riclau@uk.ibm.com> Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>
This commit is contained in:
parent
cbc7eb7eec
commit
d1156da815
@ -1,5 +1,4 @@
|
||||
'use strict';
|
||||
|
||||
const common = require('../common');
|
||||
if (!common.hasCrypto)
|
||||
common.skip('missing crypto');
|
||||
@ -7,60 +6,60 @@ const fixtures = require('../common/fixtures');
|
||||
const SSL_OP_NO_TICKET = require('crypto').constants.SSL_OP_NO_TICKET;
|
||||
const tls = require('tls');
|
||||
|
||||
// Check tls async callback after socket ends
|
||||
|
||||
const options = {
|
||||
secureOptions: SSL_OP_NO_TICKET,
|
||||
key: fixtures.readSync('test_key.pem'),
|
||||
cert: fixtures.readSync('test_cert.pem')
|
||||
};
|
||||
|
||||
const server = tls.createServer(options, function(c) {
|
||||
});
|
||||
const server = tls.createServer(options, common.mustCall());
|
||||
|
||||
let sessionCb = null;
|
||||
let client = null;
|
||||
|
||||
server.on('newSession', function(key, session, done) {
|
||||
server.on('newSession', common.mustCall((key, session, done) => {
|
||||
done();
|
||||
});
|
||||
}));
|
||||
|
||||
server.on('resumeSession', function(id, cb) {
|
||||
server.on('resumeSession', common.mustCall((id, cb) => {
|
||||
sessionCb = cb;
|
||||
|
||||
next();
|
||||
});
|
||||
}));
|
||||
|
||||
server.listen(0, function() {
|
||||
server.listen(0, common.mustCall(() => {
|
||||
const clientOpts = {
|
||||
port: this.address().port,
|
||||
port: server.address().port,
|
||||
rejectUnauthorized: false,
|
||||
session: false
|
||||
};
|
||||
|
||||
const s1 = tls.connect(clientOpts, function() {
|
||||
const s1 = tls.connect(clientOpts, common.mustCall(() => {
|
||||
clientOpts.session = s1.getSession();
|
||||
console.log('1st secure');
|
||||
|
||||
s1.destroy();
|
||||
const s2 = tls.connect(clientOpts, function(s) {
|
||||
const s2 = tls.connect(clientOpts, (s) => {
|
||||
console.log('2nd secure');
|
||||
|
||||
s2.destroy();
|
||||
}).on('connect', function() {
|
||||
}).on('connect', common.mustCall(() => {
|
||||
console.log('2nd connected');
|
||||
client = s2;
|
||||
|
||||
next();
|
||||
});
|
||||
});
|
||||
});
|
||||
}));
|
||||
}));
|
||||
}));
|
||||
|
||||
function next() {
|
||||
if (!client || !sessionCb)
|
||||
return;
|
||||
|
||||
client.destroy();
|
||||
setTimeout(function() {
|
||||
setTimeout(common.mustCall(() => {
|
||||
sessionCb();
|
||||
server.close();
|
||||
}, 100);
|
||||
}), 100);
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user