use std::fs;
use std::path::Path;
#[test]
fn replay_all_committed_crashes() {
let dir = Path::new(env!("CARGO_MANIFEST_DIR")).join("tests/fuzz_regressions");
let entries = match fs::read_dir(&dir) {
Ok(e) => e,
Err(e) => panic!("read_dir({}): {e}", dir.display()),
};
let mut replayed = 0usize;
for entry in entries {
let entry = entry.expect("dir entry");
let path = entry.path();
if !path.is_file() {
continue;
}
let name = path.file_name().and_then(|s| s.to_str()).unwrap_or("");
if name.starts_with('.') {
continue;
}
let bytes = fs::read(&path).expect("read fuzz regression");
if let Ok(s) = std::str::from_utf8(&bytes) {
let _ = forge_parser::parse_str(s);
}
replayed += 1;
}
eprintln!(
"replayed {replayed} fuzz regression sample(s) from {}",
dir.display()
);
}