From 3abcdf4df9dd9fca9e45c4c996c68a5a63adc5fb Mon Sep 17 00:00:00 2001 From: "A. Volgin" Date: Sat, 21 Dec 2019 00:22:15 +0300 Subject: [PATCH 1/2] dgram: test to add and to drop specific membership Test of addSourceSpecificMembership and dropSourceSpecificMembership for correct arguments with sourceAddress, groupAddress. --- lib/dgram.js | 12 ++--- test/parallel/test-dgram-membership.js | 72 ++++++++++++++++++++++++++ 2 files changed, 76 insertions(+), 8 deletions(-) diff --git a/lib/dgram.js b/lib/dgram.js index b17def6cec9d1c..26d1e1d11a0e76 100644 --- a/lib/dgram.js +++ b/lib/dgram.js @@ -856,13 +856,11 @@ Socket.prototype.addSourceSpecificMembership = function(sourceAddress, healthCheck(this); if (typeof sourceAddress !== 'string') { - throw new errors.TypeError('ERR_INVALID_ARG_TYPE', 'sourceAddress', - 'string'); + throw new ERR_INVALID_ARG_TYPE('sourceAddress', 'string', sourceAddress); } if (typeof groupAddress !== 'string') { - throw new errors.TypeError('ERR_INVALID_ARG_TYPE', 'groupAddress', - 'string'); + throw new ERR_INVALID_ARG_TYPE('groupAddress', 'string', groupAddress); } const err = @@ -881,13 +879,11 @@ Socket.prototype.dropSourceSpecificMembership = function(sourceAddress, healthCheck(this); if (typeof sourceAddress !== 'string') { - throw new errors.TypeError('ERR_INVALID_ARG_TYPE', 'sourceAddress', - 'string'); + throw new ERR_INVALID_ARG_TYPE('sourceAddress', 'string', sourceAddress); } if (typeof groupAddress !== 'string') { - throw new errors.TypeError('ERR_INVALID_ARG_TYPE', 'groupAddress', - 'string'); + throw new ERR_INVALID_ARG_TYPE('groupAddress', 'string', groupAddress); } const err = diff --git a/test/parallel/test-dgram-membership.js b/test/parallel/test-dgram-membership.js index 47704e90b7ce13..830548ab4b568a 100644 --- a/test/parallel/test-dgram-membership.js +++ b/test/parallel/test-dgram-membership.js @@ -76,3 +76,75 @@ const setup = dgram.createSocket.bind(dgram, { type: 'udp4', reuseAddr: true }); /^Error: dropMembership EINVAL$/); socket.close(); } + +// addSourceSpecificMembership with invalid sourceAddress should throw +{ + const socket = setup(); + assert.throws(() => { + socket.addSourceSpecificMembership(0, multicastAddress); + }, { + code: 'ERR_INVALID_ARG_TYPE', + message: /^The "sourceAddress" argument must be of type string\. Received type number$/ + }); + socket.close(); +} + +// addSourceSpecificMembership with invalid sourceAddress should throw +{ + const socket = setup(); + assert.throws(() => { + socket.addSourceSpecificMembership(multicastAddress, 0); + }, { + code: 'ERR_INVALID_ARG_TYPE', + message: /^The "groupAddress" argument must be of type string\. Received type number$/ + }); + socket.close(); +} + +// addSourceSpecificMembership with invalid groupAddress should throw +{ + const socket = setup(); + assert.throws(() => { + socket.addSourceSpecificMembership(multicastAddress, '0'); + }, { + code: 'EINVAL', + message: 'addSourceSpecificMembership EINVAL' + }); + socket.close(); +} + +// dropSourceSpecificMembership with invalid sourceAddress should throw +{ + const socket = setup(); + assert.throws(() => { + socket.dropSourceSpecificMembership(0, multicastAddress); + }, { + code: 'ERR_INVALID_ARG_TYPE', + message: /^The "sourceAddress" argument must be of type string\. Received type number$/ + }); + socket.close(); +} + +// dropSourceSpecificMembership with invalid groupAddress should throw +{ + const socket = setup(); + assert.throws(() => { + socket.dropSourceSpecificMembership(multicastAddress, 0); + }, { + code: 'ERR_INVALID_ARG_TYPE', + message: /^The "groupAddress" argument must be of type string\. Received type number$/ + }); + socket.close(); +} + +// dropSourceSpecificMembership with invalid UDP should throw +{ + const socket = setup(); + assert.throws(() => { + socket.dropSourceSpecificMembership(multicastAddress, '0'); + }, { + code: 'EINVAL', + message: 'dropSourceSpecificMembership EINVAL' + }); + socket.close(); +} From 0559d2c45cea5e204651b54d088149fb3c4ef66d Mon Sep 17 00:00:00 2001 From: "A. Volgin" Date: Sat, 21 Dec 2019 02:24:27 +0300 Subject: [PATCH 2/2] test: fix linters and messages of tests Fix max-len and assert.throws message --- test/parallel/test-dgram-membership.js | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/test/parallel/test-dgram-membership.js b/test/parallel/test-dgram-membership.js index 830548ab4b568a..a852d618c78897 100644 --- a/test/parallel/test-dgram-membership.js +++ b/test/parallel/test-dgram-membership.js @@ -84,7 +84,8 @@ const setup = dgram.createSocket.bind(dgram, { type: 'udp4', reuseAddr: true }); socket.addSourceSpecificMembership(0, multicastAddress); }, { code: 'ERR_INVALID_ARG_TYPE', - message: /^The "sourceAddress" argument must be of type string\. Received type number$/ + message: 'The "sourceAddress" argument must be of type string. ' + + 'Received type number (0)' }); socket.close(); } @@ -96,7 +97,8 @@ const setup = dgram.createSocket.bind(dgram, { type: 'udp4', reuseAddr: true }); socket.addSourceSpecificMembership(multicastAddress, 0); }, { code: 'ERR_INVALID_ARG_TYPE', - message: /^The "groupAddress" argument must be of type string\. Received type number$/ + message: 'The "groupAddress" argument must be of type string. ' + + 'Received type number (0)' }); socket.close(); } @@ -120,7 +122,8 @@ const setup = dgram.createSocket.bind(dgram, { type: 'udp4', reuseAddr: true }); socket.dropSourceSpecificMembership(0, multicastAddress); }, { code: 'ERR_INVALID_ARG_TYPE', - message: /^The "sourceAddress" argument must be of type string\. Received type number$/ + message: 'The "sourceAddress" argument must be of type string. ' + + 'Received type number (0)' }); socket.close(); } @@ -132,7 +135,8 @@ const setup = dgram.createSocket.bind(dgram, { type: 'udp4', reuseAddr: true }); socket.dropSourceSpecificMembership(multicastAddress, 0); }, { code: 'ERR_INVALID_ARG_TYPE', - message: /^The "groupAddress" argument must be of type string\. Received type number$/ + message: 'The "groupAddress" argument must be of type string. ' + + 'Received type number (0)' }); socket.close(); }