summaryrefslogtreecommitdiff
path: root/test/parallel/test-tls-transport-destroy-after-own-gc.js
blob: 9b9c8353077dfe11ca9de7b8333583141837fa7a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
// Flags: --expose-gc
'use strict';

// Regression test for https://github.com/nodejs/node/issues/17475
// Unfortunately, this tests only "works" reliably when checked with valgrind or
// a similar tool.

const common = require('../common');
if (!common.hasCrypto)
  common.skip('missing crypto');

const { TLSSocket } = require('tls');
const makeDuplexPair = require('../common/duplexpair');

let { clientSide } = makeDuplexPair();

let clientTLS = new TLSSocket(clientSide, { isServer: false });
let clientTLSHandle = clientTLS._handle;

setImmediate(() => {
  clientTLS = null;
  global.gc();
  clientTLSHandle = null; // eslint-disable-line no-unused-vars
  global.gc();
  setImmediate(() => {
    clientSide = null;
    global.gc();
  });
});