use std::fs;
use std::path::Path;
const RELEASE_EVIDENCE: &[&str] = &[
"release/evidence/weir/weir-analysis-api-matrix.json",
"release/evidence/weir/weir-vyre-integration-tests.json",
"release/evidence/benchmarks/weir-dataflow-release.json",
"release/evidence/docs/weir-integration.md",
];
#[test]
fn readme_release_evidence_paths_exist() {
let root = Path::new(env!("CARGO_MANIFEST_DIR"));
let readme = fs::read_to_string(root.join("README.md")).expect("README.md must be readable");
for relative in RELEASE_EVIDENCE {
assert!(
readme.contains(relative),
"README release evidence section must mention {relative}"
);
assert!(
root.join(relative).is_file(),
"README release evidence path must exist: {relative}"
);
}
}
#[test]
fn json_evidence_files_pin_crate_version_and_release_train() {
let root = Path::new(env!("CARGO_MANIFEST_DIR"));
for relative in &RELEASE_EVIDENCE[..3] {
let text = fs::read_to_string(root.join(relative))
.unwrap_or_else(|err| panic!("{relative} must be readable: {err}"));
for required in [
"\"crate\": \"weir\"",
"\"version\": \"0.1.0\"",
"\"release_train\": \"vyre-0.4.2\"",
"\"status\":",
] {
assert!(
text.contains(required),
"{relative} must contain {required}"
);
}
}
}
#[test]
fn integration_evidence_requires_loud_gpu_parity() {
let root = Path::new(env!("CARGO_MANIFEST_DIR"));
let text =
fs::read_to_string(root.join("release/evidence/weir/weir-vyre-integration-tests.json"))
.expect("integration evidence must be readable");
for required in [
"\"gpu_required\": true",
"df_parity_inventory_sweep.rs",
"ifds_gpu_solve_gpu_parity.rs",
"fail loudly rather than skip parity",
] {
assert!(
text.contains(required),
"integration evidence must contain {required}"
);
}
}
#[test]
fn integration_evidence_requires_exact_dispatch_decode_abi_contracts() {
let root = Path::new(env!("CARGO_MANIFEST_DIR"));
let text =
fs::read_to_string(root.join("release/evidence/weir/weir-vyre-integration-tests.json"))
.expect("integration evidence must be readable");
for required in [
"\"unit_test_filters\"",
"\"dispatch_decode\"",
"tests/dispatch_decode_modularity.rs",
"tests/source_boundary.rs",
"reject missing outputs",
"extra outputs",
"short buffers",
"trailing bytes",
"wrong multi-output counts",
] {
assert!(
text.contains(required),
"integration evidence must include exact dispatch decode ABI contract marker {required}"
);
}
}
#[test]
fn documentation_evidence_declares_cpu_oracle_boundary() {
let root = Path::new(env!("CARGO_MANIFEST_DIR"));
let text = fs::read_to_string(root.join("release/evidence/docs/weir-integration.md"))
.expect("documentation evidence must be readable");
for required in [
"backend-neutral",
"CPU routines are release oracles only",
"Production modules must not call them directly",
"cargo test -q --features cpu-parity dispatch_decode",
] {
assert!(
text.contains(required),
"docs evidence must contain {required}"
);
}
}