1'use strict';
2
3require('../common');
4const assert = require('assert');
5const { SlowBuffer } = require('buffer');
6
7const msg = {
8  code: 'ERR_INVALID_ARG_VALUE',
9  name: 'RangeError',
10  message: /^The argument 'size' is invalid\. Received [^"]*$/
11};
12
13// Test that negative Buffer length inputs throw errors.
14
15assert.throws(() => Buffer(-Buffer.poolSize), msg);
16assert.throws(() => Buffer(-100), msg);
17assert.throws(() => Buffer(-1), msg);
18assert.throws(() => Buffer(NaN), msg);
19
20assert.throws(() => Buffer.alloc(-Buffer.poolSize), msg);
21assert.throws(() => Buffer.alloc(-100), msg);
22assert.throws(() => Buffer.alloc(-1), msg);
23assert.throws(() => Buffer.alloc(NaN), msg);
24
25assert.throws(() => Buffer.allocUnsafe(-Buffer.poolSize), msg);
26assert.throws(() => Buffer.allocUnsafe(-100), msg);
27assert.throws(() => Buffer.allocUnsafe(-1), msg);
28assert.throws(() => Buffer.allocUnsafe(NaN), msg);
29
30assert.throws(() => Buffer.allocUnsafeSlow(-Buffer.poolSize), msg);
31assert.throws(() => Buffer.allocUnsafeSlow(-100), msg);
32assert.throws(() => Buffer.allocUnsafeSlow(-1), msg);
33assert.throws(() => Buffer.allocUnsafeSlow(NaN), msg);
34
35assert.throws(() => SlowBuffer(-Buffer.poolSize), msg);
36assert.throws(() => SlowBuffer(-100), msg);
37assert.throws(() => SlowBuffer(-1), msg);
38assert.throws(() => SlowBuffer(NaN), msg);
39