use truefix_at::run_report;
use truefix_at::runner::per_scenario_report;
use truefix_at::scenarios::{
resynch_suite, server_suite, timestamps_suite, validate_checksum_suite,
};
#[tokio::test(flavor = "multi_thread", worker_threads = 2)]
async fn server_acceptance_suite_passes() {
let scenarios = server_suite();
assert!(!scenarios.is_empty());
let results = run_report(&scenarios).await;
assert!(!results.is_empty(), "no AT results produced");
let failed = results.iter().filter(|r| r.outcome.is_err()).count();
eprintln!("{}", per_scenario_report(&results));
eprintln!(
"AT report: {}/{} scenario runs passed",
results.len() - failed,
results.len()
);
assert!(failed == 0, "{failed} AT scenario run(s) failed");
}
#[tokio::test(flavor = "multi_thread", worker_threads = 2)]
async fn validate_checksum_suite_passes() {
let scenarios = validate_checksum_suite();
assert!(!scenarios.is_empty());
let results = run_report(&scenarios).await;
let failures: Vec<_> = results.iter().filter(|r| r.outcome.is_err()).collect();
for f in &failures {
eprintln!("AT FAIL {} [{}]: {:?}", f.name, f.version, f.outcome);
}
assert!(
failures.is_empty(),
"{} validateChecksum scenario run(s) failed",
failures.len()
);
}
#[tokio::test(flavor = "multi_thread", worker_threads = 2)]
async fn timestamps_suite_passes() {
let scenarios = timestamps_suite();
assert!(!scenarios.is_empty());
let results = run_report(&scenarios).await;
let failures: Vec<_> = results.iter().filter(|r| r.outcome.is_err()).collect();
for f in &failures {
eprintln!("AT FAIL {} [{}]: {:?}", f.name, f.version, f.outcome);
}
assert!(
failures.is_empty(),
"{} timestamps scenario run(s) failed",
failures.len()
);
}
#[tokio::test(flavor = "multi_thread", worker_threads = 2)]
async fn resynch_suite_passes() {
let scenarios = resynch_suite();
assert!(!scenarios.is_empty());
let results = run_report(&scenarios).await;
let failures: Vec<_> = results.iter().filter(|r| r.outcome.is_err()).collect();
for f in &failures {
eprintln!("AT FAIL {} [{}]: {:?}", f.name, f.version, f.outcome);
}
assert!(
failures.is_empty(),
"{} resynch scenario run(s) failed",
failures.len()
);
}