@@ -7,80 +7,55 @@ assert.strictEqual(0, Buffer.from('hello', 'utf8').slice(0, 0).length);
7
7
assert . strictEqual ( 0 , Buffer ( 'hello' , 'utf8' ) . slice ( 0 , 0 ) . length ) ;
8
8
9
9
const buf = Buffer . from ( '0123456789' , 'utf8' ) ;
10
- assert . strictEqual ( 0 , Buffer . compare ( buf . slice ( - 10 , 10 ) ,
11
- Buffer . from ( '0123456789' , 'utf8' ) ) ) ;
12
- assert . strictEqual ( 0 , Buffer . compare ( buf . slice ( - 20 , 10 ) ,
13
- Buffer . from ( '0123456789' , 'utf8' ) ) ) ;
14
- assert . strictEqual ( 0 , Buffer . compare ( buf . slice ( - 20 , - 10 ) ,
15
- Buffer . from ( '' , 'utf8' ) ) ) ;
16
- assert . strictEqual ( 0 , Buffer . compare ( buf . slice ( ) ,
17
- Buffer . from ( '0123456789' , 'utf8' ) ) ) ;
18
- assert . strictEqual ( 0 , Buffer . compare ( buf . slice ( 0 ) ,
19
- Buffer . from ( '0123456789' , 'utf8' ) ) ) ;
20
- assert . strictEqual ( 0 , Buffer . compare ( buf . slice ( 0 , 0 ) ,
21
- Buffer . from ( '' , 'utf8' ) ) ) ;
22
- assert . strictEqual ( 0 , Buffer . compare ( buf . slice ( undefined ) ,
23
- Buffer . from ( '0123456789' , 'utf8' ) ) ) ;
24
- assert . strictEqual ( 0 , Buffer . compare ( buf . slice ( 'foobar' ) ,
25
- Buffer . from ( '0123456789' , 'utf8' ) ) ) ;
26
- assert . strictEqual ( 0 , Buffer . compare ( buf . slice ( undefined , undefined ) ,
27
- Buffer . from ( '0123456789' , 'utf8' ) ) ) ;
10
+ const expectedSameBufs = [
11
+ [ buf . slice ( - 10 , 10 ) , Buffer . from ( '0123456789' , 'utf8' ) ] ,
12
+ [ buf . slice ( - 20 , 10 ) , Buffer . from ( '0123456789' , 'utf8' ) ] ,
13
+ [ buf . slice ( - 20 , - 10 ) , Buffer . from ( '' , 'utf8' ) ] ,
14
+ [ buf . slice ( ) , Buffer . from ( '0123456789' , 'utf8' ) ] ,
15
+ [ buf . slice ( 0 ) , Buffer . from ( '0123456789' , 'utf8' ) ] ,
16
+ [ buf . slice ( 0 , 0 ) , Buffer . from ( '' , 'utf8' ) ] ,
17
+ [ buf . slice ( undefined ) , Buffer . from ( '0123456789' , 'utf8' ) ] ,
18
+ [ buf . slice ( 'foobar' ) , Buffer . from ( '0123456789' , 'utf8' ) ] ,
19
+ [ buf . slice ( undefined , undefined ) , Buffer . from ( '0123456789' , 'utf8' ) ] ,
20
+ [ buf . slice ( 2 ) , Buffer . from ( '23456789' , 'utf8' ) ] ,
21
+ [ buf . slice ( 5 ) , Buffer . from ( '56789' , 'utf8' ) ] ,
22
+ [ buf . slice ( 10 ) , Buffer . from ( '' , 'utf8' ) ] ,
23
+ [ buf . slice ( 5 , 8 ) , Buffer . from ( '567' , 'utf8' ) ] ,
24
+ [ buf . slice ( 8 , - 1 ) , Buffer . from ( '8' , 'utf8' ) ] ,
25
+ [ buf . slice ( - 10 ) , Buffer . from ( '0123456789' , 'utf8' ) ] ,
26
+ [ buf . slice ( 0 , - 9 ) , Buffer . from ( '0' , 'utf8' ) ] ,
27
+ [ buf . slice ( 0 , - 10 ) , Buffer . from ( '' , 'utf8' ) ] ,
28
+ [ buf . slice ( 0 , - 1 ) , Buffer . from ( '012345678' , 'utf8' ) ] ,
29
+ [ buf . slice ( 2 , - 2 ) , Buffer . from ( '234567' , 'utf8' ) ] ,
30
+ [ buf . slice ( 0 , 65536 ) , Buffer . from ( '0123456789' , 'utf8' ) ] ,
31
+ [ buf . slice ( 65536 , 0 ) , Buffer . from ( '' , 'utf8' ) ] ,
32
+ [ buf . slice ( - 5 , - 8 ) , Buffer . from ( '' , 'utf8' ) ] ,
33
+ [ buf . slice ( - 5 , - 3 ) , Buffer . from ( '56' , 'utf8' ) ] ,
34
+ [ buf . slice ( - 10 , 10 ) , Buffer . from ( '0123456789' , 'utf8' ) ] ,
35
+ [ buf . slice ( '0' , '1' ) , Buffer . from ( '0' , 'utf8' ) ] ,
36
+ [ buf . slice ( '-5' , '10' ) , Buffer . from ( '56789' , 'utf8' ) ] ,
37
+ [ buf . slice ( '-10' , '10' ) , Buffer . from ( '0123456789' , 'utf8' ) ] ,
38
+ [ buf . slice ( '-10' , '-5' ) , Buffer . from ( '01234' , 'utf8' ) ] ,
39
+ [ buf . slice ( '-10' , '-0' ) , Buffer . from ( '' , 'utf8' ) ] ,
40
+ [ buf . slice ( '111' ) , Buffer . from ( '' , 'utf8' ) ] ,
41
+ [ buf . slice ( '0' , '-111' ) , Buffer . from ( '' , 'utf8' ) ]
42
+ ] ;
28
43
29
- assert . strictEqual ( 0 , Buffer . compare ( buf . slice ( 2 ) ,
30
- Buffer . from ( '23456789' , 'utf8' ) ) ) ;
31
- assert . strictEqual ( 0 , Buffer . compare ( buf . slice ( 5 ) ,
32
- Buffer . from ( '56789' , 'utf8' ) ) ) ;
33
- assert . strictEqual ( 0 , Buffer . compare ( buf . slice ( 10 ) ,
34
- Buffer . from ( '' , 'utf8' ) ) ) ;
35
- assert . strictEqual ( 0 , Buffer . compare ( buf . slice ( 5 , 8 ) ,
36
- Buffer . from ( '567' , 'utf8' ) ) ) ;
37
- assert . strictEqual ( 0 , Buffer . compare ( buf . slice ( 8 , - 1 ) ,
38
- Buffer . from ( '8' , 'utf8' ) ) ) ;
39
- assert . strictEqual ( 0 , Buffer . compare ( buf . slice ( - 10 ) ,
40
- Buffer . from ( '0123456789' , 'utf8' ) ) ) ;
41
- assert . strictEqual ( 0 , Buffer . compare ( buf . slice ( 0 , - 9 ) ,
42
- Buffer . from ( '0' , 'utf8' ) ) ) ;
43
- assert . strictEqual ( 0 , Buffer . compare ( buf . slice ( 0 , - 10 ) ,
44
- Buffer . from ( '' , 'utf8' ) ) ) ;
45
- assert . strictEqual ( 0 , Buffer . compare ( buf . slice ( 0 , - 1 ) ,
46
- Buffer . from ( '012345678' , 'utf8' ) ) ) ;
47
- assert . strictEqual ( 0 , Buffer . compare ( buf . slice ( 2 , - 2 ) ,
48
- Buffer . from ( '234567' , 'utf8' ) ) ) ;
49
- assert . strictEqual ( 0 , Buffer . compare ( buf . slice ( 0 , 65536 ) ,
50
- Buffer . from ( '0123456789' , 'utf8' ) ) ) ;
51
- assert . strictEqual ( 0 , Buffer . compare ( buf . slice ( 65536 , 0 ) ,
52
- Buffer . from ( '' , 'utf8' ) ) ) ;
53
- assert . strictEqual ( 0 , Buffer . compare ( buf . slice ( - 5 , - 8 ) ,
54
- Buffer . from ( '' , 'utf8' ) ) ) ;
55
- assert . strictEqual ( 0 , Buffer . compare ( buf . slice ( - 5 , - 3 ) ,
56
- Buffer . from ( '56' , 'utf8' ) ) ) ;
57
- assert . strictEqual ( 0 , Buffer . compare ( buf . slice ( - 10 , 10 ) ,
58
- Buffer . from ( '0123456789' , 'utf8' ) ) ) ;
59
- for ( let i = 0 , s = buf ; i < buf . length ; ++ i ) {
60
- assert . strictEqual ( 0 , Buffer . compare ( buf . slice ( i ) , s . slice ( i ) ) ) ;
61
- assert . strictEqual ( 0 , Buffer . compare ( buf . slice ( 0 , i ) , s . slice ( 0 , i ) ) ) ;
62
- assert . strictEqual ( 0 , Buffer . compare ( buf . slice ( - i ) , s . slice ( - i ) ) ) ;
63
- assert . strictEqual ( 0 , Buffer . compare ( buf . slice ( 0 , - i ) , s . slice ( 0 , - i ) ) ) ;
44
+ for ( let i = 0 , s = buf . toString ( ) ; i < buf . length ; ++ i ) {
45
+ expectedSameBufs . push (
46
+ [ buf . slice ( i ) , Buffer . from ( s . slice ( i ) ) ] ,
47
+ [ buf . slice ( 0 , i ) , Buffer . from ( s . slice ( 0 , i ) ) ] ,
48
+ [ buf . slice ( - i ) , Buffer . from ( s . slice ( - i ) ) ] ,
49
+ [ buf . slice ( 0 , - i ) , Buffer . from ( s . slice ( 0 , - i ) ) ]
50
+ ) ;
64
51
}
65
52
53
+ expectedSameBufs . forEach ( ( [ buf1 , buf2 ] ) => {
54
+ assert . strictEqual ( 0 , Buffer . compare ( buf1 , buf2 ) ) ;
55
+ } ) ;
56
+
66
57
const utf16Buf = Buffer . from ( '0123456789' , 'utf16le' ) ;
67
58
assert . deepStrictEqual ( utf16Buf . slice ( 0 , 6 ) , Buffer . from ( '012' , 'utf16le' ) ) ;
68
-
69
- assert . strictEqual ( 0 , Buffer . compare ( buf . slice ( '0' , '1' ) ,
70
- Buffer . from ( '0' , 'utf8' ) ) ) ;
71
- assert . strictEqual ( 0 , Buffer . compare ( buf . slice ( '-5' , '10' ) ,
72
- Buffer . from ( '56789' , 'utf8' ) ) ) ;
73
- assert . strictEqual ( 0 , Buffer . compare ( buf . slice ( '-10' , '10' ) ,
74
- Buffer . from ( '0123456789' , 'utf8' ) ) ) ;
75
- assert . strictEqual ( 0 , Buffer . compare ( buf . slice ( '-10' , '-5' ) ,
76
- Buffer . from ( '01234' , 'utf8' ) ) ) ;
77
- assert . strictEqual ( 0 , Buffer . compare ( buf . slice ( '-10' , '-0' ) ,
78
- Buffer . from ( '' , 'utf8' ) ) ) ;
79
- assert . strictEqual ( 0 , Buffer . compare ( buf . slice ( '111' ) ,
80
- Buffer . from ( '' , 'utf8' ) ) ) ;
81
- assert . strictEqual ( 0 , Buffer . compare ( buf . slice ( '0' , '-111' ) ,
82
- Buffer . from ( '' , 'utf8' ) ) ) ;
83
-
84
59
// try to slice a zero length Buffer
85
60
// see https://github.com/joyent/node/issues/5881
86
61
assert . doesNotThrow ( ( ) => Buffer . alloc ( 0 ) . slice ( 0 , 1 ) ) ;
0 commit comments