Skip to content
Closed
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
68 changes: 41 additions & 27 deletions test/parallel/test-tls-session-cache.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
'use strict';
var common = require('../common');
const common = require('../common');

if (!common.opensslCli) {
common.skip('node compiled without OpenSSL CLI.');
Expand All @@ -18,17 +18,17 @@ doTest({ tickets: false }, function() {
});

function doTest(testOptions, callback) {
var assert = require('assert');
var tls = require('tls');
var fs = require('fs');
var join = require('path').join;
var spawn = require('child_process').spawn;
const assert = require('assert');
const tls = require('tls');
const fs = require('fs');
const join = require('path').join;
const spawn = require('child_process').spawn;

var keyFile = join(common.fixturesDir, 'agent.key');
var certFile = join(common.fixturesDir, 'agent.crt');
var key = fs.readFileSync(keyFile);
var cert = fs.readFileSync(certFile);
var options = {
const keyFile = join(common.fixturesDir, 'agent.key');
const certFile = join(common.fixturesDir, 'agent.crt');
const key = fs.readFileSync(keyFile);
const cert = fs.readFileSync(certFile);
const options = {
key: key,
cert: cert,
ca: [cert],
Expand All @@ -38,7 +38,7 @@ function doTest(testOptions, callback) {
var resumeCount = 0;
var session;

var server = tls.createServer(options, function(cleartext) {
const server = tls.createServer(options, function(cleartext) {
cleartext.on('error', function(er) {
// We're ok with getting ECONNRESET in this test, but it's
// timing-dependent, and thus unreliable. Any other errors
Expand Down Expand Up @@ -72,7 +72,7 @@ function doTest(testOptions, callback) {
});

server.listen(0, function() {
var args = [
const args = [
's_client',
'-tls1',
'-connect', `localhost:${this.address().port}`,
Expand All @@ -86,21 +86,35 @@ function doTest(testOptions, callback) {
if (common.isWindows)
args.push('-no_rand_screen');

var client = spawn(common.opensslCli, args, {
stdio: [ 0, 1, 'pipe' ]
});
var err = '';
client.stderr.setEncoding('utf8');
client.stderr.on('data', function(chunk) {
err += chunk;
});
client.on('exit', function(code) {
console.error('done');
assert.equal(code, 0);
server.close(function() {
setTimeout(callback, 100);
function spawnClient() {
const client = spawn(common.opensslCli, args, {
stdio: [ 0, 1, 'pipe' ]
});
});
var err = '';
client.stderr.setEncoding('utf8');
client.stderr.on('data', function(chunk) {
err += chunk;
});

client.on('exit', common.mustCall(function(code, signal) {
if (code !== 0) {
// If SmartOS and connection refused, then retry. See
// https://github.com/nodejs/node/issues/2663.
if (common.isSunOS && err.includes('Connection refused')) {
requestCount = 0;
spawnClient();
return;
}
common.fail(`code: ${code}, signal: ${signal}, output: ${err}`);
}
assert.equal(code, 0);
server.close(common.mustCall(function() {
setTimeout(callback, 100);
}));
}));
}

spawnClient();
});

process.on('exit', function() {
Expand Down