Files
yvgude--lean-ctx/clients/rust/lean-ctx-client/tests/conformance_live.rs
T
wehub-resource-sync 26382a7ac6
CI / Clippy (push) Failing after 15m13s
CI / Test (ubuntu-latest) (push) Failing after 16m1s
CI / Test (macos-latest) (push) Has been cancelled
CI / Test (windows-latest) (push) Has been cancelled
CI / Build (no embeddings / no ORT) (push) Has been cancelled
CI / Format (push) Has been cancelled
CI / Cookbook (Node) (push) Has been cancelled
CI / Pi Extension (Node) (push) Has been cancelled
CI / Rust SDK (lean-ctx-client) (push) Has been cancelled
CI / Embed SDK (lean-ctx-sdk) (push) Has been cancelled
CI / Python SDK (leanctx) (push) Has been cancelled
CI / Hermes Plugin (Python) (push) Has been cancelled
CI / SDK Conformance Matrix (push) Has been cancelled
CI / Coverage (push) Has been cancelled
CI / cargo-deny (push) Has been cancelled
CI / Adversarial Safety (push) Has been cancelled
CI / Benchmarks (push) Has been cancelled
CI / Output-Quality Gate (eval A/B) (push) Has been cancelled
CI / Documentation (push) Has been cancelled
CI / CI Green (push) Has been cancelled
JetBrains Plugin / Actionlint (push) Has been cancelled
CodeQL / Analyze (actions) (push) Has been cancelled
CodeQL / Analyze (javascript-typescript) (push) Has been cancelled
CodeQL / Analyze (rust) (push) Has been cancelled
JetBrains Plugin / Validation (push) Has been cancelled
JetBrains Plugin / Build (push) Has been cancelled
JetBrains Plugin / Test (push) Has been cancelled
Security Check / Security Scan (push) Has been cancelled
chore: import upstream snapshot with attribution
2026-07-13 12:35:30 +08:00

60 lines
2.1 KiB
Rust

//! Live conformance run against a real lean-ctx server (GL #395).
//!
//! Driven by `scripts/sdk-conformance.sh` (CI job `sdk-conformance`): the
//! script builds the engine, starts `lean-ctx serve` and exports
//! `LEANCTX_CONFORMANCE_URL`. Without that variable the test is a no-op, so
//! plain `cargo test` runs stay hermetic.
use lean_ctx_client::{run_conformance, LeanCtxClient};
#[test]
fn live_conformance_all_checks_pass() {
let Ok(url) = std::env::var("LEANCTX_CONFORMANCE_URL") else {
eprintln!("skipping: LEANCTX_CONFORMANCE_URL not set");
return;
};
let mut builder = LeanCtxClient::builder(url.trim());
if let Ok(token) = std::env::var("LEANCTX_CONFORMANCE_TOKEN") {
if !token.trim().is_empty() {
builder = builder.bearer_token(token.trim());
}
}
let client = builder.build().expect("client builds");
let card = run_conformance(&client);
if let Ok(matrix_dir) = std::env::var("LEANCTX_MATRIX_DIR") {
if !matrix_dir.trim().is_empty() {
let checks: Vec<serde_json::Value> = card
.checks
.iter()
.map(|c| {
serde_json::json!({
"name": c.name,
"passed": c.passed,
"detail": c.detail,
})
})
.collect();
let doc = serde_json::json!({
"sdk": "rust",
"passed": card.passed(),
"total": card.total(),
"all_passed": card.all_passed(),
"checks": checks,
});
let out = std::path::Path::new(matrix_dir.trim()).join("conformance-rust.json");
std::fs::write(out, serde_json::to_string_pretty(&doc).expect("serialize"))
.expect("write matrix artifact");
}
}
let failed: Vec<String> = card
.checks
.iter()
.filter(|c| !c.passed)
.map(|c| format!("{}: {}", c.name, c.detail))
.collect();
assert!(card.all_passed(), "failed checks: {failed:?}");
}