mod expectations;
mod runner;
mod templates;
mod verification;
pub use runner::AnalysisTestRunner;
#[cfg(test)]
mod tests {
use super::*;
use crate::test::mono::TestCapabilities;
#[test]
fn test_analysis_verification_framework() {
let caps = TestCapabilities::detect();
if !caps.can_test() {
println!("Skipping: no compiler available");
return;
}
let mut runner = match AnalysisTestRunner::new() {
Ok(r) => r,
Err(e) => {
println!("Skipping: failed to create runner: {}", e);
return;
}
};
let results = match runner.run_all_tests() {
Ok(r) => r,
Err(e) => {
panic!("Test execution failed: {}", e);
}
};
let mut passed = 0;
let mut failed = 0;
for result in &results {
if result.passed {
passed += 1;
println!("✓ {}", result.test_name);
} else {
failed += 1;
println!("✗ {}: {}", result.test_name, result.error_message());
}
}
println!("\nResults: {} passed, {} failed", passed, failed);
assert!(
failed == 0,
"{} tests failed out of {}",
failed,
passed + failed
);
}
}