| // Flags: --expose-internals |
| 'use strict'; |
| |
| const common = require('../common'); |
| |
| const { validateOffsetLengthWrite } = require('internal/fs/utils'); |
| const { kMaxLength } = require('buffer'); |
| |
| // RangeError when offset > byteLength |
| { |
| const offset = 100; |
| const length = 100; |
| const byteLength = 50; |
| common.expectsError( |
| () => validateOffsetLengthWrite(offset, length, byteLength), |
| { |
| code: 'ERR_OUT_OF_RANGE', |
| type: RangeError, |
| message: 'The value of "offset" is out of range. ' + |
| `It must be <= ${byteLength}. Received ${offset}` |
| } |
| ); |
| } |
| |
| // RangeError when byteLength > kMaxLength, and length > kMaxLength - offset . |
| { |
| const offset = kMaxLength; |
| const length = 100; |
| const byteLength = kMaxLength + 1; |
| common.expectsError( |
| () => validateOffsetLengthWrite(offset, length, byteLength), |
| { |
| code: 'ERR_OUT_OF_RANGE', |
| type: RangeError, |
| message: 'The value of "length" is out of range. ' + |
| `It must be <= ${kMaxLength - offset}. Received ${length}` |
| } |
| ); |
| } |
| |
| // RangeError when byteLength < kMaxLength, and length > byteLength - offset . |
| { |
| const offset = kMaxLength - 150; |
| const length = 200; |
| const byteLength = kMaxLength - 100; |
| common.expectsError( |
| () => validateOffsetLengthWrite(offset, length, byteLength), |
| { |
| code: 'ERR_OUT_OF_RANGE', |
| type: RangeError, |
| message: 'The value of "length" is out of range. ' + |
| `It must be <= ${byteLength - offset}. Received ${length}` |
| } |
| ); |
| } |