diff options
author | Joyee Cheung <joyeec9h3@gmail.com> | 2016-12-13 12:51:01 +0800 |
---|---|---|
committer | Anna Henningsen <anna@addaleax.net> | 2016-12-13 19:25:13 +0100 |
commit | 3d353c749cdb64b2d018766d05ba0e9b9b0f7ec8 (patch) | |
tree | 1e98fa2e1b0522361d26800da2d3757f058a7124 /test/parallel/test-buffer-over-max-length.js | |
parent | 832960592faaf290903adcc768778ef4bdc6e9fc (diff) | |
download | android-node-v8-3d353c749cdb64b2d018766d05ba0e9b9b0f7ec8.tar.gz android-node-v8-3d353c749cdb64b2d018766d05ba0e9b9b0f7ec8.tar.bz2 android-node-v8-3d353c749cdb64b2d018766d05ba0e9b9b0f7ec8.zip |
buffer: consistent error for length > kMaxLength
- Always return the same error message(hopefully more informative)
for buffer length > kMaxLength and avoid getting into V8 C++ land
for unnecessary checks.
- Use accurate RegExp(reusable as `common.bufferMaxSizeMsg`)
in tests for this error.
- Separate related tests from test-buffer-alloc.
PR-URL: https://github.com/nodejs/node/pull/10152
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Diffstat (limited to 'test/parallel/test-buffer-over-max-length.js')
-rw-r--r-- | test/parallel/test-buffer-over-max-length.js | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/test/parallel/test-buffer-over-max-length.js b/test/parallel/test-buffer-over-max-length.js new file mode 100644 index 0000000000..e65b457958 --- /dev/null +++ b/test/parallel/test-buffer-over-max-length.js @@ -0,0 +1,26 @@ +'use strict'; +const common = require('../common'); +const assert = require('assert'); + +const buffer = require('buffer'); +const Buffer = buffer.Buffer; +const SlowBuffer = buffer.SlowBuffer; + +const kMaxLength = buffer.kMaxLength; +const bufferMaxSizeMsg = common.bufferMaxSizeMsg; + +assert.throws(() => Buffer((-1 >>> 0) + 1), bufferMaxSizeMsg); +assert.throws(() => SlowBuffer((-1 >>> 0) + 1), bufferMaxSizeMsg); +assert.throws(() => Buffer.alloc((-1 >>> 0) + 1), bufferMaxSizeMsg); +assert.throws(() => Buffer.allocUnsafe((-1 >>> 0) + 1), bufferMaxSizeMsg); +assert.throws(() => Buffer.allocUnsafeSlow((-1 >>> 0) + 1), bufferMaxSizeMsg); + +assert.throws(() => Buffer(kMaxLength + 1), bufferMaxSizeMsg); +assert.throws(() => SlowBuffer(kMaxLength + 1), bufferMaxSizeMsg); +assert.throws(() => Buffer.alloc(kMaxLength + 1), bufferMaxSizeMsg); +assert.throws(() => Buffer.allocUnsafe(kMaxLength + 1), bufferMaxSizeMsg); +assert.throws(() => Buffer.allocUnsafeSlow(kMaxLength + 1), bufferMaxSizeMsg); + +// issue GH-4331 +assert.throws(() => Buffer.allocUnsafe(0xFFFFFFFF), bufferMaxSizeMsg); +assert.throws(() => Buffer.allocUnsafe(0xFFFFFFFFF), bufferMaxSizeMsg); |