| 'use strict'; |
| |
| const common = require('../common'); |
| const assert = require('assert'); |
| const net = require('net'); |
| |
| { |
| const server = net.createServer(common.mustCall((socket) => { |
| socket.end(Buffer.alloc(1024)); |
| })).listen(0, common.mustCall(() => { |
| const socket = net.connect(server.address().port); |
| assert.strictEqual(socket.allowHalfOpen, false); |
| socket.resume(); |
| socket.on('end', common.mustCall(() => { |
| process.nextTick(() => { |
| // Ensure socket is not destroyed straight away |
| // without proper shutdown. |
| assert(!socket.destroyed); |
| server.close(); |
| }); |
| })); |
| socket.on('finish', common.mustCall(() => { |
| assert(!socket.destroyed); |
| })); |
| socket.on('close', common.mustCall()); |
| })); |
| } |
| |
| { |
| const server = net.createServer(common.mustCall((socket) => { |
| socket.end(Buffer.alloc(1024)); |
| })).listen(0, common.mustCall(() => { |
| const socket = net.connect(server.address().port); |
| assert.strictEqual(socket.allowHalfOpen, false); |
| socket.resume(); |
| socket.on('end', common.mustCall(() => { |
| assert(!socket.destroyed); |
| })); |
| socket.end('asd'); |
| socket.on('finish', common.mustCall(() => { |
| assert(!socket.destroyed); |
| })); |
| socket.on('close', common.mustCall(() => { |
| server.close(); |
| })); |
| })); |
| } |