bench: read server entirely before sending buffer to client

Previously, write_tls() was always getting aligned buffers,
avoiding testing certain code paths.
This commit is contained in:
Nicolas Viennot 2020-04-05 02:15:04 +00:00 committed by ctz
parent cfde038d29
commit a40724db72
1 changed files with 11 additions and 4 deletions

View File

@ -59,8 +59,17 @@ fn transfer(left: &mut dyn Session, right: &mut dyn Session) -> f64 {
let mut buf = [0u8; 262144];
let mut read_time = 0f64;
while left.wants_write() {
let sz = left.write_tls(&mut buf.as_mut()).unwrap();
loop {
let mut sz = 0;
while left.wants_write() {
let written = left.write_tls(&mut buf[sz..].as_mut()).unwrap();
if written == 0 {
break;
}
sz += written;
}
if sz == 0 {
return read_time;
@ -77,8 +86,6 @@ fn transfer(left: &mut dyn Session, right: &mut dyn Session) -> f64 {
}
}
}
read_time
}
fn drain(d: &mut dyn Session, expect_len: usize) {