'use strict'; const common = require('../common'); const assert = require('assert'); const http = require('http'); let socketsCreated = 0; class Agent extends http.Agent { createConnection(options, oncreate) { const socket = super.createConnection(options, oncreate); socketsCreated++; return socket; } } const server = http.createServer((req, res) => res.end()); const socketPath = common.PIPE; const tmpdir = require('../common/tmpdir'); tmpdir.refresh(); server.listen(socketPath, common.mustCall(() => { const agent = new Agent({ keepAlive: true, maxSockets: 1 }); http.get({ agent, socketPath }, (res) => res.resume()); const req = http.get({ agent, socketPath }, common.mustNotCall()); req.abort(); http.get({ agent, socketPath }, common.mustCall((res) => { res.resume(); assert.strictEqual(socketsCreated, 1); agent.destroy(); server.close(); })); }));