Skip to content

Commit 8699ecd

Browse files
committed
test: improve coverage of the buffer module
Add tests for untested branches and statements. Also convert some lines to const. PR-URL: #8552 Reviewed-By: Rich Trott <[email protected]> Reviewed-By: Сковорода Никита Андреевич <[email protected]>
1 parent 05886cb commit 8699ecd

4 files changed

+47
-9
lines changed

test/parallel/test-buffer-alloc.js

+21
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,14 @@ assert.strictEqual(512, c.length);
2626
const d = Buffer.from([]);
2727
assert.strictEqual(0, d.length);
2828

29+
// Test offset properties
30+
{
31+
const b = Buffer.alloc(128);
32+
assert.strictEqual(128, b.length);
33+
assert.strictEqual(0, b.byteOffset);
34+
assert.strictEqual(0, b.offset);
35+
}
36+
2937
// Test creating a Buffer from a Uint32Array
3038
{
3139
const ui32 = new Uint32Array(4).fill(42);
@@ -49,6 +57,9 @@ assert.throws(() => b.toString('invalid'),
4957
// invalid encoding for Buffer.write
5058
assert.throws(() => b.write('test string', 0, 5, 'invalid'),
5159
/Unknown encoding: invalid/);
60+
// unsupported arguments for Buffer.write
61+
assert.throws(() => b.write('test', 'utf8', 0),
62+
/is no longer supported/);
5263

5364

5465
// try to create 0-length buffers
@@ -706,6 +717,16 @@ assert.strictEqual('<Buffer 81 a3 66 6f 6f a3 62 61 72>', x.inspect());
706717
assert.strictEqual(buf[4], 0);
707718
}
708719

720+
{
721+
// test alloc with fill option
722+
const buf = Buffer.alloc(5, '800A', 'hex');
723+
assert.strictEqual(buf[0], 128);
724+
assert.strictEqual(buf[1], 10);
725+
assert.strictEqual(buf[2], 128);
726+
assert.strictEqual(buf[3], 10);
727+
assert.strictEqual(buf[4], 128);
728+
}
729+
709730

710731
// Check for fractional length args, junk length args, etc.
711732
// https://github.com/joyent/node/issues/1758

test/parallel/test-buffer-compare-offset.js

+5-1
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ assert.strictEqual(-1, a.compare(b, '0'));
1515
// Equivalent to a.compare(b).
1616
assert.strictEqual(-1, a.compare(b, 0, undefined, 0));
1717

18-
// Zero-length targer, return 1
18+
// Zero-length target, return 1
1919
assert.strictEqual(1, a.compare(b, 0, 0, 0));
2020
assert.strictEqual(1, a.compare(b, '0', '0', '0'));
2121

@@ -25,6 +25,10 @@ assert.strictEqual(1, a.compare(b, 6, 10));
2525
// Zero-length source, return -1
2626
assert.strictEqual(-1, a.compare(b, 6, 10, 0, 0));
2727

28+
// Zero-length source and target, return 0
29+
assert.strictEqual(0, a.compare(b, 0, 0, 0, 0));
30+
assert.strictEqual(0, a.compare(b, 1, 1, 2, 2));
31+
2832
// Equivalent to Buffer.compare(a.slice(4), b.slice(0, 5))
2933
assert.strictEqual(1, a.compare(b, 0, 5, 4));
3034

test/parallel/test-buffer-indexof.js

+14-8
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
11
'use strict';
22
require('../common');
3-
var assert = require('assert');
3+
const assert = require('assert');
44

5-
var Buffer = require('buffer').Buffer;
5+
const Buffer = require('buffer').Buffer;
66

7-
var b = Buffer.from('abcdef');
8-
var buf_a = Buffer.from('a');
9-
var buf_bc = Buffer.from('bc');
10-
var buf_f = Buffer.from('f');
11-
var buf_z = Buffer.from('z');
12-
var buf_empty = Buffer.from('');
7+
const b = Buffer.from('abcdef');
8+
const buf_a = Buffer.from('a');
9+
const buf_bc = Buffer.from('bc');
10+
const buf_f = Buffer.from('f');
11+
const buf_z = Buffer.from('z');
12+
const buf_empty = Buffer.from('');
1313

1414
assert.equal(b.indexOf('a'), 0);
1515
assert.equal(b.indexOf('a', 1), -1);
@@ -78,6 +78,12 @@ assert.equal(b.indexOf(Buffer.from('f'), 6), -1);
7878

7979
assert.equal(Buffer.from('ff').indexOf(Buffer.from('f'), 1, 'ucs2'), -1);
8080

81+
// test invalid and uppercase encoding
82+
assert.strictEqual(b.indexOf('b', 'utf8'), 1);
83+
assert.strictEqual(b.indexOf('b', 'UTF8'), 1);
84+
assert.strictEqual(b.indexOf('62', 'HEX'), 1);
85+
assert.throws(() => b.indexOf('bad', 'enc'), /Unknown encoding: enc/);
86+
8187
// test hex encoding
8288
assert.strictEqual(
8389
Buffer.from(b.toString('hex'), 'hex')

test/parallel/test-buffer-new.js

+7
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
'use strict';
2+
3+
require('../common');
4+
const assert = require('assert');
5+
const Buffer = require('buffer').Buffer;
6+
7+
assert.throws(() => new Buffer(42, 'utf8'), /first argument must be a string/);

0 commit comments

Comments
 (0)