source
covex
1.14.0Ada/SPARK coverage, proof, multi-standard compliance tool
1.14.0
Zero-dependency Ada/SPARK CLI tool for coverage analysis, proof verification, test-result parsing, multi-standard safety-compliance assessment (DO-178C / ISO 26262 / IEC 62304), and interactive dashboards.
- Source scanning: walks .ads files, extracts subprogram declarations, docstring annotations (@param, @return, @field, @formal), and HLR traceability tags
- Proof analysis: parses GNATprove gnatprove.out summaries; assesses SPARK assurance levels (Stone through Platinum)
- Test parsing: reads markdown test results for pass/fail counts (native Ada or AUnit format)
- DAL compliance: assesses DO-178C DAL A-E criteria (HLR coverage, orphan tags, test status, minimum SPARK proof level), re-labelled for ISO 26262 (ASIL A-D/QM) and IEC 62304 (safety classes A-C) via --dal / --asil / --class
- Differential assessment: --compare-base / --coverage-delta snapshot a base revision on git, Mercurial, Subversion, Fossil, or jj without touching the working tree
- Multiple outputs: ANSI terminal report, SVG badges, Markdown reports, HTML dashboard, JSON API via a built-in HTTP/1.1 server, and a proof-aware SBOM (CycloneDX / SPDX / Markdown)
- Result caching: a content-addressed on-disk cache serves unchanged scan, proof, test, and manifest results without re-running the work
- Tooling:
statusreports the toolchain + VCS state,maninstalls a local man page, and theprovesubcommand resolves gnatprove at run time - Scalable: package/subprogram collections use Ada.Containers.Vectors (heap-allocated, no compile-time limits)
- Zero library dependencies: uses only the GNAT runtime library. gnatprove is NOT a declared dependency -- the prove subcommand resolves it at run time (per-project manifest, PATH, cached toolchain, or download), so the covex crate installs and builds with no toolchain beyond the GNAT compiler
- Self-assessment: 100% docstring coverage, Platinum SPARK (408/408 VCs proved), DAL-C / ASIL B / Class A Achieved, 666/666 native tests passing