Add timeout to broker test

master
Nick Krichevsky 2022-05-21 10:22:50 -04:00
parent 3417870edb
commit fd6b53a670
3 changed files with 11 additions and 0 deletions

7
Cargo.lock generated
View File

@ -481,6 +481,12 @@ version = "0.3.21"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "57c66a976bf5909d801bbef33416c41372779507e7a6b3a5e25e4749c58f776a" checksum = "57c66a976bf5909d801bbef33416c41372779507e7a6b3a5e25e4749c58f776a"
[[package]]
name = "futures-timer"
version = "3.0.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e64b03909df88034c26dc1547e8970b91f98bdb65165d6a4e9110d94263dbb2c"
[[package]] [[package]]
name = "futures-util" name = "futures-util"
version = "0.3.21" version = "0.3.21"
@ -1524,6 +1530,7 @@ dependencies = [
"async-trait", "async-trait",
"derive-getters", "derive-getters",
"futures", "futures",
"futures-timer",
"log", "log",
"mailparse", "mailparse",
"serde", "serde",

View File

@ -27,3 +27,4 @@ stop-token = "0.7"
[dev-dependencies] [dev-dependencies]
textwrap = "0.15.0" textwrap = "0.15.0"
futures-timer = "3.0"

View File

@ -159,6 +159,7 @@ mod tests {
collections::HashMap, collections::HashMap,
fmt::{Display, Formatter}, fmt::{Display, Formatter},
sync::Arc, sync::Arc,
time::Duration,
}; };
use crate::task::{Cancel, SpawnError}; use crate::task::{Cancel, SpawnError};
@ -170,6 +171,7 @@ mod tests {
Future, FutureExt, SinkExt, Future, FutureExt, SinkExt,
}; };
use futures::{select, StreamExt}; use futures::{select, StreamExt};
use futures_timer::Delay;
use thiserror::Error; use thiserror::Error;
#[derive(Error, Debug)] #[derive(Error, Debug)]
@ -306,6 +308,7 @@ mod tests {
select! { select! {
msg = message_rx.next() => assert_eq!("hello, world!", msg.expect("empty channel")), msg = message_rx.next() => assert_eq!("hello, world!", msg.expect("empty channel")),
_ = join_handle.fuse() => panic!("broker returned, but did not receive message"), _ = join_handle.fuse() => panic!("broker returned, but did not receive message"),
_ = Delay::new(Duration::from_secs(5)).fuse() => panic!("test timed out"),
}; };
} }
} }