1'use strict'; 2 3const common = require('../common.js'); 4const path = require('path'); 5const fs = require('fs'); 6const file = path.join(path.resolve(__dirname, '../fixtures'), 'alice.html'); 7 8const bench = common.createBenchmark(main, { 9 requests: [100, 1000, 5000], 10 streams: [1, 10, 20, 40, 100, 200], 11 clients: [2], 12 benchmarker: ['test-double-http2'], 13 duration: 5 14}, { flags: ['--no-warnings'] }); 15 16function main({ requests, streams, clients, duration }) { 17 const http2 = require('http2'); 18 const server = http2.createServer(); 19 server.on('request', (req, res) => { 20 const out = fs.createReadStream(file); 21 res.setHeader('content-type', 'text/html'); 22 out.pipe(res); 23 out.on('error', (err) => { 24 res.destroy(); 25 }); 26 }); 27 server.listen(0, () => { 28 bench.http({ 29 path: '/', 30 port: server.address().port, 31 requests, 32 maxConcurrentStreams: streams, 33 clients, 34 threads: clients, 35 duration 36 }, () => { server.close(); }); 37 }); 38} 39