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: #26839

PR-URL: #26865
Reviewed-By: Richard Lau <riclau@uk.ibm.com>
Reviewed-By: Sam Roberts <vieuxtech@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
  • Loading branch information
Trott committed Mar 22, 2019
1 parent 6e9551e commit cc89e68
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 cc89e68

Please sign in to comment.