extern crate tokio_executor; extern crate tokio_timer; use tokio_timer::clock; use tokio_timer::clock::*; use std::time::Instant; struct ConstNow(Instant); impl Now for ConstNow { fn now(&self) -> Instant { self.0 } } #[test] fn default_clock() { let a = Instant::now(); let b = clock::now(); let c = Clock::new().now(); assert!(a <= b); assert!(b <= c); } #[test] fn custom_clock() { let now = ConstNow(Instant::now()); let clock = Clock::new_with_now(now); let a = Instant::now(); let b = clock.now(); assert!(b <= a); } #[test] fn execution_context() { let now = ConstNow(Instant::now()); let clock = Clock::new_with_now(now); let mut enter = tokio_executor::enter().unwrap(); with_default(&clock, &mut enter, |_| { let a = Instant::now(); let b = clock::now(); assert!(b <= a); }); }