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:
committed by
sakridge
parent
f1221d724d
commit
ddc8bfed29
@ -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);
|
||||||
|
Reference in New Issue
Block a user