From 080a72c3499fafd875e5b1011a4ddfc051896981 Mon Sep 17 00:00:00 2001 From: Omar Crisostomo Date: Thu, 28 Dec 2017 21:57:24 -0600 Subject: [PATCH] test: check fs.read and fs.readsync input MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Added tests to extend the code coverage. PR-URL: https://github.com/nodejs/node/pull/17910 Reviewed-By: James M Snell Reviewed-By: Colin Ihrig Reviewed-By: Weijia Wang Reviewed-By: Luigi Pinca Reviewed-By: Ruben Bridgewater Reviewed-By: Michaƫl Zasso --- test/parallel/test-fs-read-type.js | 63 ++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) diff --git a/test/parallel/test-fs-read-type.js b/test/parallel/test-fs-read-type.js index cbbfe4824c1a0e..3338410bec5282 100644 --- a/test/parallel/test-fs-read-type.js +++ b/test/parallel/test-fs-read-type.js @@ -7,6 +7,7 @@ const filepath = fixtures.path('x.txt'); const fd = fs.openSync(filepath, 'r'); const expected = 'xyz\n'; + // Error must be thrown with string common.expectsError( () => fs.read(fd, expected.length, 0, 'utf-8', common.mustNotCall()), @@ -17,6 +18,39 @@ common.expectsError( } ); +[true, null, undefined, () => {}, {}].forEach((value) => { + common.expectsError(() => { + fs.read(value, + Buffer.allocUnsafe(expected.length), + 0, + expected.length, + 0, + common.mustNotCall()); + }, { code: 'ERR_INVALID_ARG_TYPE', type: TypeError, + message: 'The "fd" argument must be of type integer' }); +}); + +common.expectsError(() => { + fs.read(fd, + Buffer.allocUnsafe(expected.length), + -1, + expected.length, + 0, + common.mustNotCall()); +}, { code: 'ERR_OUT_OF_RANGE', type: RangeError, + message: 'The value of "offset" is out of range.' }); + +common.expectsError(() => { + fs.read(fd, + Buffer.allocUnsafe(expected.length), + 0, + -1, + 0, + common.mustNotCall()); +}, { code: 'ERR_OUT_OF_RANGE', type: RangeError, + message: 'The value of "length" is out of range.' }); + + common.expectsError( () => fs.readSync(fd, expected.length, 0, 'utf-8'), { @@ -25,3 +59,32 @@ common.expectsError( message: 'The "buffer" argument must be one of type Buffer or Uint8Array' } ); + +[true, null, undefined, () => {}, {}].forEach((value) => { + common.expectsError(() => { + fs.readSync(value, + Buffer.allocUnsafe(expected.length), + 0, + expected.length, + 0); + }, { code: 'ERR_INVALID_ARG_TYPE', type: TypeError, + message: 'The "fd" argument must be of type integer' }); +}); + +common.expectsError(() => { + fs.readSync(fd, + Buffer.allocUnsafe(expected.length), + -1, + expected.length, + 0); +}, { code: 'ERR_OUT_OF_RANGE', type: RangeError, + message: 'The value of "offset" is out of range.' }); + +common.expectsError(() => { + fs.readSync(fd, + Buffer.allocUnsafe(expected.length), + 0, + -1, + 0); +}, { code: 'ERR_OUT_OF_RANGE', type: RangeError, + message: 'The value of "length" is out of range.' });