diff --git a/test/parallel/test-buffer-tostring-4gb.js b/test/parallel/test-buffer-tostring-4gb.js new file mode 100644 index 00000000000000..8ab102e559dad9 --- /dev/null +++ b/test/parallel/test-buffer-tostring-4gb.js @@ -0,0 +1,20 @@ +'use strict'; + +// This tests that Buffer.prototype.toString() works with buffers over 4GB. +const common = require('../common'); + +// Must not throw when start and end are within kMaxLength +// Cannot test on 32bit machine as we are testing the case +// when start and end are above the threshold +common.skipIf32Bits(); +const threshold = 0xFFFFFFFF; // 2^32 - 1 +let largeBuffer; +try { + largeBuffer = Buffer.alloc(threshold + 20); +} catch (e) { + if (e.code === 'ERR_MEMORY_ALLOCATION_FAILED' || /Array buffer allocation failed/.test(e.message)) { + common.skip('insufficient space for Buffer.alloc'); + } + throw e; +} +largeBuffer.toString('utf8', threshold, threshold + 20); diff --git a/test/parallel/test-buffer-tostring-range.js b/test/parallel/test-buffer-tostring-range.js index d033cd204b3200..f4adf64c8d9129 100644 --- a/test/parallel/test-buffer-tostring-range.js +++ b/test/parallel/test-buffer-tostring-range.js @@ -1,6 +1,6 @@ 'use strict'; -const common = require('../common'); +require('../common'); const assert = require('assert'); const rangeBuffer = Buffer.from('abc'); @@ -98,11 +98,3 @@ assert.throws(() => { name: 'TypeError', message: 'Unknown encoding: null' }); - -// Must not throw when start and end are within kMaxLength -// Cannot test on 32bit machine as we are testing the case -// when start and end are above the threshold -common.skipIf32Bits(); -const threshold = 0xFFFFFFFF; -const largeBuffer = Buffer.alloc(threshold + 20); -largeBuffer.toString('utf8', threshold, threshold + 20);