Skip to content

Commit

Permalink
test: fix pummel/test-tls-session-timeout
Browse files Browse the repository at this point in the history
The test does not work with TLS 1.3 nor should it. Force TLS version
1.2.

While at it, some refactoring:

* refresh the tmp directory in case it doesn't exist!
* add an assert.strictEqual() check on the client return `code` value
  which must be zero
* use arrow functions for callbacks
* add trailing commas for multiline arrays/objects

Fixes: nodejs#26839
  • Loading branch information
Trott committed Mar 22, 2019
1 parent 01a1296 commit 3ea61d3
Showing 1 changed file with 14 additions and 11 deletions.
25 changes: 14 additions & 11 deletions test/pummel/test-tls-session-timeout.js
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ if (!common.hasCrypto)
common.skip('missing crypto');

const tmpdir = require('../common/tmpdir');
tmpdir.refresh();

doTest();

Expand Down Expand Up @@ -56,7 +57,8 @@ function doTest() {
key: key,
cert: cert,
ca: [cert],
sessionTimeout: SESSION_TIMEOUT
sessionTimeout: SESSION_TIMEOUT,
maxVersion: 'TLSv1.2',
};

// We need to store a sample session ticket in the fixtures directory because
Expand All @@ -79,17 +81,17 @@ function doTest() {
's_client',
'-connect', `localhost:${common.PORT}`,
'-sess_in', sessionFileName,
'-sess_out', sessionFileName
'-sess_out', sessionFileName,
];
const client = spawn(common.opensslCli, flags, {
stdio: ['ignore', 'pipe', 'ignore']
});

let clientOutput = '';
client.stdout.on('data', function(data) {
client.stdout.on('data', (data) => {
clientOutput += data.toString();
});
client.on('exit', function(code) {
client.on('exit', (code) => {
let connectionType;
const grepConnectionType = (line) => {
const matches = line.match(/(New|Reused), /);
Expand All @@ -102,25 +104,26 @@ function doTest() {
if (!lines.some(grepConnectionType)) {
throw new Error('unexpected output from openssl client');
}
assert.strictEqual(code, 0);
cb(connectionType);
});
}

const server = tls.createServer(options, function(cleartext) {
cleartext.on('error', function(er) {
const server = tls.createServer(options, (cleartext) => {
cleartext.on('error', (er) => {
if (er.code !== 'ECONNRESET')
throw er;
});
cleartext.end();
});

server.listen(common.PORT, function() {
Client(function(connectionType) {
server.listen(common.PORT, () => {
Client((connectionType) => {
assert.strictEqual(connectionType, 'New');
Client(function(connectionType) {
Client((connectionType) => {
assert.strictEqual(connectionType, 'Reused');
setTimeout(function() {
Client(function(connectionType) {
setTimeout(() => {
Client((connectionType) => {
assert.strictEqual(connectionType, 'New');
server.close();
});
Expand Down

0 comments on commit 3ea61d3

Please sign in to comment.