0
0
mirror of https://github.com/nodejs/node.git synced 2024-12-01 16:10:02 +01:00
nodejs/test/sequential/test-buffer-creation-regression.js
Sakthipriyan Vairamani (thefourtheye) d51f4f31be
test: reduce buffer size in buffer-creation test
This test is allocating much more memory than necessary to actually
reproduce the original problem. Lowering the amount of memory allocated
increases performance at least in some cases and makes this test less
likely to time out on SmartOS.

PR-URL: https://github.com/nodejs/node/pull/11177
Ref: https://github.com/nodejs/node/issues/10166

Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Julien Gilli <jgilli@nodejs.org>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
2017-04-04 13:10:51 +05:30

37 lines
880 B
JavaScript

'use strict';
const common = require('../common');
const assert = require('assert');
function test(arrayBuffer, offset, length) {
const uint8Array = new Uint8Array(arrayBuffer, offset, length);
for (let i = 0; i < length; i += 1) {
uint8Array[i] = 1;
}
const buffer = Buffer.from(arrayBuffer, offset, length);
for (let i = 0; i < length; i += 1) {
assert.strictEqual(buffer[i], 1);
}
}
const acceptableOOMErrors = [
'Array buffer allocation failed',
'Invalid array buffer length'
];
const length = 1000;
const offset = 4294967296; /* 1 << 32 */
const size = offset + length;
let arrayBuffer;
try {
arrayBuffer = new ArrayBuffer(size);
} catch (e) {
if (e instanceof RangeError && acceptableOOMErrors.includes(e.message))
return common.skip(`Unable to allocate ${size} bytes for ArrayBuffer`);
throw e;
}
test(arrayBuffer, offset, length);