BenchCI Documentation¶
BenchCI is a hardware validation tool for embedded systems. It lets you define a bench in bench.yaml, describe tests in suite.yaml, and run those tests locally or through a remote BenchCI Agent.
What BenchCI can do¶
BenchCI can:
flash firmware automatically
validate device behavior over UART, Modbus RTU, Modbus TCP, and CAN
control or observe GPIO through
local_gpio,remote_gpio, ormock_gpiorun repeatable real-hardware tests in CI
produce structured artifacts per run
Core model¶
BenchCI is built around:
bench: the full execution environment
nodes: named participants such as
dut,controller, orgatewaytransports: UART, Modbus RTU, Modbus TCP, or CAN
GPIO: logical input/output lines defined per node
suite steps: declarative actions such as
flash,reset,send_uart,expect_uart,gpio_set, andexpect_can
Execution modes¶
BenchCI supports:
local execution on the machine connected to the hardware
remote execution through a BenchCI Agent
uploaded-bench remote runs
registered-bench remote runs using a persistent
bench_idsplit deployments where GPIO is controlled through a remote Linux machine
Typical flow¶
bench.yaml + suite.yaml
↓
benchci run
↓
local runner or Agent
↓
real hardware bench
↓
logs + results.json
Documentation¶
Where to start¶
For first-time setup, read:
installation.mdquickstart.mdcli.md
If you want to run remote hardware infrastructure, continue with:
agent.mdgitlab_ci.md