From 610ac7d8581012e627a4f4b67450b423ddbda415 Mon Sep 17 00:00:00 2001 From: DavidCai Date: Mon, 27 Mar 2017 21:54:41 +0800 Subject: [PATCH] test: increase coverage of internal/socket_list PR-URL: https://github.com/nodejs/node/pull/12066 Reviewed-By: James M Snell Reviewed-By: Colin Ihrig --- .../test-internal-socket-list-receive.js | 1 + .../test-internal-socket-list-send.js | 22 +++++++++++++++++++ 2 files changed, 23 insertions(+) diff --git a/test/parallel/test-internal-socket-list-receive.js b/test/parallel/test-internal-socket-list-receive.js index 5315adbfd45ba5..c0eb223719ae6f 100644 --- a/test/parallel/test-internal-socket-list-receive.js +++ b/test/parallel/test-internal-socket-list-receive.js @@ -17,6 +17,7 @@ const key = 'test-key'; const list = new SocketListReceive(child, key); list.child.emit('internalMessage', { key, cmd: 'NODE_SOCKET_NOTIFY_CLOSE' }); + list.child.emit('internalMessage', { key, cmd: 'NODE_SOCKET_GET_COUNT' }); } // Verify that a "NODE_SOCKET_ALL_CLOSED" message will be sent. diff --git a/test/parallel/test-internal-socket-list-send.js b/test/parallel/test-internal-socket-list-send.js index a5020a431c3459..10413bfdbcb839 100644 --- a/test/parallel/test-internal-socket-list-send.js +++ b/test/parallel/test-internal-socket-list-send.js @@ -112,3 +112,25 @@ const key = 'test-key'; assert.strictEqual(child.listenerCount('disconnect'), 0); })); } + +// Verify that an error will be received in callback when child is +// disconnected after sending a message and before getting the reply. +{ + const count = 1; + const child = Object.assign(new EventEmitter(), { + connected: true, + send: function(msg) { + process.nextTick(() => { + this.emit('disconnect'); + this.emit('internalMessage', { key, count, cmd: 'NODE_SOCKET_COUNT' }); + }); + } + }); + + const list = new SocketListSend(child, key); + + list.getConnections(common.mustCall((err, msg) => { + assert.strictEqual(err.message, 'child closed before reply'); + assert.strictEqual(child.listenerCount('internalMessage'), 0); + })); +}