node/test/parallel/test-buffer-zero-fill-cli.js
Nikita Skovoroda 3c9c0f8577
test: fix test-buffer-zero-fill-cli to be effective
PR-URL: https://github.com/nodejs/node/pull/60623
Reviewed-By: Rafael Gonzaga <rafael.nunu@hotmail.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
2026-04-10 14:57:38 +02:00

40 lines
1.1 KiB
JavaScript

'use strict';
// Flags: --zero-fill-buffers
// when using --zero-fill-buffers, every Buffer and SlowBuffer
// instance must be zero filled upon creation
require('../common');
const SlowBuffer = require('buffer').SlowBuffer;
const assert = require('assert');
function isZeroFilled(buf) {
for (const n of buf)
if (n > 0) return false;
return true;
}
// We have to consume the data from the pool as otherwise
// we would be testing what's in snapshot, which is zero-filled
// regardless of the flag presence, and we want to test the flag
for (let i = 0; i < 8; i++) {
assert(isZeroFilled(Buffer.allocUnsafe(1024)));
}
// This can be somewhat unreliable because the
// allocated memory might just already happen to
// contain all zeroes. The test is run multiple
// times to improve the reliability.
for (let i = 0; i < 50; i++) {
const bufs = [
Buffer.alloc(20),
Buffer.allocUnsafe(20),
SlowBuffer(20), // Heap
Buffer.allocUnsafeSlow(128), // Alloc
Buffer(20),
new SlowBuffer(20),
];
for (const buf of bufs) {
assert(isZeroFilled(buf));
}
}