node/test/parallel/test-tls-async-cb-after-socket-end.js
Stefan Budeanu c9e682d587 test: use port number from env in tls socket test
Tests normally use common.PORT to allow the user to select which port
number to listen on. Hardcoding the port number will cause parallel
instances of the test to fail.

PR-URL: https://github.com/nodejs/node/pull/3557
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Fedor Indutny <fedor@indutny.com>
Reviewed-By: Johan Bergström <bugs@bergstroem.nu>
2015-10-28 12:03:33 +01:00

74 lines
1.4 KiB
JavaScript

'use strict';
var common = require('../common');
var assert = require('assert');
var path = require('path');
var fs = require('fs');
var constants = require('constants');
if (!common.hasCrypto) {
console.log('1..0 # Skipped: missing crypto');
return;
}
var tls = require('tls');
var options = {
secureOptions: constants.SSL_OP_NO_TICKET,
key: fs.readFileSync(path.join(common.fixturesDir, 'test_key.pem')),
cert: fs.readFileSync(path.join(common.fixturesDir, 'test_cert.pem'))
};
var server = tls.createServer(options, function(c) {
});
var sessionCb = null;
var client = null;
server.on('newSession', function(key, session, done) {
done();
});
server.on('resumeSession', function(id, cb) {
sessionCb = cb;
next();
});
server.listen(common.PORT, function() {
var clientOpts = {
port: common.PORT,
rejectUnauthorized: false,
session: false
};
var s1 = tls.connect(clientOpts, function() {
clientOpts.session = s1.getSession();
console.log('1st secure');
s1.destroy();
var s2 = tls.connect(clientOpts, function(s) {
console.log('2nd secure');
s2.destroy();
}).on('connect', function() {
console.log('2nd connected');
client = s2;
next();
});
});
});
function next() {
if (!client || !sessionCb)
return;
client.destroy();
setTimeout(function() {
sessionCb();
server.close();
}, 100);
}