1'use strict'; 2 3const common = require('../common'); 4const http = require('http'); 5const assert = require('assert'); 6 7{ 8 const server = http.createServer(common.mustCall(function(req, res) { 9 req.on('aborted', common.mustCall(function() { 10 assert.strictEqual(this.aborted, true); 11 })); 12 req.on('error', common.mustCall(function(err) { 13 assert.strictEqual(err.code, 'ECONNRESET'); 14 assert.strictEqual(err.message, 'aborted'); 15 server.close(); 16 })); 17 assert.strictEqual(req.aborted, false); 18 res.write('hello'); 19 })); 20 21 server.listen(0, common.mustCall(() => { 22 const req = http.get({ 23 port: server.address().port, 24 headers: { connection: 'keep-alive' } 25 }, common.mustCall((res) => { 26 res.on('aborted', common.mustCall(() => { 27 assert.strictEqual(res.aborted, true); 28 })); 29 res.on('error', common.expectsError({ 30 code: 'ECONNRESET', 31 message: 'aborted' 32 })); 33 req.abort(); 34 })); 35 })); 36} 37 38{ 39 // Don't crash if no 'error' handler on server request. 40 41 const server = http.createServer(common.mustCall(function(req, res) { 42 req.on('aborted', common.mustCall(function() { 43 assert.strictEqual(this.aborted, true); 44 server.close(); 45 })); 46 assert.strictEqual(req.aborted, false); 47 res.write('hello'); 48 })); 49 50 server.listen(0, common.mustCall(() => { 51 const req = http.get({ 52 port: server.address().port, 53 headers: { connection: 'keep-alive' } 54 }, common.mustCall((res) => { 55 res.on('aborted', common.mustCall(() => { 56 assert.strictEqual(res.aborted, true); 57 })); 58 req.abort(); 59 })); 60 })); 61} 62