Prerequisites
- Python 3.10 or later
- pip
Step 1 — Install
crucihil 0.15.0.
Step 2 — Scaffold the hello_world example
Thescaffold command drops a self-contained, runnable example into your current directory:
The
hello_world example uses only the virtual backend. All CAN messages are simulated in-process — no physical bus is required.Step 3 — Run the suite
Step 4 — View the results
Add--html report.html to get a self-contained HTML report:
report.html in any browser. It includes per-test status, duration, error messages, and signal trace data.
For JUnit XML (CI integration):
Step 5 — Explore the test code
Opentests/hello_world.py. A typical test looks like:
- The test is an
async deffunction that takesrig: Rig. - It uses
rig.can.expect(...)— no CAN interface name, no backend-specific code. - The
Rigobject is injected by the framework; tests never construct it.
suites/hello_world.yaml) declares the setup steps that run before this function:
Next steps
Write your first real test
Full Rig Python API reference — send, expect, fault injection, sim control.
Configure a real rig
Connect to real CAN hardware — SocketCAN, PEAK, or any custom backend.
Analyze a firmware component
Use
crucihil analyze to extract the signal interface of a C/C++ SWC.Connect an AI assistant
Wire Claude or Copilot to your rig and test history via MCP.