Skip to content

Commit

Permalink
test: improve fs coverage
Browse files Browse the repository at this point in the history
PR-URL: #38517
Refs: https://coverage.nodejs.org/coverage-68e6673224365120/lib/fs.js.html#L330
Reviewed-By: Rich Trott <rtrott@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Darshan Sen <raisinten@gmail.com>
  • Loading branch information
pd4d10 authored and targos committed May 17, 2021
1 parent 47080bc commit 95db7d5
Show file tree
Hide file tree
Showing 2 changed files with 32 additions and 7 deletions.
22 changes: 15 additions & 7 deletions test/parallel/test-fs-read.js
Original file line number Diff line number Diff line change
Expand Up @@ -78,13 +78,21 @@ assert.throws(
}
);

['buffer', 'offset', 'length'].forEach((option) =>
assert.throws(
() => fs.read(fd, {
[option]: null
}),
`not throws when options.${option} is null`
));
assert.throws(
() => fs.read(fd, { buffer: null }, common.mustNotCall()),
/TypeError: Cannot read property 'byteLength' of null/,
'throws when options.buffer is null'
);

assert.throws(
() => fs.readSync(fd, { buffer: null }),
{
name: 'TypeError',
message: 'The "buffer" argument must be an instance of Buffer, ' +
'TypedArray, or DataView. Received an instance of Object',
},
'throws when options.buffer is null'
);

assert.throws(
() => fs.read(null, Buffer.alloc(1), 0, 1, 0),
Expand Down
17 changes: 17 additions & 0 deletions test/parallel/test-fs-readfile.js
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,23 @@ for (const e of fileInfo) {
assert.deepStrictEqual(buf, e.contents);
}));
}
// Test readFile size too large
{
const kIoMaxLength = 2 ** 31 - 1;

const file = path.join(tmpdir.path, `${prefix}-too-large.txt`);
fs.writeFileSync(file, Buffer.from('0'));
fs.truncateSync(file, kIoMaxLength + 1);

fs.readFile(file, common.expectsError({
code: 'ERR_FS_FILE_TOO_LARGE',
name: 'RangeError',
}));
assert.throws(() => {
fs.readFileSync(file);
}, { code: 'ERR_FS_FILE_TOO_LARGE', name: 'RangeError' });
}

{
// Test cancellation, before
const signal = AbortSignal.abort();
Expand Down

0 comments on commit 95db7d5

Please sign in to comment.