@@ -50,7 +50,7 @@ quick_error! {
50
50
}
51
51
}
52
52
53
- fn blob ( slow : bool , max_size : usize ) -> Result < ( ) , Error > {
53
+ fn blob ( slow : bool , blocking : bool , max_size : usize ) -> Result < ( ) , Error > {
54
54
const SIZE : usize = 262_144 ;
55
55
// This test generates a random 256KiB BLOB, sends it, and then receives the BLOB, where every byte is
56
56
// added by 1.
@@ -82,13 +82,13 @@ fn blob(slow: bool, max_size: usize) -> Result<(), Error> {
82
82
. with_endianness :: < BigEndian > ( )
83
83
. with_reader :: < BufReader < SlowReader < TcpStream > > > ( )
84
84
. with_max_size ( max_size)
85
- . build ( BufReader :: new ( SlowReader :: new ( stream. try_clone ( ) ?, slow) ) ) ;
85
+ . build ( BufReader :: new ( SlowReader :: new ( stream. try_clone ( ) ?, slow, blocking ) ) ) ;
86
86
87
87
let mut sender = SenderBuilder :: buffered ( )
88
88
. with_type :: < Response > ( )
89
89
. with_endianness :: < BigEndian > ( )
90
90
. with_writer :: < BufWriter < SlowWriter < TcpStream > > > ( )
91
- . build ( BufWriter :: new ( SlowWriter :: new ( stream, slow) ) ) ;
91
+ . build ( BufWriter :: new ( SlowWriter :: new ( stream, slow, blocking ) ) ) ;
92
92
93
93
while let Ok ( command) = receiver. recv ( ) {
94
94
match command {
@@ -111,14 +111,14 @@ fn blob(slow: bool, max_size: usize) -> Result<(), Error> {
111
111
. with_type :: < Request > ( )
112
112
. with_writer :: < SlowWriter < TcpStream > > ( )
113
113
. with_endianness :: < BigEndian > ( )
114
- . build ( SlowWriter :: new ( stream. try_clone ( ) ?, slow) ) ;
114
+ . build ( SlowWriter :: new ( stream. try_clone ( ) ?, slow, blocking ) ) ;
115
115
116
116
let mut receiver = ReceiverBuilder :: buffered ( )
117
117
. with_type :: < Response > ( )
118
118
. with_reader :: < BufReader < SlowReader < TcpStream > > > ( )
119
119
. with_endianness :: < BigEndian > ( )
120
120
. with_max_size ( max_size)
121
- . build ( BufReader :: new ( SlowReader :: new ( stream, slow) ) ) ;
121
+ . build ( BufReader :: new ( SlowReader :: new ( stream, slow, blocking ) ) ) ;
122
122
123
123
let blob = {
124
124
let mut blob = vec ! [ 0u8 ; SIZE ] ;
@@ -150,14 +150,22 @@ fn blob(slow: bool, max_size: usize) -> Result<(), Error> {
150
150
}
151
151
#[ test]
152
152
fn fast_blob ( ) -> Result < ( ) , Error > {
153
- blob ( false , DEFAULT_MAX_SIZE )
153
+ blob ( false , true , DEFAULT_MAX_SIZE )
154
+ }
155
+ #[ test]
156
+ fn fast_nonblocking_blob ( ) -> Result < ( ) , Error > {
157
+ blob ( false , false , DEFAULT_MAX_SIZE )
154
158
}
155
159
#[ test]
156
160
fn slow_blob ( ) -> Result < ( ) , Error > {
157
- blob ( true , DEFAULT_MAX_SIZE )
161
+ blob ( true , true , DEFAULT_MAX_SIZE )
162
+ }
163
+ #[ test]
164
+ fn slow_nonblocking_blob ( ) -> Result < ( ) , Error > {
165
+ blob ( true , false , DEFAULT_MAX_SIZE )
158
166
}
159
167
#[ should_panic]
160
168
#[ test]
161
169
fn fast_blob_too_small ( ) {
162
- blob ( true , 1024 ) . unwrap ( )
170
+ blob ( true , true , 1024 ) . unwrap ( )
163
171
}
0 commit comments