summaryrefslogtreecommitdiff
path: root/test/parallel/test-net-socket-write-after-close.js
diff options
context:
space:
mode:
authorcjihrig <cjihrig@gmail.com>2017-05-23 11:51:41 -0400
committercjihrig <cjihrig@gmail.com>2017-05-26 12:21:16 -0400
commit6a18c1d8dd034767f86bc496e292ecb0dddf944f (patch)
tree5486164ec385148f742f987d7d0a5dd12213a1e2 /test/parallel/test-net-socket-write-after-close.js
parent0aa7ef595084bca35f76cb38e28a0efc7a3128a3 (diff)
downloadandroid-node-v8-6a18c1d8dd034767f86bc496e292ecb0dddf944f.tar.gz
android-node-v8-6a18c1d8dd034767f86bc496e292ecb0dddf944f.tar.bz2
android-node-v8-6a18c1d8dd034767f86bc496e292ecb0dddf944f.zip
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: https://github.com/nodejs/node/pull/13171 Reviewed-By: Luigi Pinca <luigipinca@gmail.com> Reviewed-By: Michael Dawson <michael_dawson@ca.ibm.com> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Refael Ackermann <refack@gmail.com>
Diffstat (limited to 'test/parallel/test-net-socket-write-after-close.js')
-rw-r--r--test/parallel/test-net-socket-write-after-close.js39
1 files changed, 39 insertions, 0 deletions
diff --git a/test/parallel/test-net-socket-write-after-close.js b/test/parallel/test-net-socket-write-after-close.js
new file mode 100644
index 0000000000..6d2d2fdd02
--- /dev/null
+++ b/test/parallel/test-net-socket-write-after-close.js
@@ -0,0 +1,39 @@
+'use strict';
+const common = require('../common');
+const assert = require('assert');
+const net = require('net');
+
+{
+ const server = net.createServer();
+
+ server.listen(common.mustCall(() => {
+ const port = server.address().port;
+ const client = net.connect({port}, common.mustCall(() => {
+ client.on('error', common.mustCall((err) => {
+ server.close();
+ assert.strictEqual(err.constructor, Error);
+ assert.strictEqual(err.message, 'write EBADF');
+ }));
+ client._handle.close();
+ client.write('foo');
+ }));
+ }));
+}
+
+{
+ const server = net.createServer();
+
+ server.listen(common.mustCall(() => {
+ const port = server.address().port;
+ const client = net.connect({port}, common.mustCall(() => {
+ client.on('error', common.mustCall((err) => {
+ server.close();
+ assert.strictEqual(err.constructor, Error);
+ assert.strictEqual(err.message, 'This socket is closed');
+ }));
+ client._handle.close();
+ client._handle = null;
+ client.write('foo');
+ }));
+ }));
+}