3
3
require ( '../common' ) ;
4
4
const assert = require ( 'assert' ) ;
5
5
6
- assert . strictEqual ( 0 , Buffer . from ( 'hello' ) . slice ( 0 , 0 ) . length ) ;
7
- assert . strictEqual ( 0 , Buffer ( 'hello' ) . slice ( 0 , 0 ) . length ) ;
6
+ assert . strictEqual ( 0 , Buffer . from ( 'hello' , 'utf8' ) . slice ( 0 , 0 ) . length ) ;
7
+ assert . strictEqual ( 0 , Buffer ( 'hello' , 'utf8' ) . slice ( 0 , 0 ) . length ) ;
8
8
9
- const buf = Buffer . from ( '0123456789' ) ;
10
- assert . equal ( buf . slice ( - 10 , 10 ) , '0123456789' ) ;
11
- assert . equal ( buf . slice ( - 20 , 10 ) , '0123456789' ) ;
12
- assert . equal ( buf . slice ( - 20 , - 10 ) , '' ) ;
13
- assert . equal ( buf . slice ( ) , '0123456789' ) ;
14
- assert . equal ( buf . slice ( 0 ) , '0123456789' ) ;
15
- assert . equal ( buf . slice ( 0 , 0 ) , '' ) ;
16
- assert . equal ( buf . slice ( undefined ) , '0123456789' ) ;
17
- assert . equal ( buf . slice ( 'foobar' ) , '0123456789' ) ;
18
- assert . equal ( buf . slice ( undefined , undefined ) , '0123456789' ) ;
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' ) ) ) ;
19
28
20
- assert . equal ( buf . slice ( 2 ) , '23456789' ) ;
21
- assert . equal ( buf . slice ( 5 ) , '56789' ) ;
22
- assert . equal ( buf . slice ( 10 ) , '' ) ;
23
- assert . equal ( buf . slice ( 5 , 8 ) , '567' ) ;
24
- assert . equal ( buf . slice ( 8 , - 1 ) , '8' ) ;
25
- assert . equal ( buf . slice ( - 10 ) , '0123456789' ) ;
26
- assert . equal ( buf . slice ( 0 , - 9 ) , '0' ) ;
27
- assert . equal ( buf . slice ( 0 , - 10 ) , '' ) ;
28
- assert . equal ( buf . slice ( 0 , - 1 ) , '012345678' ) ;
29
- assert . equal ( buf . slice ( 2 , - 2 ) , '234567' ) ;
30
- assert . equal ( buf . slice ( 0 , 65536 ) , '0123456789' ) ;
31
- assert . equal ( buf . slice ( 65536 , 0 ) , '' ) ;
32
- assert . equal ( buf . slice ( - 5 , - 8 ) , '' ) ;
33
- assert . equal ( buf . slice ( - 5 , - 3 ) , '56' ) ;
34
- assert . equal ( buf . slice ( - 10 , 10 ) , '0123456789' ) ;
35
- for ( let i = 0 , s = buf . toString ( ) ; i < buf . length ; ++ i ) {
36
- assert . equal ( buf . slice ( i ) , s . slice ( i ) ) ;
37
- assert . equal ( buf . slice ( 0 , i ) , s . slice ( 0 , i ) ) ;
38
- assert . equal ( buf . slice ( - i ) , s . slice ( - i ) ) ;
39
- assert . equal ( buf . slice ( 0 , - i ) , s . slice ( 0 , - i ) ) ;
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 ) ) ) ;
40
64
}
41
65
42
66
const utf16Buf = Buffer . from ( '0123456789' , 'utf16le' ) ;
43
67
assert . deepStrictEqual ( utf16Buf . slice ( 0 , 6 ) , Buffer . from ( '012' , 'utf16le' ) ) ;
44
68
45
- assert . equal ( buf . slice ( '0' , '1' ) , '0' ) ;
46
- assert . equal ( buf . slice ( '-5' , '10' ) , '56789' ) ;
47
- assert . equal ( buf . slice ( '-10' , '10' ) , '0123456789' ) ;
48
- assert . equal ( buf . slice ( '-10' , '-5' ) , '01234' ) ;
49
- assert . equal ( buf . slice ( '-10' , '-0' ) , '' ) ;
50
- assert . equal ( buf . slice ( '111' ) , '' ) ;
51
- assert . equal ( buf . slice ( '0' , '-111' ) , '' ) ;
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' ) ) ) ;
52
83
53
84
// try to slice a zero length Buffer
54
85
// see https://github.com/joyent/node/issues/5881
@@ -57,30 +88,32 @@ assert.strictEqual(Buffer.alloc(0).slice(0, 1).length, 0);
57
88
58
89
{
59
90
// Single argument slice
60
- assert . strictEqual ( 'bcde' , Buffer . from ( 'abcde' ) . slice ( 1 ) . toString ( ) ) ;
91
+ assert . strictEqual ( 'bcde' ,
92
+ Buffer . from ( 'abcde' , 'utf8' ) . slice ( 1 ) . toString ( 'utf8' ) ) ;
61
93
}
62
94
63
95
// slice(0,0).length === 0
64
- assert . strictEqual ( 0 , Buffer . from ( 'hello' ) . slice ( 0 , 0 ) . length ) ;
96
+ assert . strictEqual ( 0 , Buffer . from ( 'hello' , 'utf8' ) . slice ( 0 , 0 ) . length ) ;
65
97
66
98
{
67
99
// Regression tests for https://github.com/nodejs/node/issues/9096
68
- const buf = Buffer . from ( 'abcd' ) ;
69
- assert . strictEqual ( buf . slice ( buf . length / 3 ) . toString ( ) , 'bcd' ) ;
100
+ const buf = Buffer . from ( 'abcd' , 'utf8' ) ;
101
+ assert . strictEqual ( buf . slice ( buf . length / 3 ) . toString ( 'utf8' ) , 'bcd' ) ;
70
102
assert . strictEqual (
71
103
buf . slice ( buf . length / 3 , buf . length ) . toString ( ) ,
72
104
'bcd'
73
105
) ;
74
106
}
75
107
76
108
{
77
- const buf = Buffer . from ( 'abcdefg' ) ;
78
- assert . strictEqual ( buf . slice ( - ( - 1 >>> 0 ) - 1 ) . toString ( ) , buf . toString ( ) ) ;
109
+ const buf = Buffer . from ( 'abcdefg' , 'utf8' ) ;
110
+ assert . strictEqual ( buf . slice ( - ( - 1 >>> 0 ) - 1 ) . toString ( 'utf8' ) ,
111
+ buf . toString ( 'utf8' ) ) ;
79
112
}
80
113
81
114
{
82
- const buf = Buffer . from ( 'abc' ) ;
83
- assert . strictEqual ( buf . slice ( - 0.5 ) . toString ( ) , buf . toString ( ) ) ;
115
+ const buf = Buffer . from ( 'abc' , 'utf8' ) ;
116
+ assert . strictEqual ( buf . slice ( - 0.5 ) . toString ( 'utf8' ) , buf . toString ( 'utf8' ) ) ;
84
117
}
85
118
86
119
{
0 commit comments