diff --git a/test/pummel/test-buffer-large-size-buffer-alloc-unsafe-slow.js b/test/pummel/test-buffer-large-size-buffer-alloc-unsafe-slow.js index aafa0eaf66e06a..d54040e0e185ba 100644 --- a/test/pummel/test-buffer-large-size-buffer-alloc-unsafe-slow.js +++ b/test/pummel/test-buffer-large-size-buffer-alloc-unsafe-slow.js @@ -7,12 +7,22 @@ common.skipIf32Bits(); const assert = require('node:assert'); const size = 2 ** 31; +let largeBuffer; + // Test Buffer.allocUnsafe with size larger than integer range try { - assert.throws(() => Buffer.allocUnsafeSlow(size).toString('utf8'), { code: 'ERR_STRING_TOO_LONG' }); + largeBuffer = Buffer.allocUnsafeSlow(size); } catch (e) { - if (e.code !== 'ERR_MEMORY_ALLOCATION_FAILED') { - throw e; + if ( + e.code === 'ERR_MEMORY_ALLOCATION_FAILED' || + /Array buffer allocation failed/.test(e.message) + ) { + common.skip('insufficient space for Buffer.allocUnsafeSlow'); } - common.skip('insufficient space for Buffer.allocUnsafeSlow'); + + throw e; } + +assert.throws(() => largeBuffer.toString('utf8'), { + code: 'ERR_STRING_TOO_LONG', +}); diff --git a/test/pummel/test-buffer-large-size-buffer-write.js b/test/pummel/test-buffer-large-size-buffer-write.js index 6579e75ea85a08..37e113a06d0f65 100644 --- a/test/pummel/test-buffer-large-size-buffer-write.js +++ b/test/pummel/test-buffer-large-size-buffer-write.js @@ -9,14 +9,21 @@ const kStringMaxLength = require('buffer').constants.MAX_STRING_LENGTH; const size = 2 ** 31; -// Test Buffer.write with size larger than integer range +let largeBuffer; + try { - const buf = Buffer.alloc(size); - assert.strictEqual(buf.write('a', 2, kStringMaxLength), 1); - assert.strictEqual(buf.write('a', 2, size), 1); + largeBuffer = Buffer.alloc(size); } catch (e) { - if (e.code !== 'ERR_MEMORY_ALLOCATION_FAILED') { - throw e; + if ( + e.code === 'ERR_MEMORY_ALLOCATION_FAILED' || + /Array buffer allocation failed/.test(e.message) + ) { + common.skip('insufficient space for Buffer.alloc'); } - common.skip('insufficient space for Buffer.alloc'); + + throw e; } + +// Test Buffer.write with size larger than integer range +assert.strictEqual(largeBuffer.write('a', 2, kStringMaxLength), 1); +assert.strictEqual(largeBuffer.write('a', 2, size), 1); diff --git a/test/pummel/test-buffer-large-size-slowbuffer.js b/test/pummel/test-buffer-large-size-slowbuffer.js index b4670b4173004b..c4302f7e61b06f 100644 --- a/test/pummel/test-buffer-large-size-slowbuffer.js +++ b/test/pummel/test-buffer-large-size-slowbuffer.js @@ -9,14 +9,22 @@ const { Buffer } = require('node:buffer'); const size = 2 ** 31; +let largeBuffer; + // Test slow Buffer with size larger than integer range try { - assert.throws(() => Buffer.allocUnsafeSlow(size).toString('utf8'), { - code: 'ERR_STRING_TOO_LONG', - }); + largeBuffer = Buffer.allocUnsafeSlow(size); } catch (e) { - if (e.code !== 'ERR_MEMORY_ALLOCATION_FAILED') { - throw e; + if ( + e.code === 'ERR_MEMORY_ALLOCATION_FAILED' || + /Array buffer allocation failed/.test(e.message) + ) { + common.skip('insufficient space for slow Buffer allocation'); } - common.skip('insufficient space for slow Buffer allocation'); + + throw e; } + +assert.throws(() => largeBuffer.toString('utf8'), { + code: 'ERR_STRING_TOO_LONG', +}); diff --git a/test/pummel/test-string-decoder-large-buffer.js b/test/pummel/test-string-decoder-large-buffer.js index e72dfb58b61de4..0a4001cc936904 100644 --- a/test/pummel/test-string-decoder-large-buffer.js +++ b/test/pummel/test-string-decoder-large-buffer.js @@ -17,13 +17,20 @@ const stringTooLongError = { name: 'Error', }; +let largeBuffer; + try { - const buf = Buffer.allocUnsafe(size); - const decoder = new StringDecoder('utf8'); - assert.throws(() => decoder.write(buf), stringTooLongError); + largeBuffer = Buffer.allocUnsafe(size); } catch (e) { - if (e.code !== 'ERR_MEMORY_ALLOCATION_FAILED') { - throw e; + if ( + e.code === 'ERR_MEMORY_ALLOCATION_FAILED' || + /Array buffer allocation failed/.test(e.message) + ) { + common.skip('insufficient space for Buffer.allocUnsafe'); } - common.skip('insufficient space for Buffer.alloc'); + + throw e; } + +const decoder = new StringDecoder('utf8'); +assert.throws(() => decoder.write(largeBuffer), stringTooLongError);