'use strict'; const common = require('../common'); if (!common.hasCrypto) common.skip('missing crypto'); const fixtures = require('../common/fixtures'); const assert = require('assert'); const http2 = require('http2'); const content = fixtures.readSync('person-large.jpg'); const server = http2.createServer({ maxSessionMemory: 1000 }); server.on('stream', (stream, headers) => { stream.respond({ 'content-type': 'image/jpeg', ':status': 200 }); stream.end(content); }); server.unref(); server.listen(0, common.mustCall(() => { const client = http2.connect(`http://localhost:${server.address().port}/`); let finished = 0; for (let i = 0; i < 100; i++) { const req = client.request({ ':path': '/' }).end(); const chunks = []; req.on('data', (chunk) => { chunks.push(chunk); }); req.on('end', common.mustCall(() => { assert.deepStrictEqual(Buffer.concat(chunks), content); if (++finished === 100) client.close(); })); } }));