Fix bad window_send_test channel logic

Test could hang if the blobs are not sent in the right order.
This commit is contained in:
Stephen Akridge
2019-02-13 10:19:10 -08:00
committed by sakridge
parent f1221d724d
commit ddc8bfed29

View File

@ -172,7 +172,6 @@ mod test {
use std::sync::atomic::{AtomicBool, Ordering}; use std::sync::atomic::{AtomicBool, Ordering};
use std::sync::mpsc::channel; use std::sync::mpsc::channel;
use std::sync::{Arc, RwLock}; use std::sync::{Arc, RwLock};
use std::thread::sleep;
use std::time::Duration; use std::time::Duration;
#[test] #[test]
@ -226,15 +225,13 @@ mod test {
let max_attempts = 10; let max_attempts = 10;
let mut num_attempts = 0; let mut num_attempts = 0;
let mut q = Vec::new();
loop { loop {
assert!(num_attempts != max_attempts); assert!(num_attempts != max_attempts);
let mut q = r_retransmit.recv().unwrap(); while let Ok(mut nq) = r_retransmit.recv_timeout(Duration::from_millis(500)) {
while let Ok(mut nq) = r_retransmit.try_recv() {
q.append(&mut nq); q.append(&mut nq);
} }
if q.len() != 10 { if q.len() == 10 {
sleep(Duration::from_millis(100));
} else {
break; break;
} }
num_attempts += 1; num_attempts += 1;
@ -302,8 +299,8 @@ mod test {
s_responder.send(msgs1).expect("send"); s_responder.send(msgs1).expect("send");
t_responder t_responder
}; };
let mut q = r_retransmit.recv().unwrap(); let mut q = Vec::new();
while let Ok(mut nq) = r_retransmit.recv_timeout(Duration::from_millis(100)) { while let Ok(mut nq) = r_retransmit.recv_timeout(Duration::from_millis(500)) {
q.append(&mut nq); q.append(&mut nq);
} }
assert!(q.len() > 10); assert!(q.len() > 10);