|
1 | 1 | 'use strict'; |
2 | | -var common = require('../common'); |
3 | | -var assert = require('assert'); |
| 2 | +const common = require('../common'); |
4 | 3 |
|
5 | 4 | if (!common.hasCrypto) { |
6 | 5 | common.skip('missing crypto'); |
7 | 6 | return; |
8 | 7 | } |
9 | | -var tls = require('tls'); |
| 8 | +const assert = require('assert'); |
| 9 | +const tls = require('tls'); |
10 | 10 |
|
11 | | -var net = require('net'); |
12 | | -var fs = require('fs'); |
| 11 | +const net = require('net'); |
| 12 | +const fs = require('fs'); |
13 | 13 |
|
14 | | -var options = { |
| 14 | +const options = { |
15 | 15 | key: fs.readFileSync(common.fixturesDir + '/keys/agent1-key.pem'), |
16 | 16 | cert: fs.readFileSync(common.fixturesDir + '/keys/agent1-cert.pem') |
17 | 17 | }; |
18 | 18 |
|
19 | | -var server = tls.createServer(options, function(c) { |
20 | | - setTimeout(function() { |
21 | | - c.write('hello'); |
22 | | - setTimeout(function() { |
23 | | - c.destroy(); |
24 | | - server.close(); |
25 | | - }, 150); |
26 | | - }, 150); |
27 | | -}); |
| 19 | +const server = tls.createServer(options, common.mustCall((c) => { |
| 20 | + setImmediate(() => { |
| 21 | + c.write('hello', () => { |
| 22 | + setImmediate(() => { |
| 23 | + c.destroy(); |
| 24 | + server.close(); |
| 25 | + }); |
| 26 | + }); |
| 27 | + }); |
| 28 | +})); |
| 29 | + |
| 30 | +var socket; |
| 31 | +var lastIdleStart; |
28 | 32 |
|
29 | | -server.listen(0, function() { |
30 | | - var socket = net.connect(this.address().port, function() { |
31 | | - var s = socket.setTimeout(common.platformTimeout(240), function() { |
| 33 | +server.listen(0, () => { |
| 34 | + socket = net.connect(server.address().port, function() { |
| 35 | + const s = socket.setTimeout(Number.MAX_VALUE, function() { |
32 | 36 | throw new Error('timeout'); |
33 | 37 | }); |
34 | 38 | assert.ok(s instanceof net.Socket); |
35 | 39 |
|
36 | | - var tsocket = tls.connect({ |
| 40 | + assert.notStrictEqual(socket._idleTimeout, -1); |
| 41 | + lastIdleStart = socket._idleStart; |
| 42 | + |
| 43 | + const tsocket = tls.connect({ |
37 | 44 | socket: socket, |
38 | 45 | rejectUnauthorized: false |
39 | 46 | }); |
40 | 47 | tsocket.resume(); |
41 | 48 | }); |
42 | 49 | }); |
| 50 | + |
| 51 | +process.on('exit', () => { |
| 52 | + assert.strictEqual(socket._idleTimeout, -1); |
| 53 | + assert(lastIdleStart < socket._idleStart); |
| 54 | +}); |
0 commit comments