From 084452acab145b676b54d3f6f16d5779c6ce3e0a Mon Sep 17 00:00:00 2001 From: Peter Huene Date: Tue, 22 Feb 2022 07:03:50 -0800 Subject: [PATCH] Fix max memory pages for spectests fuzz target. (#3829) This commit fixes the spectests fuzz target to set a lower bound on the arbitrary pooling allocator configurations of 10 memory pages so that the limit doesn't interfere with what's required in the spec tests. --- crates/fuzzing/src/generators.rs | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/crates/fuzzing/src/generators.rs b/crates/fuzzing/src/generators.rs index 1feab9729e..1a5ca37ffe 100644 --- a/crates/fuzzing/src/generators.rs +++ b/crates/fuzzing/src/generators.rs @@ -405,10 +405,22 @@ impl Config { config.reference_types_enabled = true; config.max_memories = 1; - if let InstanceAllocationStrategy::Pooling { module_limits, .. } = - &mut self.wasmtime.strategy + if let InstanceAllocationStrategy::Pooling { + module_limits: limits, + .. + } = &mut self.wasmtime.strategy { - module_limits.memories = 1; + limits.memories = 1; + // Set a lower bound of 10 pages as the spec tests define memories with at + // least a few pages and some tests do memory grow operations. + limits.memory_pages = std::cmp::max(limits.memory_pages, 10); + + match &mut self.wasmtime.memory_config { + MemoryConfig::Normal(config) => { + config.static_memory_maximum_size = Some(limits.memory_pages * 0x10000); + } + MemoryConfig::CustomUnaligned => unreachable!(), // Arbitrary impl for `Config` should have prevented this + } } }