Files
node/test/addons/buffer-free-callback/test.js
T
Anna Henningsen be97db92af test: add buffer alignment regression tests
Buffers instances can have arbitrary alignment. `node-ffi` depends on
this. Add some regression tests to ensure we don't break this in the
future.

PR-URL: https://github.com/nodejs/node/pull/5752
Reviewed-By: trevnorris - Trevor Norris <trev.norris@gmail.com>
Reviewed-By: bnoordhuis - Ben Noordhuis <info@bnoordhuis.nl>
2016-03-19 07:08:08 -07:00

36 lines
644 B
JavaScript

'use strict';
// Flags: --expose-gc
require('../../common');
var binding = require('./build/Release/binding');
function check(size, alignment, offset) {
var buf = binding.alloc(size, alignment, offset);
var slice = buf.slice(size >>> 1);
buf = null;
binding.check(slice);
slice = null;
gc();
gc();
gc();
}
check(64, 1, 0);
// Buffers can have weird sizes.
check(97, 1, 0);
// Buffers can be unaligned
check(64, 8, 0);
check(64, 16, 0);
check(64, 8, 1);
check(64, 16, 1);
check(97, 8, 1);
check(97, 16, 1);
check(97, 8, 3);
check(97, 16, 3);
// Empty ArrayBuffer does not allocate data, worth checking
check(0, 1, 0);