diff options
Diffstat (limited to 'crates/tor-rtmock')
| -rw-r--r-- | crates/tor-rtmock/Cargo.toml | 1 | ||||
| -rw-r--r-- | crates/tor-rtmock/src/simple_time.rs | 8 | ||||
| -rw-r--r-- | crates/tor-rtmock/src/sleep_runtime.rs | 2 | ||||
| -rw-r--r-- | crates/tor-rtmock/src/time.rs | 13 | ||||
| -rw-r--r-- | crates/tor-rtmock/src/time_core.rs | 2 | ||||
| -rw-r--r-- | crates/tor-rtmock/src/util.rs | 2 | ||||
| -rw-r--r-- | crates/tor-rtmock/tests/rtcompat_timing.rs | 4 |
7 files changed, 17 insertions, 15 deletions
diff --git a/crates/tor-rtmock/Cargo.toml b/crates/tor-rtmock/Cargo.toml index c18abd0bd..58a564f34 100644 --- a/crates/tor-rtmock/Cargo.toml +++ b/crates/tor-rtmock/Cargo.toml @@ -33,6 +33,7 @@ tor-rtcompat = { version = "0.40.0", path = "../tor-rtcompat" } tracing = "0.1.36" tracing-test = "0.2.4" void = "1" +web-time-compat = { version = "0.1.0", path = "../web-time-compat" } [dev-dependencies] futures-await-test = "0.3.0" diff --git a/crates/tor-rtmock/src/simple_time.rs b/crates/tor-rtmock/src/simple_time.rs index 084716581..2e2da094a 100644 --- a/crates/tor-rtmock/src/simple_time.rs +++ b/crates/tor-rtmock/src/simple_time.rs @@ -7,7 +7,7 @@ use std::future::Future; use std::pin::Pin; use std::sync::{Arc, Mutex, MutexGuard}; use std::task::{Context, Poll, Waker}; -use std::time::{Duration, Instant, SystemTime}; +use web_time_compat::{Duration, Instant, InstantExt, SystemTime, SystemTimeExt}; use derive_more::AsMut; use priority_queue::priority_queue::PriorityQueue; @@ -121,7 +121,7 @@ impl Provider { /// Like any [`SimpleMockTimeProvider`], the time is frozen and only changes /// due to calls to `advance`. pub fn from_real() -> Self { - Provider::from_wallclock(SystemTime::now()) + Provider::from_wallclock(SystemTime::get()) } /// Return a new mock time provider starting at a specified wallclock time /// @@ -131,7 +131,7 @@ impl Provider { /// nor can a fixed `Instant` be constructed, /// so this is usually sufficient for a reproducible test.) pub fn from_wallclock(wallclock: SystemTime) -> Self { - Provider::new(Instant::now(), wallclock) + Provider::new(Instant::get(), wallclock) } /// Advance the simulated time by `d` @@ -320,7 +320,7 @@ mod test { FUT: Future<Output = ()>, { let sp = Provider::new( - Instant::now(), // it would have been nice to make this fixed for the test + Instant::get(), // it would have been nice to make this fixed for the test parse_rfc3339("2000-01-01T00:00:00Z").unwrap(), ); let exec = MockExecutor::new(); diff --git a/crates/tor-rtmock/src/sleep_runtime.rs b/crates/tor-rtmock/src/sleep_runtime.rs index a9ba811a7..04a5cb74b 100644 --- a/crates/tor-rtmock/src/sleep_runtime.rs +++ b/crates/tor-rtmock/src/sleep_runtime.rs @@ -33,7 +33,7 @@ impl<R: Runtime> MockSleepRuntime<R> { /// Create a new runtime that wraps `runtime`, but overrides /// its view of time with a [`MockSleepProvider`]. pub fn new(runtime: R) -> Self { - let sleep = MockSleepProvider::new(SystemTime::now()); + let sleep = MockSleepProvider::new(SystemTime::get()); MockSleepRuntime { runtime, sleep } } diff --git a/crates/tor-rtmock/src/time.rs b/crates/tor-rtmock/src/time.rs index 56be8c117..e5608ffaa 100644 --- a/crates/tor-rtmock/src/time.rs +++ b/crates/tor-rtmock/src/time.rs @@ -20,8 +20,8 @@ use std::{ pin::Pin, sync::{Arc, Mutex, Weak}, task::{Context, Poll, Waker}, - time::{Duration, Instant, SystemTime}, }; +use web_time_compat::{Duration, Instant, InstantExt, SystemTime}; use futures::Future; use tracing::trace; @@ -211,7 +211,7 @@ impl Default for MockSleepProvider { impl MockSleepProvider { /// Create a new MockSleepProvider, starting at a given wall-clock time. pub fn new(wallclock: SystemTime) -> Self { - let instant = Instant::now(); + let instant = Instant::get(); let sleepers = BinaryHeap::new(); let core = MockTimeCore::new(instant, wallclock); let state = SleepSchedule { @@ -590,10 +590,11 @@ mod test { //! <!-- @@ end test lint list maintained by maint/add_warning @@ --> use super::*; use tor_rtcompat::test_with_all_runtimes; + use web_time_compat::SystemTimeExt; #[test] fn basics_of_time_travel() { - let w1 = SystemTime::now(); + let w1 = SystemTime::get(); let sp = MockSleepProvider::new(w1); let i1 = sp.now(); assert_eq!(sp.wallclock(), w1); @@ -615,7 +616,7 @@ mod test { use std::sync::atomic::AtomicBool; use std::sync::atomic::Ordering; - let sp = MockSleepProvider::new(SystemTime::now()); + let sp = MockSleepProvider::new(SystemTime::get()); let one_hour = Duration::new(3600, 0); let (s1, r1) = oneshot::channel(); @@ -626,7 +627,7 @@ mod test { let b2 = AtomicBool::new(false); let b3 = AtomicBool::new(false); - let real_start = Instant::now(); + let real_start = Instant::get(); futures::join!( async { @@ -662,7 +663,7 @@ mod test { assert!(b1.load(Ordering::SeqCst)); assert!(b2.load(Ordering::SeqCst)); assert!(b3.load(Ordering::SeqCst)); - let real_end = Instant::now(); + let real_end = Instant::get(); assert!(real_end - real_start < one_hour); } diff --git a/crates/tor-rtmock/src/time_core.rs b/crates/tor-rtmock/src/time_core.rs index 98ac5b9eb..35fdb60ef 100644 --- a/crates/tor-rtmock/src/time_core.rs +++ b/crates/tor-rtmock/src/time_core.rs @@ -1,9 +1,9 @@ //! [`MockTimeCore`] and [`MockCoarseTimeProvider`] use derive_deftly::{Deftly, define_derive_deftly}; -use std::time::{Duration, Instant, SystemTime}; use tor_rtcompat::{CoarseDuration, CoarseInstant}; use tor_rtcompat::{CoarseTimeProvider, RealCoarseTimeProvider}; +use web_time_compat::{Duration, Instant, SystemTime}; define_derive_deftly! { /// Derive getters for struct fields. diff --git a/crates/tor-rtmock/src/util.rs b/crates/tor-rtmock/src/util.rs index 0245cb5ce..6c5b77cd0 100644 --- a/crates/tor-rtmock/src/util.rs +++ b/crates/tor-rtmock/src/util.rs @@ -190,11 +190,11 @@ pub(crate) mod impl_runtime_prelude { pub(crate) use futures::task::{FutureObj, Spawn, SpawnError}; pub(crate) use std::io::Result as IoResult; pub(crate) use std::net::SocketAddr; - pub(crate) use std::time::{Duration, Instant, SystemTime}; pub(crate) use tor_rtcompat::{ Blocking, CoarseInstant, CoarseTimeProvider, NetStreamProvider, Runtime, SleepProvider, TlsProvider, ToplevelBlockOn, UdpProvider, unimpl::FakeListener, unimpl::FakeStream, }; + pub(crate) use web_time_compat::{Duration, Instant, SystemTime, SystemTimeExt}; } /// Wrapper for `futures::channel::mpsc::channel` that embodies the `#[allow]` diff --git a/crates/tor-rtmock/tests/rtcompat_timing.rs b/crates/tor-rtmock/tests/rtcompat_timing.rs index 6d74f3b1c..f88cb65f5 100644 --- a/crates/tor-rtmock/tests/rtcompat_timing.rs +++ b/crates/tor-rtmock/tests/rtcompat_timing.rs @@ -22,7 +22,7 @@ use tor_rtmock::time::MockSleepProvider; use futures::FutureExt; use oneshot_fused_workaround as oneshot; use std::sync::atomic::{AtomicBool, Ordering}; -use std::time::{Duration, SystemTime}; +use web_time_compat::{Duration, SystemTime, SystemTimeExt}; #[test] fn timeouts() { @@ -31,7 +31,7 @@ fn timeouts() { oneshot::Sender<()>, Timeout<oneshot::Receiver<()>, tor_rtmock::time::Sleeping>, ) { - let start = SystemTime::now(); + let start = SystemTime::get(); let (send, recv) = oneshot::channel::<()>(); let mock_sp = MockSleepProvider::new(start); let ten_min = Duration::new(10 * 60, 0); |
