1// Flags: --expose-internals 2'use strict'; 3 4require('../common'); 5const assert = require('assert'); 6const { validateOffsetLengthWrite } = require('internal/fs/utils'); 7const { kMaxLength } = require('buffer'); 8 9// RangeError when offset > byteLength 10{ 11 const offset = 100; 12 const length = 100; 13 const byteLength = 50; 14 assert.throws( 15 () => validateOffsetLengthWrite(offset, length, byteLength), 16 { 17 code: 'ERR_OUT_OF_RANGE', 18 name: 'RangeError', 19 message: 'The value of "offset" is out of range. ' + 20 `It must be <= ${byteLength}. Received ${offset}` 21 } 22 ); 23} 24 25// RangeError when byteLength > kMaxLength, and length > kMaxLength - offset . 26{ 27 const offset = kMaxLength; 28 const length = 100; 29 const byteLength = kMaxLength + 1; 30 assert.throws( 31 () => validateOffsetLengthWrite(offset, length, byteLength), 32 { 33 code: 'ERR_OUT_OF_RANGE', 34 name: 'RangeError', 35 message: 'The value of "length" is out of range. ' + 36 `It must be <= ${kMaxLength - offset}. Received ${length}` 37 } 38 ); 39} 40 41// RangeError when byteLength < kMaxLength, and length > byteLength - offset . 42{ 43 const offset = kMaxLength - 150; 44 const length = 200; 45 const byteLength = kMaxLength - 100; 46 assert.throws( 47 () => validateOffsetLengthWrite(offset, length, byteLength), 48 { 49 code: 'ERR_OUT_OF_RANGE', 50 name: 'RangeError', 51 message: 'The value of "length" is out of range. ' + 52 `It must be <= ${byteLength - offset}. Received ${length}` 53 } 54 ); 55} 56