• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1// Flags: --expose-internals
2'use strict';
3const common = require('../common');
4
5if (!common.hasCrypto)
6  common.skip('missing crypto');
7
8const { validateSnapshotNodes } = require('../common/heap');
9const net = require('net');
10const tls = require('tls');
11
12validateSnapshotNodes('Node / TLSWrap', []);
13
14const server = net.createServer(common.mustCall((c) => {
15  c.end();
16})).listen(0, common.mustCall(() => {
17  const c = tls.connect({ port: server.address().port });
18
19  c.on('error', common.mustCall(() => {
20    server.close();
21  }));
22  c.write('hello');
23
24  validateSnapshotNodes('Node / TLSWrap', [
25    {
26      children: [
27        { node_name: 'Node / NodeBIO', edge_name: 'enc_out' },
28        { node_name: 'Node / NodeBIO', edge_name: 'enc_in' },
29        // `Node / TLSWrap` (C++) -> `TLSWrap` (JS)
30        { node_name: 'TLSWrap', edge_name: 'wrapped' },
31        // pending_cleartext_input could be empty
32      ]
33    },
34  ]);
35}));
36