use super::*;
#[test]
fn test_limiter_tracks_peak_memory() {
let mut limiter = FunctionStoreLimiter::new(1024 * 1024);
assert!(limiter.memory_growing(0, 512 * 1024, None).is_ok());
assert_eq!(limiter.stats().current_memory, 512 * 1024);
assert_eq!(limiter.stats().peak_memory, 512 * 1024);
assert!(limiter.memory_growing(512 * 1024, 800 * 1024, None).is_ok());
assert_eq!(limiter.stats().current_memory, 800 * 1024);
assert_eq!(limiter.stats().peak_memory, 800 * 1024);
assert!(limiter.memory_growing(800 * 1024, 600 * 1024, None).is_ok());
assert_eq!(limiter.stats().current_memory, 600 * 1024);
assert_eq!(limiter.stats().peak_memory, 800 * 1024);
}
#[test]
fn test_limiter_enforces_memory_limit() {
let mut limiter = FunctionStoreLimiter::new(1024 * 1024);
assert!(limiter.memory_growing(0, 512 * 1024, None).is_ok());
assert!(limiter.memory_growing(512 * 1024, 2 * 1024 * 1024, None).is_err());
assert_eq!(limiter.stats().current_memory, 2 * 1024 * 1024);
}
#[test]
fn test_limiter_allows_table_growth() {
let mut limiter = FunctionStoreLimiter::new(1024 * 1024);
assert!(limiter.table_growing(0, 100, None).is_ok());
assert!(limiter.table_growing(100, 1000, None).is_ok());
}