2019-08-10 00:07:57 +09:00
|
|
|
#![warn(rust_2018_idioms)]
|
2019-04-23 23:17:57 -04:00
|
|
|
|
2019-11-06 23:53:46 -08:00
|
|
|
use tokio::time::delay;
|
2019-04-23 23:17:57 -04:00
|
|
|
use tokio_test::clock::MockClock;
|
2019-10-21 16:45:13 -07:00
|
|
|
use tokio_test::task;
|
|
|
|
|
use tokio_test::{assert_pending, assert_ready};
|
|
|
|
|
|
|
|
|
|
use std::time::{Duration, Instant};
|
2019-04-23 23:17:57 -04:00
|
|
|
|
|
|
|
|
#[test]
|
|
|
|
|
fn clock() {
|
|
|
|
|
let mut mock = MockClock::new();
|
|
|
|
|
|
|
|
|
|
mock.enter(|handle| {
|
|
|
|
|
let deadline = Instant::now() + Duration::from_secs(1);
|
2019-10-21 16:45:13 -07:00
|
|
|
let mut delay = task::spawn(delay(deadline));
|
2019-04-23 23:17:57 -04:00
|
|
|
|
2019-10-21 16:45:13 -07:00
|
|
|
assert_pending!(delay.poll());
|
2019-04-23 23:17:57 -04:00
|
|
|
|
|
|
|
|
handle.advance(Duration::from_secs(2));
|
|
|
|
|
|
2019-10-21 16:45:13 -07:00
|
|
|
assert!(delay.is_woken());
|
2019-04-23 23:17:57 -04:00
|
|
|
assert_ready!(delay.poll());
|
|
|
|
|
});
|
|
|
|
|
}
|