test: improve coverage of the buffer module
Add tests for untested branches and statements. Also convert some lines to const. PR-URL: https://github.com/nodejs/node/pull/8552 Reviewed-By: Rich Trott <rtrott@gmail.com> Reviewed-By: Сковорода Никита Андреевич <chalkerx@gmail.com>
This commit is contained in:
parent
05886cbab1
commit
8699ecd340
@ -26,6 +26,14 @@ assert.strictEqual(512, c.length);
|
|||||||
const d = Buffer.from([]);
|
const d = Buffer.from([]);
|
||||||
assert.strictEqual(0, d.length);
|
assert.strictEqual(0, d.length);
|
||||||
|
|
||||||
|
// Test offset properties
|
||||||
|
{
|
||||||
|
const b = Buffer.alloc(128);
|
||||||
|
assert.strictEqual(128, b.length);
|
||||||
|
assert.strictEqual(0, b.byteOffset);
|
||||||
|
assert.strictEqual(0, b.offset);
|
||||||
|
}
|
||||||
|
|
||||||
// Test creating a Buffer from a Uint32Array
|
// Test creating a Buffer from a Uint32Array
|
||||||
{
|
{
|
||||||
const ui32 = new Uint32Array(4).fill(42);
|
const ui32 = new Uint32Array(4).fill(42);
|
||||||
@ -49,6 +57,9 @@ assert.throws(() => b.toString('invalid'),
|
|||||||
// invalid encoding for Buffer.write
|
// invalid encoding for Buffer.write
|
||||||
assert.throws(() => b.write('test string', 0, 5, 'invalid'),
|
assert.throws(() => b.write('test string', 0, 5, 'invalid'),
|
||||||
/Unknown encoding: invalid/);
|
/Unknown encoding: invalid/);
|
||||||
|
// unsupported arguments for Buffer.write
|
||||||
|
assert.throws(() => b.write('test', 'utf8', 0),
|
||||||
|
/is no longer supported/);
|
||||||
|
|
||||||
|
|
||||||
// try to create 0-length buffers
|
// try to create 0-length buffers
|
||||||
@ -706,6 +717,16 @@ assert.strictEqual('<Buffer 81 a3 66 6f 6f a3 62 61 72>', x.inspect());
|
|||||||
assert.strictEqual(buf[4], 0);
|
assert.strictEqual(buf[4], 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
// test alloc with fill option
|
||||||
|
const buf = Buffer.alloc(5, '800A', 'hex');
|
||||||
|
assert.strictEqual(buf[0], 128);
|
||||||
|
assert.strictEqual(buf[1], 10);
|
||||||
|
assert.strictEqual(buf[2], 128);
|
||||||
|
assert.strictEqual(buf[3], 10);
|
||||||
|
assert.strictEqual(buf[4], 128);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// Check for fractional length args, junk length args, etc.
|
// Check for fractional length args, junk length args, etc.
|
||||||
// https://github.com/joyent/node/issues/1758
|
// https://github.com/joyent/node/issues/1758
|
||||||
|
@ -15,7 +15,7 @@ assert.strictEqual(-1, a.compare(b, '0'));
|
|||||||
// Equivalent to a.compare(b).
|
// Equivalent to a.compare(b).
|
||||||
assert.strictEqual(-1, a.compare(b, 0, undefined, 0));
|
assert.strictEqual(-1, a.compare(b, 0, undefined, 0));
|
||||||
|
|
||||||
// Zero-length targer, return 1
|
// Zero-length target, return 1
|
||||||
assert.strictEqual(1, a.compare(b, 0, 0, 0));
|
assert.strictEqual(1, a.compare(b, 0, 0, 0));
|
||||||
assert.strictEqual(1, a.compare(b, '0', '0', '0'));
|
assert.strictEqual(1, a.compare(b, '0', '0', '0'));
|
||||||
|
|
||||||
@ -25,6 +25,10 @@ assert.strictEqual(1, a.compare(b, 6, 10));
|
|||||||
// Zero-length source, return -1
|
// Zero-length source, return -1
|
||||||
assert.strictEqual(-1, a.compare(b, 6, 10, 0, 0));
|
assert.strictEqual(-1, a.compare(b, 6, 10, 0, 0));
|
||||||
|
|
||||||
|
// Zero-length source and target, return 0
|
||||||
|
assert.strictEqual(0, a.compare(b, 0, 0, 0, 0));
|
||||||
|
assert.strictEqual(0, a.compare(b, 1, 1, 2, 2));
|
||||||
|
|
||||||
// Equivalent to Buffer.compare(a.slice(4), b.slice(0, 5))
|
// Equivalent to Buffer.compare(a.slice(4), b.slice(0, 5))
|
||||||
assert.strictEqual(1, a.compare(b, 0, 5, 4));
|
assert.strictEqual(1, a.compare(b, 0, 5, 4));
|
||||||
|
|
||||||
|
@ -1,15 +1,15 @@
|
|||||||
'use strict';
|
'use strict';
|
||||||
require('../common');
|
require('../common');
|
||||||
var assert = require('assert');
|
const assert = require('assert');
|
||||||
|
|
||||||
var Buffer = require('buffer').Buffer;
|
const Buffer = require('buffer').Buffer;
|
||||||
|
|
||||||
var b = Buffer.from('abcdef');
|
const b = Buffer.from('abcdef');
|
||||||
var buf_a = Buffer.from('a');
|
const buf_a = Buffer.from('a');
|
||||||
var buf_bc = Buffer.from('bc');
|
const buf_bc = Buffer.from('bc');
|
||||||
var buf_f = Buffer.from('f');
|
const buf_f = Buffer.from('f');
|
||||||
var buf_z = Buffer.from('z');
|
const buf_z = Buffer.from('z');
|
||||||
var buf_empty = Buffer.from('');
|
const buf_empty = Buffer.from('');
|
||||||
|
|
||||||
assert.equal(b.indexOf('a'), 0);
|
assert.equal(b.indexOf('a'), 0);
|
||||||
assert.equal(b.indexOf('a', 1), -1);
|
assert.equal(b.indexOf('a', 1), -1);
|
||||||
@ -78,6 +78,12 @@ assert.equal(b.indexOf(Buffer.from('f'), 6), -1);
|
|||||||
|
|
||||||
assert.equal(Buffer.from('ff').indexOf(Buffer.from('f'), 1, 'ucs2'), -1);
|
assert.equal(Buffer.from('ff').indexOf(Buffer.from('f'), 1, 'ucs2'), -1);
|
||||||
|
|
||||||
|
// test invalid and uppercase encoding
|
||||||
|
assert.strictEqual(b.indexOf('b', 'utf8'), 1);
|
||||||
|
assert.strictEqual(b.indexOf('b', 'UTF8'), 1);
|
||||||
|
assert.strictEqual(b.indexOf('62', 'HEX'), 1);
|
||||||
|
assert.throws(() => b.indexOf('bad', 'enc'), /Unknown encoding: enc/);
|
||||||
|
|
||||||
// test hex encoding
|
// test hex encoding
|
||||||
assert.strictEqual(
|
assert.strictEqual(
|
||||||
Buffer.from(b.toString('hex'), 'hex')
|
Buffer.from(b.toString('hex'), 'hex')
|
||||||
|
7
test/parallel/test-buffer-new.js
Normal file
7
test/parallel/test-buffer-new.js
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
'use strict';
|
||||||
|
|
||||||
|
require('../common');
|
||||||
|
const assert = require('assert');
|
||||||
|
const Buffer = require('buffer').Buffer;
|
||||||
|
|
||||||
|
assert.throws(() => new Buffer(42, 'utf8'), /first argument must be a string/);
|
Loading…
x
Reference in New Issue
Block a user