use super::support::{FuzzRoadFailure, external, rustc_profile_request, wait_for_exit};
use macroonz_harness::fuzz::{CoverageCorpus, RustcProfileRefusal, observe_rustc_profile};
use std::path::PathBuf;
#[test]
fn an_early_refusal_leaves_no_run_directory() -> Result<(), FuzzRoadFailure> {
let observed: PathBuf = {
let (ready, run) = rustc_profile_request("early-refusal")?;
let case = run.join("cases").join("case-00000000000000000000");
std::fs::create_dir_all(&case).map_err(external)?;
let mut coverage = CoverageCorpus::opening(&ready);
assert!(matches!(
observe_rustc_profile(&ready, &mut coverage, &[0], wait_for_exit),
Err(RustcProfileRefusal::CaseAlreadyExists(_))
));
run.path().to_path_buf()
};
assert!(!observed.exists());
Ok(())
}
#[test]
fn a_checked_removal_reports_a_directory_it_could_not_remove() -> Result<(), FuzzRoadFailure> {
let (_ready, run) = rustc_profile_request("removed-beneath")?;
std::fs::remove_dir_all(run.path()).map_err(external)?;
assert!(matches!(run.removed(), Err(FuzzRoadFailure::External(_))));
Ok(())
}