Browse Source

test: split up buffer tests for reliability

The Pi 1's in CI don't always fail on the buffer.toString() tests. But
they time out sometimes, so let's split the tests up so they don't.

PR-URL: https://github.com/nodejs/node/pull/3323
Reviewed By: Evan Lucas <evanlucas@me.com>
Reviewed-By: Brian White <mscdex@mscdex.net>
Reviewed By: Trevor Norris <trev.norris@gmail.com>
v5.x
Rich Trott 10 years ago
parent
commit
7d94611ac9
  1. 23
      test/parallel/test-stringbytes-external-exceed-max-by-1-ascii.js
  2. 23
      test/parallel/test-stringbytes-external-exceed-max-by-1-base64.js
  3. 31
      test/parallel/test-stringbytes-external-exceed-max-by-1-binary.js
  4. 23
      test/parallel/test-stringbytes-external-exceed-max-by-1-hex.js
  5. 27
      test/parallel/test-stringbytes-external-exceed-max-by-1-utf8.js

23
test/parallel/test-stringbytes-external-exceed-max-by-1-ascii.js

@ -0,0 +1,23 @@
'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 + 1);
assert.throws(function() {
buf.toString('ascii');
}, /toString failed/);

23
test/parallel/test-stringbytes-external-exceed-max-by-1-base64.js

@ -0,0 +1,23 @@
'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 + 1);
assert.throws(function() {
buf.toString('base64');
}, /toString failed/);

31
test/parallel/test-stringbytes-external-exceed-max-by-1.js → test/parallel/test-stringbytes-external-exceed-max-by-1-binary.js

@ -16,37 +16,16 @@ try {
return;
}
const buf1 = new Buffer(kStringMaxLength + 1);
const buf = 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');
buf.toString('binary');
}, /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);
var maxString = buf.toString('binary', 1);
assert.equal(maxString.length, kStringMaxLength);
// Free the memory early instead of at the end of the next assignment
maxString = undefined;
maxString = buf1.toString('binary', 0, kStringMaxLength);
maxString = buf.toString('binary', 0, kStringMaxLength);
assert.equal(maxString.length, kStringMaxLength);
// Free the memory early instead of at the end of the next assignment
maxString = undefined;

23
test/parallel/test-stringbytes-external-exceed-max-by-1-hex.js

@ -0,0 +1,23 @@
'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 + 1);
assert.throws(function() {
buf.toString('hex');
}, /toString failed/);

27
test/parallel/test-stringbytes-external-exceed-max-by-1-utf8.js

@ -0,0 +1,27 @@
'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 + 1);
assert.throws(function() {
buf.toString();
}, /toString failed|Invalid array buffer length/);
assert.throws(function() {
buf.toString('utf8');
}, /toString failed/);
Loading…
Cancel
Save