1'use strict';
2const common = require('../common');
3const assert = require('assert');
4const http = require('http');
5
6const server = http.createServer(common.mustCall((req, res) => {
7  res.end('hello');
8}));
9
10const keepAliveAgent = new http.Agent({ keepAlive: true });
11
12server.listen(0, common.mustCall(() => {
13  const req = http.get({
14    port: server.address().port,
15    agent: keepAliveAgent
16  });
17
18  req
19    .on('response', common.mustCall((res) => {
20      res
21        .on('close', common.mustCall(() => {
22          assert.strictEqual(req.destroyed, true);
23          server.close();
24          keepAliveAgent.destroy();
25        }))
26        .on('data', common.mustCall());
27    }))
28    .end();
29}));
30