@@ -7,80 +7,55 @@ assert.strictEqual(0, Buffer.from('hello', 'utf8').slice(0, 0).length);
77assert . strictEqual ( 0 , Buffer ( 'hello' , 'utf8' ) . slice ( 0 , 0 ) . length ) ;
88
99const 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+ ] ;
2843
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+ ) ;
6451}
6552
53+ expectedSameBufs . forEach ( ( [ buf1 , buf2 ] ) => {
54+ assert . strictEqual ( 0 , Buffer . compare ( buf1 , buf2 ) ) ;
55+ } ) ;
56+
6657const utf16Buf = Buffer . from ( '0123456789' , 'utf16le' ) ;
6758assert . 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-
8459// try to slice a zero length Buffer
8560// see https://github.com/joyent/node/issues/5881
8661assert . doesNotThrow ( ( ) => Buffer . alloc ( 0 ) . slice ( 0 , 1 ) ) ;
0 commit comments