summaryrefslogtreecommitdiff
path: root/test/parallel/test-http2-tls-disconnect.js
blob: 2e635fe1376a5135dd54e7dbfe70c1ab41a19040 (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
30
31
32
'use strict';
const common = require('../common');
const fixtures = require('../common/fixtures');

if (!common.hasCrypto)
  common.skip('missing crypto');

const child_process = require('child_process');
const http2 = require('http2');
const fs = require('fs');

const key = fixtures.readKey('agent8-key.pem', 'binary');
const cert = fixtures.readKey('agent8-cert.pem', 'binary');

const server = http2.createSecureServer({ key, cert }, (request, response) => {
  fs.createReadStream(process.execPath).pipe(response);
});

// This should be doable with a reproduction purely written in Node;
// that just requires somebody to take the time and actually do it.
server.listen(0, () => {
  const proc = child_process.spawn('h2load', [
    '-n', '1000',
    `https://localhost:${server.address().port}/`
  ]);
  proc.on('error', (err) => {
    if (err.code === 'ENOENT')
      common.skip('no h2load');
  });
  proc.on('exit', () => server.close());
  setTimeout(() => proc.kill(2), 100);
});