File tree Expand file tree Collapse file tree 3 files changed +29
-13
lines changed Expand file tree Collapse file tree 3 files changed +29
-13
lines changed Original file line number Diff line number Diff line change 1
1
language : rust
2
- rust : nightly
2
+ rust : nightly-2019-04-19
3
3
4
4
before_script :
5
5
- export PATH="$PATH:$HOME/.cargo/bin"
6
6
7
7
install :
8
8
- rustup component add rustfmt
9
- - rustup component add clippy --toolchain=nightly || cargo install --git https://github.com/rust-lang/rust-clippy/ --force clippy
10
-
9
+ - rustup component add clippy
11
10
script :
12
11
- cargo fmt -- --version
13
12
- cargo fmt -- --check
Original file line number Diff line number Diff line change @@ -32,14 +32,11 @@ impl FromStr for WebSocketAccept {
32
32
) ) ;
33
33
}
34
34
let mut array = [ 0u8 ; 20 ] ;
35
- let mut iter = vec. into_iter ( ) ;
36
- for i in & mut array {
37
- * i = iter. next ( ) . unwrap ( ) ;
38
- }
35
+ array[ ..20 ] . clone_from_slice ( & vec[ ..20 ] ) ;
39
36
Ok ( WebSocketAccept ( array) )
40
37
}
41
38
Err ( _) => Err ( WebSocketError :: ProtocolError (
42
- "Invalid Sec-WebSocket-Accept " ,
39
+ "Invalid Sec-WebSocket-Accept" ,
43
40
) ) ,
44
41
}
45
42
}
@@ -101,6 +98,18 @@ mod tests {
101
98
) ;
102
99
}
103
100
101
+ #[ test]
102
+ fn test_header_from_str ( ) {
103
+ let accept = WebSocketAccept :: from_str ( "YSBzaW1wbGUgc2FtcGwgbm9uY2U=" ) ;
104
+ assert ! ( accept. is_ok( ) ) ; // 20 bytes
105
+
106
+ let accept = WebSocketAccept :: from_str ( "YSBzaG9ydCBub25jZQ==" ) ;
107
+ assert ! ( accept. is_err( ) ) ; // < 20 bytes
108
+
109
+ let accept = WebSocketAccept :: from_str ( "YSByZWFsbHkgbWFsaWNpb3VzIG5vbmNl" ) ;
110
+ assert ! ( accept. is_err( ) ) ; // > 20 bytes
111
+ }
112
+
104
113
#[ bench]
105
114
fn bench_header_accept_new ( b : & mut test:: Bencher ) {
106
115
let key = WebSocketKey :: new ( ) ;
Original file line number Diff line number Diff line change @@ -29,11 +29,7 @@ impl FromStr for WebSocketKey {
29
29
) ) ;
30
30
}
31
31
let mut array = [ 0u8 ; 16 ] ;
32
- let mut iter = vec. into_iter ( ) ;
33
- for i in & mut array {
34
- * i = iter. next ( ) . unwrap ( ) ;
35
- }
36
-
32
+ array[ ..16 ] . clone_from_slice ( & vec[ ..16 ] ) ;
37
33
Ok ( WebSocketKey ( array) )
38
34
}
39
35
Err ( _) => Err ( WebSocketError :: ProtocolError (
@@ -92,6 +88,18 @@ mod tests {
92
88
) ;
93
89
}
94
90
91
+ #[ test]
92
+ fn test_header_from_str ( ) {
93
+ let key = WebSocketKey :: from_str ( "YSByZWFsbCBnb29kIGtleQ==" ) ;
94
+ assert ! ( key. is_ok( ) ) ; // 16 bytes
95
+
96
+ let key = WebSocketKey :: from_str ( "YSBzaG9ydCBrZXk=" ) ;
97
+ assert ! ( key. is_err( ) ) ; // < 16 bytes
98
+
99
+ let key = WebSocketKey :: from_str ( "YSB2ZXJ5IHZlcnkgbG9uZyBrZXk=" ) ;
100
+ assert ! ( key. is_err( ) ) ; // > 16 bytes
101
+ }
102
+
95
103
#[ bench]
96
104
fn bench_header_key_new ( b : & mut test:: Bencher ) {
97
105
b. iter ( || {
You can’t perform that action at this time.
0 commit comments