aboutsummaryrefslogtreecommitdiff
path: root/test/parallel/test-buffer-over-max-length.js
diff options
context:
space:
mode:
authorJoyee Cheung <joyeec9h3@gmail.com>2016-12-13 12:51:01 +0800
committerAnna Henningsen <anna@addaleax.net>2016-12-13 19:25:13 +0100
commit3d353c749cdb64b2d018766d05ba0e9b9b0f7ec8 (patch)
tree1e98fa2e1b0522361d26800da2d3757f058a7124 /test/parallel/test-buffer-over-max-length.js
parent832960592faaf290903adcc768778ef4bdc6e9fc (diff)
downloadandroid-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.js26
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);