1'use strict';
2// Flags: --zero-fill-buffers
3
4// when using --zero-fill-buffers, every Buffer and SlowBuffer
5// instance must be zero filled upon creation
6
7require('../common');
8const SlowBuffer = require('buffer').SlowBuffer;
9const assert = require('assert');
10
11function isZeroFilled(buf) {
12  for (const n of buf)
13    if (n > 0) return false;
14  return true;
15}
16
17// This can be somewhat unreliable because the
18// allocated memory might just already happen to
19// contain all zeroes. The test is run multiple
20// times to improve the reliability.
21for (let i = 0; i < 50; i++) {
22  const bufs = [
23    Buffer.alloc(20),
24    Buffer.allocUnsafe(20),
25    SlowBuffer(20),
26    Buffer(20),
27    new SlowBuffer(20),
28  ];
29  for (const buf of bufs) {
30    assert(isZeroFilled(buf));
31  }
32}
33