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();
+  });
+});