Skip to Content
axiomOSmainTesting & VerificationOverview

Testing Overview

Relevant source files

axiomOS testing is layered by what can be trusted at each level. Host tests cover everything extractable into no_std crates; QEMU smoke tests cover boot and in-guest probes; fuzzing and Miri cover adversarial and unsafe surfaces; Lean proofs cover a small slice of the verifier’s abstract domain; and Raspberry Pi 5 behavior is validated manually.

There is no hardware-in-the-loop CI; Pi 5 testing is manual (README, issue 76). docs/operations/release-verification.md says a local pass must not be taken as physical HIL, independent review, a ForgeFPGA bitstream, or robot-level evidence.

Strategy

LayerWhat it checksWhere
Static policyFormatting, clippy, unsafe-code ledger, inventory, boundaries, generated docs, ABI surface, error policycargo xtask check ..., scripts/verify/*.py
Host unit and integration testsKernel subsystems extracted as crates (kernel_bpf, kernel_vfs, kernel_elfloader, and others)cargo test -p ...
Concurrency modelsLoom models for the run queue and BPF epoch snapshotkernel_run_queue, kernel_bpf
MiriUndefined behavior in unsafe codecargo miri test per crate
QEMU smokeBoot reaches QEMU_BOOT_OK, init probes passaudit gate, scripts/test/smoke-bpf.sh
FuzzingVerifier, signed container, ring buffer, ELF loader, syscall arguments, bridge protocolcargo fuzz
Formal proofsTnum operator soundness in Leanformal/
Hardware validationGPIO, e-stop, PWM, timing on real boardsscripts/hil/, manual runbook

The kernel binary cannot run standard Rust unit tests because it uses a custom linker script. CONTRIBUTING.md therefore asks that new functionality be extracted into separate host-testable crates where possible.

Gate flow

Commands

From docs/operations/testing.md:

cargo xtask check inventory cargo xtask check boundary cargo xtask check docs cargo xtask check all --profile quick --no-qemu cargo xtask check all --profile full

Substantial runs retain the command, environment, commit, results, summary and logs under ignored artifacts/runs/ directories.

Pages

PageCovers
TestsHost tests, kernel tests, script tests, smoke, fuzzing
CI and gatesManifests, profiles, xtask checks, GitHub workflows
Formal verificationLean tnum proofs
Hardware-in-the-loopHIL scripts and manual Pi 5 validation
Last updated on