--- /dev/null
+'use strict';
+
+require('../common');
+const assert = require('assert');
+
+// v8 fails silently if string length > v8::String::kMaxLength
+// v8::String::kMaxLength defined in v8.h
+const kStringMaxLength = process.binding('buffer').kStringMaxLength;
+
+try {
+ new Buffer(kStringMaxLength * 3);
+} catch(e) {
+ assert.equal(e.message, 'Invalid array buffer length');
+ console.log(
+ '1..0 # Skipped: intensive toString tests due to memory confinements');
+ return;
+}
+
+const buf = new Buffer(kStringMaxLength);
+
+const maxString = buf.toString('binary');
+assert.equal(maxString.length, kStringMaxLength);
--- /dev/null
+'use strict';
+
+require('../common');
+const assert = require('assert');
+
+// v8 fails silently if string length > v8::String::kMaxLength
+// v8::String::kMaxLength defined in v8.h
+const kStringMaxLength = process.binding('buffer').kStringMaxLength;
+
+try {
+ new Buffer(kStringMaxLength * 3);
+} catch(e) {
+ assert.equal(e.message, 'Invalid array buffer length');
+ console.log(
+ '1..0 # Skipped: intensive toString tests due to memory confinements');
+ return;
+}
+
+const buf1 = new Buffer(kStringMaxLength + 1);
+
+assert.throws(function() {
+ buf1.toString();
+}, /toString failed|Invalid array buffer length/);
+
+assert.throws(function() {
+ buf1.toString('ascii');
+}, /toString failed/);
+
+assert.throws(function() {
+ buf1.toString('utf8');
+}, /toString failed/);
+
+assert.throws(function() {
+ buf1.toString('binary');
+}, /toString failed/);
+
+assert.throws(function() {
+ buf1.toString('base64');
+}, /toString failed/);
+
+assert.throws(function() {
+ buf1.toString('hex');
+}, /toString failed/);
+
+var maxString = buf1.toString('binary', 1);
+assert.equal(maxString.length, kStringMaxLength);
+maxString = undefined;
+
+maxString = buf1.toString('binary', 0, kStringMaxLength);
+assert.equal(maxString.length, kStringMaxLength);
+// Free the memory early instead of at the end of the next assignment
+maxString = undefined;
--- /dev/null
+'use strict';
+
+require('../common');
+const assert = require('assert');
+
+// v8 fails silently if string length > v8::String::kMaxLength
+// v8::String::kMaxLength defined in v8.h
+const kStringMaxLength = process.binding('buffer').kStringMaxLength;
+
+try {
+ new Buffer(kStringMaxLength * 3);
+} catch(e) {
+ assert.equal(e.message, 'Invalid array buffer length');
+ console.log(
+ '1..0 # Skipped: intensive toString tests due to memory confinements');
+ return;
+}
+
+const buf2 = new Buffer(kStringMaxLength + 2);
+
+const maxString = buf2.toString('utf16le');
+assert.equal(maxString.length, (kStringMaxLength + 2) / 2);
--- /dev/null
+'use strict';
+
+require('../common');
+const assert = require('assert');
+
+// v8 fails silently if string length > v8::String::kMaxLength
+// v8::String::kMaxLength defined in v8.h
+const kStringMaxLength = process.binding('buffer').kStringMaxLength;
+
+try {
+ new Buffer(kStringMaxLength * 3);
+} catch(e) {
+ assert.equal(e.message, 'Invalid array buffer length');
+ console.log(
+ '1..0 # Skipped: intensive toString tests due to memory confinements');
+ return;
+}
+
+const buf0 = new Buffer(kStringMaxLength * 2 + 2);
+
+assert.throws(function() {
+ buf0.toString('utf16le');
+}, /toString failed/);
assert.equal(a, b);
assert.equal(b, c);
})();
-
-// v8 fails silently if string length > v8::String::kMaxLength
-(function() {
- // v8::String::kMaxLength defined in v8.h
- const kStringMaxLength = process.binding('buffer').kStringMaxLength;
-
- try {
- new Buffer(kStringMaxLength * 3);
- } catch(e) {
- assert.equal(e.message, 'Invalid array buffer length');
- console.log(
- '1..0 # Skipped: intensive toString tests due to memory confinements');
- return;
- }
-
- const buf0 = new Buffer(kStringMaxLength * 2 + 2);
- const buf1 = buf0.slice(0, kStringMaxLength + 1);
- const buf2 = buf0.slice(0, kStringMaxLength);
- const buf3 = buf0.slice(0, kStringMaxLength + 2);
-
- assert.throws(function() {
- buf1.toString();
- }, /toString failed|Invalid array buffer length/);
-
- assert.throws(function() {
- buf1.toString('ascii');
- }, /toString failed/);
-
- assert.throws(function() {
- buf1.toString('utf8');
- }, /toString failed/);
-
- assert.throws(function() {
- buf0.toString('utf16le');
- }, /toString failed/);
-
- assert.throws(function() {
- buf1.toString('binary');
- }, /toString failed/);
-
- assert.throws(function() {
- buf1.toString('base64');
- }, /toString failed/);
-
- assert.throws(function() {
- buf1.toString('hex');
- }, /toString failed/);
-
- var maxString = buf2.toString();
- assert.equal(maxString.length, kStringMaxLength);
- // Free the memory early instead of at the end of the next assignment
- maxString = undefined;
-
- maxString = buf2.toString('binary');
- assert.equal(maxString.length, kStringMaxLength);
- maxString = undefined;
-
- maxString = buf1.toString('binary', 1);
- assert.equal(maxString.length, kStringMaxLength);
- maxString = undefined;
-
- maxString = buf1.toString('binary', 0, kStringMaxLength);
- assert.equal(maxString.length, kStringMaxLength);
- maxString = undefined;
-
- maxString = buf3.toString('utf16le');
- assert.equal(maxString.length, (kStringMaxLength + 2) / 2);
- maxString = undefined;
-})();