- 1
#![allow(clippy::unwrap_used, clippy::expect_used, clippy::panic)] - 2
- 3
//! The built-in suite must always pass: these are regression gates for the - 4
//! harness itself, not model benchmarks. CI fails if any case regresses. - 5
- 6
#[tokio::test(flavor = "multi_thread", worker_threads = 2)] - 7
async fn builtin_suite_fully_green() { - 8
let mut failures = Vec::new(); - 9
for case in vak_eval::builtin_suite() { - 10
let report = vak_eval::run_case(&case).await; - 11
if !report.passed { - 12
failures.push(format!( - 13
"{}: {:?}", - 14
report.task_id, - 15
report.error.as_deref().unwrap_or("verify failed") - 16
)); - 17
} - 18
} - 19
assert!( - 20
failures.is_empty(), - 21
"eval regressions:\n{}", - 22
failures.join("\n") - 23
); - 24
} - 25
- 26
#[tokio::test(flavor = "multi_thread", worker_threads = 2)] - 27
async fn exhausted_script_is_reported_not_hung() { - 28
let mut case = vak_eval::EvalCase { - 29
id: "exhausted".into(), - 30
description: "script ends before the loop stops requesting".into(), - 31
files: vec![], - 32
prompt: "loop forever".into(), - 33
script: vec![], - 34
outcome: None, - 35
verify: "true".into(), - 36
}; - 37
let _ = &mut case; - 38
let report = vak_eval::run_case(&case).await; - 39
// The scripted provider errors; the loop surfaces Failed; verify still - 40
// passes (`true`), but the error is recorded on the report. - 41
assert!(report.error.is_some(), "exhaustion must be visible"); - 42
} - 43
Indexing the workspace…
Vakyartha documentation is discovering safe artifacts, anchors, and source references.