diff --git a/crates/wasmtime/src/store.rs b/crates/wasmtime/src/store.rs index 39220a336d56..72fcf6683fbb 100644 --- a/crates/wasmtime/src/store.rs +++ b/crates/wasmtime/src/store.rs @@ -2349,6 +2349,12 @@ mod tests { assert_eq!(tank.get_fuel(), u64::MAX); assert_eq!(tank.consumed_fuel, -i64::MAX); assert_eq!(tank.reserve_fuel, u64::MAX - (i64::MAX as u64)); + + tank.yield_interval = NonZeroU64::new((i64::MAX as u64) + 1); + tank.set_fuel(u64::MAX); + assert_eq!(tank.get_fuel(), u64::MAX); + assert_eq!(tank.consumed_fuel, -i64::MAX); + assert_eq!(tank.reserve_fuel, 1); } #[test] diff --git a/tests/all/fuel.rs b/tests/all/fuel.rs index ba81a7dff92a..6686daf5cbc0 100644 --- a/tests/all/fuel.rs +++ b/tests/all/fuel.rs @@ -1,5 +1,3 @@ -use std::num::NonZeroU64; - use anyhow::Result; use wasmtime::*; use wast::parser::{self, Parse, ParseBuffer, Parser}; @@ -57,7 +55,7 @@ fn fuel_consumed(wasm: &[u8]) -> u64 { let mut store = Store::new(&engine, ()); store.set_fuel(u64::MAX).unwrap(); drop(Instance::new(&mut store, &module, &[])); - (i64::MAX as u64) - store.get_fuel().unwrap() + u64::MAX - store.get_fuel().unwrap() } #[test] @@ -179,30 +177,6 @@ fn manual_edge_cases() { assert_eq!(store.get_fuel().unwrap(), u64::MAX); } -#[test] -fn manual_async_edge_cases() { - let mut config = Config::new(); - config.consume_fuel(true).async_support(true); - let engine = Engine::new(&config).unwrap(); - let mut store = Store::new(&engine, ()); - - store - .fuel_async_yield_interval(NonZeroU64::new(u64::MAX)) - .unwrap(); - store.set_fuel(u64::MAX).unwrap(); - assert_eq!(store.get_fuel().unwrap(), u64::MAX); - - store.fuel_async_yield_interval(NonZeroU64::new(1)).unwrap(); - store.set_fuel(u64::MAX).unwrap(); - assert_eq!(store.get_fuel().unwrap(), u64::MAX); - - store - .fuel_async_yield_interval(NonZeroU64::new(i64::MAX as u64)) - .unwrap(); - store.set_fuel(u64::MAX).unwrap(); - assert_eq!(store.get_fuel().unwrap(), u64::MAX); -} - #[test] #[cfg_attr(miri, ignore)] fn unconditionally_trapping_memory_accesses_save_fuel_before_trapping() {