Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Validation gates

Use Makefile targets. The Makefile is the contract for this repository: when a chapter says “build”, “test”, “run an example”, or “check a binding”, prefer the target below instead of typing the underlying Cargo, C compiler, or Python commands by hand.

TargetPurpose
make buildBuild the crate.
make testRun default tests.
make verifyFull local validation gate.
make no-std-checkCheck the transitional embedded no_std + alloc surface.
make no-std-target-checkCheck the embedded surface on NO_STD_TARGET (default thumbv7em-none-eabihf).
make no-std-surface-checkCheck embedded public imports and loop shape through a dedicated no-std surface test.
make embedded-examples-checkCompile embedded-shaped examples without requiring host IO.
make bind-c-checkCheck generated C header.
make c-demoBuild/run C demo.
make c-full-demoBuild/run full C demo.
make python-demoBuild/install/run Python smoke.
make trace-replay-demoRun trace replay examples.
make fuzz-smokeRun arbitrary-input decoder smoke tests.
make wirebit-examples-checkCompile SocketCAN examples without requiring live CAN.
make standard-suite-checkRun the standard-derived ISO 11783, AEF TIM, and NMEA 2000 test suite.
make bookBuild this mdBook.
make whitespace-checkRun git diff --check.

If in doubt, run make verify.

Typical development loop

For ordinary source or documentation work:

make build
make test
make book
make whitespace-check

For protocol, binding, or release-sensitive work:

make verify

make verify is intentionally broader than a normal unit-test run. It checks default and all-feature builds, clippy, rustdoc, generated C header drift, C demos, Python smoke/regression behavior, trace replay, fuzz smoke, SocketCAN example compilation, the standard-derived coverage suite, and whitespace.

For embedded/no-std work, also run:

make no-std-check
make no-std-target-check
make no-std-surface-check
make embedded-examples-check

Those targets are separate from make verify while the embedded profile is transitional, so run them explicitly when changing feature gates, protocol core imports, CAN transport boundaries, or embedded examples.

Running examples through the Makefile

The generic example target is:

make run EXAMPLE=session_minimal
make run EXAMPLE=vt_server_demo
make run EXAMPLE=tc_server_demo

The target wraps the repository’s chosen Cargo command. If an example chapter names an example file, use the file stem after EXAMPLE=.

What a green local gate proves

A green make verify proves that the code and documentation passed the repository’s checked evidence. It catches stale generated headers, broken examples, binding drift, trace parser regressions, malformed-payload test failures, and public wording that crosses the stated claim boundary.

It does not prove vendor interoperability, physical CAN timing on your machine, or official product approval. For those, add trace captures and reports through the hardware evidence process described in Hardware evidence.