Skip to content

Commit

Permalink
errors: migrate socket_list to internal/errors
Browse files Browse the repository at this point in the history
PR-URL: #11356
Refs: #11273
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Rich Trott <rtrott@gmail.com>
  • Loading branch information
Bougarfaoui El houcine authored and refack committed Jul 21, 2017
1 parent d8eb30a commit a03d8ce
Show file tree
Hide file tree
Showing 4 changed files with 27 additions and 7 deletions.
5 changes: 5 additions & 0 deletions doc/api/errors.md
Original file line number Diff line number Diff line change
Expand Up @@ -580,6 +580,11 @@ by the `assert` module.

Used when attempting to perform an operation outside the bounds of a `Buffer`.

<a id="ERR_CHILD_CLOSED_BEFORE_REPLY"></a>
### ERR_CHILD_CLOSED_BEFORE_REPLY

Used when a child process is closed before the parent received a reply.

<a id="ERR_CONSOLE_WRITABLE_STREAM"></a>
### ERR_CONSOLE_WRITABLE_STREAM

Expand Down
3 changes: 2 additions & 1 deletion lib/internal/errors.js
Original file line number Diff line number Diff line change
Expand Up @@ -102,6 +102,7 @@ module.exports = exports = {
E('ERR_ARG_NOT_ITERABLE', '%s must be iterable');
E('ERR_ASSERTION', '%s');
E('ERR_BUFFER_OUT_OF_BOUNDS', bufferOutOfBounds);
E('ERR_CHILD_CLOSED_BEFORE_REPLY', 'Child closed before reply received');
E('ERR_CONSOLE_WRITABLE_STREAM',
'Console expects a writable stream instance for %s');
E('ERR_CPU_USAGE', 'Unable to obtain cpu usage %s');
Expand Down Expand Up @@ -183,7 +184,7 @@ E('ERR_UNKNOWN_STDIN_TYPE', 'Unknown stdin file type');
E('ERR_UNKNOWN_STREAM_TYPE', 'Unknown stream file type');
E('ERR_V8BREAKITERATOR', 'Full ICU data not installed. ' +
'See https://github.com/nodejs/node/wiki/Intl');
// Add new errors from here...


function invalidArgType(name, expected, actual) {
assert(name, 'name is required');
Expand Down
4 changes: 3 additions & 1 deletion lib/internal/socket_list.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
'use strict';

const errors = require('internal/errors');

const EventEmitter = require('events');

// This object keeps track of the sockets that are sent
Expand All @@ -18,7 +20,7 @@ class SocketListSend extends EventEmitter {

function onclose() {
self.child.removeListener('internalMessage', onreply);
callback(new Error('child closed before reply'));
callback(new errors.Error('ERR_CHILD_CLOSED_BEFORE_REPLY'));
}

function onreply(msg) {
Expand Down
22 changes: 17 additions & 5 deletions test/parallel/test-internal-socket-list-send.js
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,11 @@ const key = 'test-key';
const list = new SocketListSend(child, 'test');

list._request('msg', 'cmd', common.mustCall((err) => {
assert.strictEqual(err.message, 'child closed before reply');
common.expectsError({
code: 'ERR_CHILD_CLOSED_BEFORE_REPLY',
type: Error,
message: 'Child closed before reply received'
})(err);
assert.strictEqual(child.listenerCount('internalMessage'), 0);
}));
}
Expand Down Expand Up @@ -55,7 +59,11 @@ const key = 'test-key';
const list = new SocketListSend(child, key);

list._request('msg', 'cmd', common.mustCall((err) => {
assert.strictEqual(err.message, 'child closed before reply');
common.expectsError({
code: 'ERR_CHILD_CLOSED_BEFORE_REPLY',
type: Error,
message: 'Child closed before reply received'
})(err);
assert.strictEqual(child.listenerCount('internalMessage'), 0);
}));
}
Expand Down Expand Up @@ -119,7 +127,7 @@ const key = 'test-key';
const count = 1;
const child = Object.assign(new EventEmitter(), {
connected: true,
send: function(msg) {
send: function() {
process.nextTick(() => {
this.emit('disconnect');
this.emit('internalMessage', { key, count, cmd: 'NODE_SOCKET_COUNT' });
Expand All @@ -129,8 +137,12 @@ const key = 'test-key';

const list = new SocketListSend(child, key);

list.getConnections(common.mustCall((err, msg) => {
assert.strictEqual(err.message, 'child closed before reply');
list.getConnections(common.mustCall((err) => {
common.expectsError({
code: 'ERR_CHILD_CLOSED_BEFORE_REPLY',
type: Error,
message: 'Child closed before reply received'
})(err);
assert.strictEqual(child.listenerCount('internalMessage'), 0);
}));
}

0 comments on commit a03d8ce

Please sign in to comment.