diff options
author | Valentin Popov <valentin@popov.link> | 2024-01-08 00:21:28 +0300 |
---|---|---|
committer | Valentin Popov <valentin@popov.link> | 2024-01-08 00:21:28 +0300 |
commit | 1b6a04ca5504955c571d1c97504fb45ea0befee4 (patch) | |
tree | 7579f518b23313e8a9748a88ab6173d5e030b227 /vendor/instant/tests/wasm.rs | |
parent | 5ecd8cf2cba827454317368b68571df0d13d7842 (diff) | |
download | fparkan-1b6a04ca5504955c571d1c97504fb45ea0befee4.tar.xz fparkan-1b6a04ca5504955c571d1c97504fb45ea0befee4.zip |
Initial vendor packages
Signed-off-by: Valentin Popov <valentin@popov.link>
Diffstat (limited to 'vendor/instant/tests/wasm.rs')
-rw-r--r-- | vendor/instant/tests/wasm.rs | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/vendor/instant/tests/wasm.rs b/vendor/instant/tests/wasm.rs new file mode 100644 index 0000000..e858faa --- /dev/null +++ b/vendor/instant/tests/wasm.rs @@ -0,0 +1,57 @@ +extern crate wasm_bindgen_test; + +use instant::{Instant, SystemTime}; +use std::time::Duration; +use wasm_bindgen_test::*; + +wasm_bindgen_test_configure!(run_in_browser); +// run these tests using: wasm-pack test --chrome --headless -- --features wasm-bindgen + +#[wasm_bindgen_test] +fn test_instant_now() { + let now = Instant::now(); + #[cfg(feature = "inaccurate")] + while now.elapsed().as_millis() == 0 {} + #[cfg(not(feature = "inaccurate"))] + assert!(now.elapsed().as_nanos() > 0); +} + +#[wasm_bindgen_test] +fn test_duration() { + let now = Instant::now(); + let one_sec = Duration::from_secs(1); + assert!(now.elapsed() < one_sec); +} + +// Duration::new will overflow when you have u64::MAX seconds and one billion nanoseconds. +// <https://doc.rust-lang.org/std/time/struct.Duration.html#method.new> +const ONE_BILLION: u32 = 1_000_000_000; + +#[wasm_bindgen_test] +fn test_checked_add() { + let now = Instant::now(); + + assert!(now.checked_add(Duration::from_millis(1)).is_some()); + assert_eq!( + None, + now.checked_add(Duration::new(u64::MAX, ONE_BILLION - 1)) + ); +} + +#[wasm_bindgen_test] +fn test_checked_sub() { + let now = Instant::now(); + + assert!(now.checked_sub(Duration::from_millis(1)).is_some()); + assert!(now + .checked_sub(Duration::new(u64::MAX, ONE_BILLION - 1)) + .is_none()); +} + +#[wasm_bindgen_test] +fn test_system_time() { + assert!(SystemTime::UNIX_EPOCH + .duration_since(SystemTime::now()) + .is_err()); +} + |