| '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); |
| }); |