From 813f6d0a9cc35d29e1daa6f1d011b96180d83728 Mon Sep 17 00:00:00 2001 From: Weijia Wang <381152119@qq.com> Date: Tue, 12 Dec 2017 09:27:35 +0800 Subject: [PATCH 1/2] util: improve error message of _errnoException The usage of ERR_INVALID_ARG_TYPE in _errnoException is a little inappropriate. This change is to improve it. --- lib/util.js | 9 ++++++--- test/parallel/test-uv-errno.js | 16 ++++++++++++++-- 2 files changed, 20 insertions(+), 5 deletions(-) diff --git a/lib/util.js b/lib/util.js index 0d75e43f08d066..2f95e7f760364e 100644 --- a/lib/util.js +++ b/lib/util.js @@ -1056,9 +1056,12 @@ function error(...args) { } function _errnoException(err, syscall, original) { - if (typeof err !== 'number' || err >= 0 || !Number.isSafeInteger(err)) { - throw new errors.TypeError('ERR_INVALID_ARG_TYPE', 'err', - 'negative number'); + if (typeof err !== 'number') { + throw new errors.TypeError('ERR_INVALID_ARG_TYPE', 'err', 'number', err); + } + if (err >= 0 || !Number.isSafeInteger(err)) { + throw new errors.RangeError('ERR_VALUE_OUT_OF_RANGE', 'err', + 'a negative integer', err); } const name = errname(err); var message = `${syscall} ${name}`; diff --git a/test/parallel/test-uv-errno.js b/test/parallel/test-uv-errno.js index 223be9058050d6..c716816d27be9d 100644 --- a/test/parallel/test-uv-errno.js +++ b/test/parallel/test-uv-errno.js @@ -20,12 +20,24 @@ keys.forEach((key) => { }); }); -[0, 1, 'test', {}, [], Infinity, -Infinity, NaN].forEach((key) => { +['test', {}, []].forEach((key) => { common.expectsError( () => util._errnoException(key), { code: 'ERR_INVALID_ARG_TYPE', type: TypeError, - message: 'The "err" argument must be of type negative number' + message: 'The "err" argument must be of type number. ' + + `Received type ${typeof key}` + }); +}); + +[0, 1, Infinity, -Infinity, NaN].forEach((key) => { + common.expectsError( + () => util._errnoException(key), + { + code: 'ERR_VALUE_OUT_OF_RANGE', + type: RangeError, + message: 'The value of "err" must be a negative integer. ' + + `Received "${key}"` }); }); From 8e7d18e4f6e97df549bce1285012d698087cffe7 Mon Sep 17 00:00:00 2001 From: Weijia Wang <381152119@qq.com> Date: Fri, 29 Dec 2017 10:24:16 +0800 Subject: [PATCH 2/2] [squash]fix test --- lib/util.js | 2 +- test/parallel/test-uv-errno.js | 7 ++++--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/lib/util.js b/lib/util.js index 2f95e7f760364e..45e7d88b3b29f1 100644 --- a/lib/util.js +++ b/lib/util.js @@ -1060,7 +1060,7 @@ function _errnoException(err, syscall, original) { throw new errors.TypeError('ERR_INVALID_ARG_TYPE', 'err', 'number', err); } if (err >= 0 || !Number.isSafeInteger(err)) { - throw new errors.RangeError('ERR_VALUE_OUT_OF_RANGE', 'err', + throw new errors.RangeError('ERR_OUT_OF_RANGE', 'err', 'a negative integer', err); } const name = errname(err); diff --git a/test/parallel/test-uv-errno.js b/test/parallel/test-uv-errno.js index c716816d27be9d..e4a40f20c84f9e 100644 --- a/test/parallel/test-uv-errno.js +++ b/test/parallel/test-uv-errno.js @@ -35,9 +35,10 @@ keys.forEach((key) => { common.expectsError( () => util._errnoException(key), { - code: 'ERR_VALUE_OUT_OF_RANGE', + code: 'ERR_OUT_OF_RANGE', type: RangeError, - message: 'The value of "err" must be a negative integer. ' + - `Received "${key}"` + message: 'The value of "err" is out of range. ' + + 'It must be a negative integer. ' + + `Received ${key}` }); });