Auto merge of #1336 - RalfJung:instance-sanity, r=RalfJung
tighten Instance sanity check Let's see if we can get away with this...
This commit is contained in:
commit
e4eceba7d3
1 changed files with 18 additions and 12 deletions
|
|
@ -1,22 +1,29 @@
|
|||
// compile-flags: -Zmiri-disable-isolation
|
||||
|
||||
use std::time::{SystemTime, Instant};
|
||||
use std::time::{SystemTime, Instant, Duration};
|
||||
|
||||
fn duration_sanity(diff: Duration) {
|
||||
// On my laptop, I observed times around 15-40ms. Add 10x lee-way both ways.
|
||||
assert!(diff.as_millis() > 1);
|
||||
assert!(diff.as_millis() < 500);
|
||||
}
|
||||
|
||||
fn main() {
|
||||
// Check `SystemTime`.
|
||||
let now1 = SystemTime::now();
|
||||
// Do some work to make time pass.
|
||||
for _ in 0..10 { drop(vec![42]); }
|
||||
let now2 = SystemTime::now();
|
||||
assert!(now2 > now1);
|
||||
let diff = now2.duration_since(now1).unwrap();
|
||||
assert_eq!(now1 + diff, now2);
|
||||
assert_eq!(now2 - diff, now1);
|
||||
// Sanity-check the time we got.
|
||||
let seconds_since_epoch = now1.duration_since(SystemTime::UNIX_EPOCH).unwrap().as_secs();
|
||||
let years_since_epoch = seconds_since_epoch / 3600 / 24 / 365;
|
||||
let year = 1970 + years_since_epoch;
|
||||
assert!(2020 <= year && year < 2100);
|
||||
// Do some work to make time pass.
|
||||
for _ in 0..10 { drop(vec![42]); }
|
||||
let now2 = SystemTime::now();
|
||||
assert!(now2 > now1);
|
||||
// Sanity-check the difference we got.
|
||||
let diff = now2.duration_since(now1).unwrap();
|
||||
assert_eq!(now1 + diff, now2);
|
||||
assert_eq!(now2 - diff, now1);
|
||||
duration_sanity(diff);
|
||||
|
||||
// Check `Instant`.
|
||||
let now1 = Instant::now();
|
||||
|
|
@ -24,10 +31,9 @@ fn main() {
|
|||
for _ in 0..10 { drop(vec![42]); }
|
||||
let now2 = Instant::now();
|
||||
assert!(now2 > now1);
|
||||
// Sanity-check the difference we got.
|
||||
let diff = now2.duration_since(now1);
|
||||
assert_eq!(now1 + diff, now2);
|
||||
assert_eq!(now2 - diff, now1);
|
||||
// Sanity-check the difference we got.
|
||||
assert!(diff.as_micros() > 1);
|
||||
assert!(diff.as_micros() < 1_000_000);
|
||||
duration_sanity(diff);
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue