Files
Notes/notes-service/vendor/futures-timer/tests/smoke.rs
T
2026-08-01 16:11:49 +03:00

39 lines
848 B
Rust

use std::error::Error;
use std::pin::Pin;
use std::time::{Duration, Instant};
use futures_timer::Delay;
#[async_std::test]
async fn works() {
let i = Instant::now();
let dur = Duration::from_millis(100);
let _d = Delay::new(dur).await;
assert!(i.elapsed() > dur);
}
#[async_std::test]
async fn reset() -> Result<(), Box<dyn Error + Send + Sync + 'static>> {
let i = Instant::now();
let dur = Duration::from_millis(100);
let mut d = Delay::new(dur);
// Allow us to re-use a future
Pin::new(&mut d).await;
assert!(i.elapsed() > dur);
let i = Instant::now();
d.reset(dur);
d.await;
assert!(i.elapsed() > dur);
Ok(())
}
#[test]
fn overflow() {
// Could have overflown if wasn't implemented correctly
let mut delay = Delay::new(Duration::MAX);
delay.reset(Duration::MAX);
}