From 22997731e60eeb84b1e03ff438710ff219b46854 Mon Sep 17 00:00:00 2001 From: Fedor Indutny <fedor@indutny.com> Date: Sat, 18 Jul 2015 12:36:20 -0700 Subject: [PATCH] test: add regression test for #25735 See: https://github.com/joyent/node/issues/25736 Reviewed-By: Fedor Indutny <fedor@indutny.com> PR-URL: https://github.com/joyent/node/pull/25739 --- test/simple/test-tls-new-session-hang.js | 43 ++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 test/simple/test-tls-new-session-hang.js diff --git a/test/simple/test-tls-new-session-hang.js b/test/simple/test-tls-new-session-hang.js new file mode 100644 index 00000000000000..e2f3095083a4f2 --- /dev/null +++ b/test/simple/test-tls-new-session-hang.js @@ -0,0 +1,43 @@ +var common = require('../common'); + +if (!process.features.tls_ocsp) { + console.error('Skipping because node compiled without OpenSSL or ' + + 'with old OpenSSL version.'); + process.exit(0); +} + +var assert = require('assert'); +var tls = require('tls'); +var constants = require('constants'); +var fs = require('fs'); +var join = require('path').join; + +var keyFile = join(common.fixturesDir, 'keys', 'agent1-key.pem'); +var certFile = join(common.fixturesDir, 'keys', 'agent1-cert.pem'); +var caFile = join(common.fixturesDir, 'keys', 'ca1-cert.pem'); +var key = fs.readFileSync(keyFile); +var cert = fs.readFileSync(certFile); + +var server = tls.createServer({ + cert: cert, + key: key +}, function (socket) { + socket.destroySoon(); +}); + +// Should not be actually called +server.on('resumeSession', function (id, callback) { + assert(false); +}); + +server.listen(common.PORT, function() { + var client = tls.connect({ + rejectUnauthorized: false, + port: common.PORT, + + // Just to make sure that `newSession` is going to be called + secureOptions: constants.SSL_OP_NO_TICKET + }, function() { + server.close(); + }); +});