summaryrefslogtreecommitdiffstats
path: root/third_party/rust/neqo-common/src/timer.rs
diff options
context:
space:
mode:
Diffstat (limited to 'third_party/rust/neqo-common/src/timer.rs')
-rw-r--r--third_party/rust/neqo-common/src/timer.rs62
1 files changed, 31 insertions, 31 deletions
diff --git a/third_party/rust/neqo-common/src/timer.rs b/third_party/rust/neqo-common/src/timer.rs
index e8532af442..a413252e08 100644
--- a/third_party/rust/neqo-common/src/timer.rs
+++ b/third_party/rust/neqo-common/src/timer.rs
@@ -5,7 +5,6 @@
// except according to those terms.
use std::{
- convert::TryFrom,
mem,
time::{Duration, Instant},
};
@@ -247,49 +246,50 @@ impl<T> Timer<T> {
#[cfg(test)]
mod test {
- use lazy_static::lazy_static;
+ use std::sync::OnceLock;
use super::{Duration, Instant, Timer};
- lazy_static! {
- static ref NOW: Instant = Instant::now();
+ fn now() -> Instant {
+ static NOW: OnceLock<Instant> = OnceLock::new();
+ *NOW.get_or_init(Instant::now)
}
const GRANULARITY: Duration = Duration::from_millis(10);
const CAPACITY: usize = 10;
#[test]
fn create() {
- let t: Timer<()> = Timer::new(*NOW, GRANULARITY, CAPACITY);
+ let t: Timer<()> = Timer::new(now(), GRANULARITY, CAPACITY);
assert_eq!(t.span(), Duration::from_millis(100));
assert_eq!(None, t.next_time());
}
#[test]
fn immediate_entry() {
- let mut t = Timer::new(*NOW, GRANULARITY, CAPACITY);
- t.add(*NOW, 12);
- assert_eq!(*NOW, t.next_time().expect("should have an entry"));
- let values: Vec<_> = t.take_until(*NOW).collect();
+ let mut t = Timer::new(now(), GRANULARITY, CAPACITY);
+ t.add(now(), 12);
+ assert_eq!(now(), t.next_time().expect("should have an entry"));
+ let values: Vec<_> = t.take_until(now()).collect();
assert_eq!(vec![12], values);
}
#[test]
fn same_time() {
- let mut t = Timer::new(*NOW, GRANULARITY, CAPACITY);
+ let mut t = Timer::new(now(), GRANULARITY, CAPACITY);
let v1 = 12;
let v2 = 13;
- t.add(*NOW, v1);
- t.add(*NOW, v2);
- assert_eq!(*NOW, t.next_time().expect("should have an entry"));
- let values: Vec<_> = t.take_until(*NOW).collect();
+ t.add(now(), v1);
+ t.add(now(), v2);
+ assert_eq!(now(), t.next_time().expect("should have an entry"));
+ let values: Vec<_> = t.take_until(now()).collect();
assert!(values.contains(&v1));
assert!(values.contains(&v2));
}
#[test]
fn add() {
- let mut t = Timer::new(*NOW, GRANULARITY, CAPACITY);
- let near_future = *NOW + Duration::from_millis(17);
+ let mut t = Timer::new(now(), GRANULARITY, CAPACITY);
+ let near_future = now() + Duration::from_millis(17);
let v = 9;
t.add(near_future, v);
assert_eq!(near_future, t.next_time().expect("should return a value"));
@@ -305,8 +305,8 @@ mod test {
#[test]
fn add_future() {
- let mut t = Timer::new(*NOW, GRANULARITY, CAPACITY);
- let future = *NOW + Duration::from_millis(117);
+ let mut t = Timer::new(now(), GRANULARITY, CAPACITY);
+ let future = now() + Duration::from_millis(117);
let v = 9;
t.add(future, v);
assert_eq!(future, t.next_time().expect("should return a value"));
@@ -315,8 +315,8 @@ mod test {
#[test]
fn add_far_future() {
- let mut t = Timer::new(*NOW, GRANULARITY, CAPACITY);
- let far_future = *NOW + Duration::from_millis(892);
+ let mut t = Timer::new(now(), GRANULARITY, CAPACITY);
+ let far_future = now() + Duration::from_millis(892);
let v = 9;
t.add(far_future, v);
assert_eq!(far_future, t.next_time().expect("should return a value"));
@@ -333,12 +333,12 @@ mod test {
];
fn with_times() -> Timer<usize> {
- let mut t = Timer::new(*NOW, GRANULARITY, CAPACITY);
+ let mut t = Timer::new(now(), GRANULARITY, CAPACITY);
for (i, time) in TIMES.iter().enumerate() {
- t.add(*NOW + *time, i);
+ t.add(now() + *time, i);
}
assert_eq!(
- *NOW + *TIMES.iter().min().unwrap(),
+ now() + *TIMES.iter().min().unwrap(),
t.next_time().expect("should have a time")
);
t
@@ -348,7 +348,7 @@ mod test {
#[allow(clippy::needless_collect)] // false positive
fn multiple_values() {
let mut t = with_times();
- let values: Vec<_> = t.take_until(*NOW + *TIMES.iter().max().unwrap()).collect();
+ let values: Vec<_> = t.take_until(now() + *TIMES.iter().max().unwrap()).collect();
for i in 0..TIMES.len() {
assert!(values.contains(&i));
}
@@ -358,7 +358,7 @@ mod test {
#[allow(clippy::needless_collect)] // false positive
fn take_far_future() {
let mut t = with_times();
- let values: Vec<_> = t.take_until(*NOW + Duration::from_secs(100)).collect();
+ let values: Vec<_> = t.take_until(now() + Duration::from_secs(100)).collect();
for i in 0..TIMES.len() {
assert!(values.contains(&i));
}
@@ -368,15 +368,15 @@ mod test {
fn remove_each() {
let mut t = with_times();
for (i, time) in TIMES.iter().enumerate() {
- assert_eq!(Some(i), t.remove(*NOW + *time, |&x| x == i));
+ assert_eq!(Some(i), t.remove(now() + *time, |&x| x == i));
}
assert_eq!(None, t.next_time());
}
#[test]
fn remove_future() {
- let mut t = Timer::new(*NOW, GRANULARITY, CAPACITY);
- let future = *NOW + Duration::from_millis(117);
+ let mut t = Timer::new(now(), GRANULARITY, CAPACITY);
+ let future = now() + Duration::from_millis(117);
let v = 9;
t.add(future, v);
@@ -385,9 +385,9 @@ mod test {
#[test]
fn remove_too_far_future() {
- let mut t = Timer::new(*NOW, GRANULARITY, CAPACITY);
- let future = *NOW + Duration::from_millis(117);
- let too_far_future = *NOW + t.span() + Duration::from_millis(117);
+ let mut t = Timer::new(now(), GRANULARITY, CAPACITY);
+ let future = now() + Duration::from_millis(117);
+ let too_far_future = now() + t.span() + Duration::from_millis(117);
let v = 9;
t.add(future, v);