Skip to content

Commit d0dbd53

Browse files
cjihrigjasnell
authored andcommitted
test: add coverage for socket write after close
This commit adds test coverage for the scenario where a socket's handle has been closed prior to writing. PR-URL: #13171 Reviewed-By: Luigi Pinca <[email protected]> Reviewed-By: Michael Dawson <[email protected]> Reviewed-By: James M Snell <[email protected]> Reviewed-By: Refael Ackermann <[email protected]>
1 parent a7f5c9c commit d0dbd53

File tree

1 file changed

+39
-0
lines changed

1 file changed

+39
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
'use strict';
2+
const common = require('../common');
3+
const assert = require('assert');
4+
const net = require('net');
5+
6+
{
7+
const server = net.createServer();
8+
9+
server.listen(common.mustCall(() => {
10+
const port = server.address().port;
11+
const client = net.connect({port}, common.mustCall(() => {
12+
client.on('error', common.mustCall((err) => {
13+
server.close();
14+
assert.strictEqual(err.constructor, Error);
15+
assert.strictEqual(err.message, 'write EBADF');
16+
}));
17+
client._handle.close();
18+
client.write('foo');
19+
}));
20+
}));
21+
}
22+
23+
{
24+
const server = net.createServer();
25+
26+
server.listen(common.mustCall(() => {
27+
const port = server.address().port;
28+
const client = net.connect({port}, common.mustCall(() => {
29+
client.on('error', common.mustCall((err) => {
30+
server.close();
31+
assert.strictEqual(err.constructor, Error);
32+
assert.strictEqual(err.message, 'This socket is closed');
33+
}));
34+
client._handle.close();
35+
client._handle = null;
36+
client.write('foo');
37+
}));
38+
}));
39+
}

0 commit comments

Comments
 (0)