-
Notifications
You must be signed in to change notification settings - Fork 29.6k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
test: improve coverage of fs internal utils
Refs: https://coverage.nodejs.org/coverage-910efc2d9a69ac32/lib/internal/fs/utils.js.html#L634 PR-URL: #38746 Reviewed-By: Michael Dawson <midawson@redhat.com> Reviewed-By: Khaidi Chu <i@2333.moe> Reviewed-By: Darshan Sen <raisinten@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com>
- Loading branch information
1 parent
981217e
commit 0cca16a
Showing
2 changed files
with
87 additions
and
43 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,87 @@ | ||
// Flags: --expose-internals | ||
'use strict'; | ||
|
||
const common = require('../common'); | ||
|
||
const assert = require('assert'); | ||
const { | ||
validateOffsetLengthRead, | ||
validateOffsetLengthWrite, | ||
} = require('internal/fs/utils'); | ||
|
||
{ | ||
const offset = -1; | ||
assert.throws( | ||
() => validateOffsetLengthRead(offset, 0, 0), | ||
common.expectsError({ | ||
code: 'ERR_OUT_OF_RANGE', | ||
name: 'RangeError', | ||
message: 'The value of "offset" is out of range. ' + | ||
`It must be >= 0. Received ${offset}` | ||
}) | ||
); | ||
} | ||
|
||
{ | ||
const length = -1; | ||
assert.throws( | ||
() => validateOffsetLengthRead(0, length, 0), | ||
common.expectsError({ | ||
code: 'ERR_OUT_OF_RANGE', | ||
name: 'RangeError', | ||
message: 'The value of "length" is out of range. ' + | ||
`It must be >= 0. Received ${length}` | ||
}) | ||
); | ||
} | ||
|
||
{ | ||
const offset = 1; | ||
const length = 1; | ||
const byteLength = offset + length - 1; | ||
assert.throws( | ||
() => validateOffsetLengthRead(offset, length, byteLength), | ||
common.expectsError({ | ||
code: 'ERR_OUT_OF_RANGE', | ||
name: 'RangeError', | ||
message: 'The value of "length" is out of range. ' + | ||
`It must be <= ${byteLength - offset}. Received ${length}` | ||
}) | ||
); | ||
} | ||
|
||
// Most platforms don't allow reads or writes >= 2 GB. | ||
// See https://github.com/libuv/libuv/pull/1501. | ||
const kIoMaxLength = 2 ** 31 - 1; | ||
|
||
// RangeError when offset > byteLength | ||
{ | ||
const offset = 100; | ||
const length = 100; | ||
const byteLength = 50; | ||
assert.throws( | ||
() => validateOffsetLengthWrite(offset, length, byteLength), | ||
common.expectsError({ | ||
code: 'ERR_OUT_OF_RANGE', | ||
name: 'RangeError', | ||
message: 'The value of "offset" is out of range. ' + | ||
`It must be <= ${byteLength}. Received ${offset}` | ||
}) | ||
); | ||
} | ||
|
||
// RangeError when byteLength < kIoMaxLength, and length > byteLength - offset. | ||
{ | ||
const offset = kIoMaxLength - 150; | ||
const length = 200; | ||
const byteLength = kIoMaxLength - 100; | ||
assert.throws( | ||
() => validateOffsetLengthWrite(offset, length, byteLength), | ||
common.expectsError({ | ||
code: 'ERR_OUT_OF_RANGE', | ||
name: 'RangeError', | ||
message: 'The value of "length" is out of range. ' + | ||
`It must be <= ${byteLength - offset}. Received ${length}` | ||
}) | ||
); | ||
} |
This file was deleted.
Oops, something went wrong.