node/test/addons/buffer-free-callback/test.js
Thang Tran 783f8c626c test: change buffer offset to accommodate V8 BackingStore
To avoid problem with the behavior of new V8 BackingStore API,
change the offset. The base address of each test case will be
different.

Fixes: https://github.com/nodejs/node/issues/31061

PR-URL: https://github.com/nodejs/node/pull/31171
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: David Carlier <devnexen@gmail.com>
Reviewed-By: Richard Lau <riclau@uk.ibm.com>
Reviewed-By: Rich Trott <rtrott@gmail.com>
2020-01-05 18:21:15 -08:00

40 lines
857 B
JavaScript

'use strict';
// Flags: --expose-gc
const common = require('../../common');
const binding = require(`./build/${common.buildType}/binding`);
function check(size, alignment, offset) {
let buf = binding.alloc(size, alignment, offset);
let slice = buf.slice(size >>> 1);
buf = null;
binding.check(slice);
slice = null;
global.gc();
global.gc();
global.gc();
}
// NOTE: If adding more check() test cases,
// be sure to not duplicate alignment/offset.
// Refs: https://github.com/nodejs/node/issues/31061#issuecomment-568612283
check(64, 1, 0);
// Buffers can have weird sizes.
check(97, 1, 1);
// Buffers can be unaligned
check(64, 8, 0);
check(64, 16, 0);
check(64, 8, 1);
check(64, 16, 1);
check(97, 8, 3);
check(97, 16, 3);
check(97, 8, 5);
check(97, 16, 5);
// Empty ArrayBuffer does not allocate data, worth checking
check(0, 1, 2);