Skip to content

Commit 938a249

Browse files
hyperpolymathclaude
andcommitted
fix(tests): add gnn_api_url to live_config; wire GPU backends in CI
- live_prover_suite.rs + live_prover_verify.rs: add missing `gnn_api_url: None` to the `live_config` ProverConfig literal (cargo check --features live-provers was failing with E0063) - live_prover_suite.rs: add live_gpuverify_version and live_faial_version tests (T4, auto-skip when binaries absent) - live-provers.yml: add tier4-gpu matrix job (gpuverify + faial) running quarterly with continue-on-error, provisioning notes and version checks Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
1 parent d4054c2 commit 938a249

3 files changed

Lines changed: 62 additions & 0 deletions

File tree

.github/workflows/live-provers.yml

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -376,3 +376,43 @@ jobs:
376376
echo "Tier-4 backends (Mizar, Nuprl, PVS, Minlog, Dedukti, Arend, KeY, Prism, UPPAAL,"
377377
echo "ViPER, NuSMV, Spin, TLC, CBMC, Seahorn, dReal, Boogie, Kissat, Alloy) are"
378378
echo "retained as mock-only unless a maintainer volunteers a Containerfile."
379+
380+
# ============================================================================
381+
# Tier 4 GPU — quarterly, best-effort / allow-fail.
382+
# GPUVerify and Faial require CUDA SDK or OpenCL runtime; provisioning is
383+
# deferred to a developer workstation or GPU-capable CI runner.
384+
# ============================================================================
385+
tier4-gpu:
386+
name: T4 / ${{ matrix.backend }}
387+
if: github.event_name == 'schedule' && github.event.schedule == '0 6 1 */3 *' || (github.event_name == 'workflow_dispatch' && (inputs.tier == '4' || inputs.tier == 'all'))
388+
runs-on: ubuntu-latest
389+
continue-on-error: true
390+
strategy:
391+
fail-fast: false
392+
matrix:
393+
backend:
394+
- gpuverify
395+
- faial
396+
steps:
397+
- name: Checkout
398+
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
399+
- name: Install Rust
400+
uses: dtolnay/rust-toolchain@4be9e76fd7c4901c61fb841f559994984270fce7 # stable
401+
- name: Cache Cargo
402+
uses: Swatinem/rust-cache@779680da715d629ac1d338a641029a2f4372abb5 # v2
403+
- name: Provision ${{ matrix.backend }} (best-effort, CUDA/OpenCL required)
404+
continue-on-error: true
405+
run: |
406+
case "${{ matrix.backend }}" in
407+
gpuverify)
408+
echo "GPUVerify requires CUDA SDK + .NET; deferred to developer workstation."
409+
echo "See: https://github.com/mc-imperial/gpuverify"
410+
;;
411+
faial)
412+
echo "Faial requires CUDA/OpenCL headers; install via: cargo install faial"
413+
echo "See: https://github.com/elliotttate/faial"
414+
;;
415+
esac
416+
- name: Run live version check (SKIP if binary absent)
417+
continue-on-error: true
418+
run: cargo test --test live_prover_suite --features live-provers -- --nocapture live_${{ matrix.backend }}_version

tests/live_prover_suite.rs

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@ fn live_config(executable: &str) -> ProverConfig {
4949
args: vec![],
5050
timeout: 30,
5151
neural_enabled: false,
52+
gnn_api_url: None,
5253
}
5354
}
5455

@@ -350,3 +351,23 @@ async fn live_imandra_version() {
350351
// licence is available. Test SKIPs on public CI.
351352
assert_version_reachable(ProverKind::Imandra, "imandra").await;
352353
}
354+
355+
// ==========================================================================
356+
// Tier 4 — quarterly. GPU verification backends. Require CUDA SDK or
357+
// OpenCL runtime; provisioned via Containerfile or developer workstation.
358+
// Tests SKIP when the binary is absent.
359+
// ==========================================================================
360+
361+
#[tokio::test]
362+
async fn live_gpuverify_version() {
363+
// GPUVerify targets CUDA/OpenCL kernels via Boogie+Z3.
364+
// Install: https://github.com/mc-imperial/gpuverify
365+
assert_version_reachable(ProverKind::GPUVerify, "gpuverify").await;
366+
}
367+
368+
#[tokio::test]
369+
async fn live_faial_version() {
370+
// Faial is a static GPU data-race detector targeting CUDA.
371+
// Install: https://github.com/elliotttate/faial (or `cargo install faial`)
372+
assert_version_reachable(ProverKind::Faial, "faial-drf").await;
373+
}

tests/live_prover_verify.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ fn live_config(executable: &Path) -> ProverConfig {
4141
args: vec![],
4242
timeout: 30,
4343
neural_enabled: false,
44+
gnn_api_url: None,
4445
}
4546
}
4647

0 commit comments

Comments
 (0)