Avoid repeated plan generation and unused diagnostics in layout fuzzers

This commit is contained in:
iris-ai committed 2026-09-19 13:43:11 -04:00
1 parent add6774980
commit 84dad211f5
2 files changed
+14 -10

No files matched your search

+8 -4
View File
@@ -14,7 +14,7 @@
#[path = "scenario/mod.rs"]
mod scenario;
use iris::random::{Edits, plan};
use iris::random::{Edits, Plan, plan};
use scenario::{ALL, Case, diverges, env, over_seeds};
/// How deep the generator branches. The generator widens two to four ways per
@@ -32,8 +32,11 @@ fn depth() -> usize {
const SEEDS: [u64; 10] = [1, 2, 3, 5, 8, 10, 13, 20, 86, 98];
fn check(seed: u64, depth: usize, case: Case) {
let grown = plan(seed, depth, &Edits::default());
if let Some(how) = diverges(&grown, case, seed) {
check_plan(&plan(seed, depth, &Edits::default()), seed, depth, case);
}
fn check_plan(grown: &Plan, seed: u64, depth: usize, case: Case) {
if let Some(how) = diverges(grown, case, seed) {
panic!(
"seed {seed} at depth {depth} differs after {}: {how}\n\
reduce it with SHRINK_SEED={seed} SHRINK_DEPTH={depth} \
@@ -119,8 +122,9 @@ fn a_long_run_of_seeds_agrees() {
None => (1..=env("IRIS_GENERATED_SEEDS", 100_u64)).collect(),
};
over_seeds(seeds, |seed| {
let grown = plan(seed, depth, &Edits::default());
for case in ALL {
check(seed, depth, case);
check_plan(&grown, seed, depth, case);
}
});
}