test: skip in test-buffer-tostring-rangeerror on allocation failure · nodejs/node@4c445a8
@@ -23,8 +23,22 @@ const message = {
2323code: 'ERR_STRING_TOO_LONG',
2424name: 'Error',
2525};
26-assert.throws(() => Buffer(len).toString('utf8'), message);
27-assert.throws(() => SlowBuffer(len).toString('utf8'), message);
28-assert.throws(() => Buffer.alloc(len).toString('utf8'), message);
29-assert.throws(() => Buffer.allocUnsafe(len).toString('utf8'), message);
30-assert.throws(() => Buffer.allocUnsafeSlow(len).toString('utf8'), message);
26+27+function test(getBuffer) {
28+let buf;
29+try {
30+buf = getBuffer();
31+} catch (e) {
32+// If the buffer allocation fails, we skip the test.
33+if (e.code === 'ERR_MEMORY_ALLOCATION_FAILED' || /Array buffer allocation failed/.test(e.message)) {
34+return;
35+}
36+}
37+assert.throws(() => { buf.toString('utf8'); }, message);
38+}
39+40+test(() => Buffer(len));
41+test(() => SlowBuffer(len));
42+test(() => Buffer.alloc(len));
43+test(() => Buffer.allocUnsafe(len));
44+test(() => Buffer.allocUnsafeSlow(len));