Synopsis
Description
crucihil run loads a YAML suite manifest and a rig TOML, connects all configured backends, and executes the test functions. Results are printed to stdout. Optionally writes JUnit XML or an HTML report.
The rig TOML determines which backends are used — switching from virtual to real hardware is a one-line change in the TOML. The test code and suite YAML are identical in both cases.
Options
Path to the YAML suite manifest (
.yaml). The suite file must exist. Short form: -s.Path to the rig TOML config (
.toml). The file must exist. Short form: -r.Write JUnit XML results to this path. Creates or overwrites the file. Short form:
-o.Write a self-contained HTML test report to this path. The HTML file has no external dependencies and can be opened in any browser.
Comma-separated list of tags. Only tests that match at least one tag are executed. Example:
--tags smoke,engine.Comma-separated suite types. Only tests that match at least one type are executed. Common values:
smoke, regression. Example: --suite-type smoke.Show per-test status lines during the run. Also enables debug logging from backends. Short form:
-v.Exit codes
| Code | Meaning |
|---|---|
0 | All executed tests passed |
1 | One or more tests failed or errored |
2 | Framework error (bad config, missing files, backend setup failure) |
blocked tests (where a rig precondition was not met) do not count as failures and do not affect the exit code. Only fail and error statuses trigger exit code 1.Output format
Status icons
| Icon | Status | Meaning |
|---|---|---|
✓ | PASS | Test assertion passed |
✗ | FAIL | Test assertion failed — firmware is not behaving as expected |
⊘ | BLOCKED | Rig precondition not met — does not count against pass rate |
! | ERROR | Unexpected exception in test code |
– | SKIP | Test was disabled (enabled: false in YAML) |
JUnit XML output
When--output is provided, CruciHiL writes a JUnit-compatible XML file. This integrates with:
- GitHub Actions (
actions/upload-artifact+ test summary) - GitLab CI (
junitartifact report type) - Jenkins (JUnit Plugin)
- Any CI system that understands JUnit XML
HTML report
The HTML report is a single self-contained file. It includes:- Pass/fail summary with counts and duration
- Per-test expandable rows with error messages
- Signal trace data (if recorded)
- Rig config metadata
Filtering tests
Run only smoke tests:engine:
Examples
Run against virtual backend (no hardware)
Run with HTML and JUnit output
Verbose mode (see per-backend debug logs)
See also
- YAML Manifest Reference — suite and test schema
- Python API Reference — rig.can, rig.sim, rig.fault
- Rig Configuration — backends and TOML structure