BenchCI ExamplesΒΆ
This page contains realistic example scenarios showing how to use BenchCI in different setups.
Each example includes:
bench.yamlβ hardware configurationsuite.yamlβ test logic
These are not artificial βall-in-oneβ examples β they reflect real-world use cases.
π¦ Example ScenariosΒΆ
1. Device Boot ValidationΒΆ
Folder: examples/device_boot_validation/
Use CaseΒΆ
Validate that firmware:
boots correctly
prints expected logs
responds to commands over UART
CoversΒΆ
OpenOCD flashing
UART transport
flash,reset,send_uart,expect_uart
When to useΒΆ
firmware smoke tests
CI validation after build
basic bring-up
2. Local GPIO Reset & Ready MonitoringΒΆ
Folder: examples/local_gpio_reset_and_ready/
Use CaseΒΆ
Control reset lines and verify device readiness using Linux GPIO.
CoversΒΆ
local_gpiogpio_set,gpio_expect,gpio_wait_edgemanual reset sequencing
When to useΒΆ
hardware bring-up
boards without reliable debugger reset
interrupt validation
3. Remote GPIO Power CyclingΒΆ
Folder: examples/remote_gpio_power_cycle/
Use CaseΒΆ
Control power and signals from a different machine via Agent.
CoversΒΆ
remote_gpiodistributed setups
power cycling DUT
When to useΒΆ
CI runner β hardware machine
remote labs
shared hardware infrastructure
4. Modbus RTU PLC ValidationΒΆ
Folder: examples/modbus_rtu_plc_validation/
Use CaseΒΆ
Validate a PLC or RS-485 device.
CoversΒΆ
Modbus RTU transport
register + coil operations
When to useΒΆ
industrial devices
embedded fieldbus testing
5. Modbus TCP Gateway ValidationΒΆ
Folder: examples/modbus_tcp_gateway_validation/
Use CaseΒΆ
Test Ethernet-connected industrial devices.
CoversΒΆ
Modbus TCP
network-based communication
When to useΒΆ
gateways
PLC over Ethernet
integration tests
6. CAN ECU HandshakeΒΆ
Folder: examples/can_ecu_handshake/
Use CaseΒΆ
Validate request/response behavior on CAN bus.
CoversΒΆ
CAN transport
send_can,expect_can
When to useΒΆ
automotive ECUs
multi-node embedded systems
7. CubeProgrammer Helper BoardΒΆ
Folder: examples/helper_board_cubeprog/
Use CaseΒΆ
Flash STM32 device using CubeProgrammer.
CoversΒΆ
cubeprogbackendUART validation
When to useΒΆ
STM32 production workflows
environments without OpenOCD
8. J-Link Gateway ProvisioningΒΆ
Folder: examples/gateway_jlink_provisioning/
Use CaseΒΆ
Provision firmware using SEGGER J-Link.
CoversΒΆ
jlinkbackendhigh-speed flashing
When to useΒΆ
production flashing
Segger-based setups
9. ESP32 esptool WorkflowΒΆ
Folder: examples/esp32_esptool_wifi_probe/
Use CaseΒΆ
Flash ESP32 firmware and validate startup.
CoversΒΆ
esptoolbackendUART validation
When to useΒΆ
ESP32 / ESP-IDF projects
IoT devices
10. Mock GPIO SimulationΒΆ
Folder: examples/mock_gpio_simulation/
Use CaseΒΆ
Test logic without real hardware.
CoversΒΆ
mock_gpioGPIO logic testing
When to useΒΆ
development without hardware
CI pipelines without devices
11. Multi-Node System TestΒΆ
Folder: examples/multi_node_system_smoke/
Use CaseΒΆ
Coordinate multiple devices in one test.
CoversΒΆ
multiple nodes
cross-device interaction
When to useΒΆ
system-level testing
DUT + controller setups
π§ How to Use These ExamplesΒΆ
Copy an example folder:
cp -r examples/device_boot_validation my-test cd my-test
Adjust hardware-specific values:
serial ports (e.g.
/dev/ttyUSB0)IP addresses
GPIO lines
probe serials
firmware paths
Run:
benchci run -b bench.yaml -s suite.yaml -a build/fw.elf
β οΈ Important NotesΒΆ
These are templatesΒΆ
You MUST adapt:
ports
addresses
hardware wiring
expected responses
One GPIO backend per nodeΒΆ
Currently:
a node can use only one GPIO backend
Do NOT mix:
local_gpioandremote_gpioin the same node
Use smaller benches in practiceΒΆ
Real setups typically:
use 1β2 nodes
use 1β2 transports
These examples show capability coverage, not minimal setups.
π Recommended Learning PathΒΆ
If youβre new to BenchCI:
Start with:
device_boot_validation
Then try:
local_gpio_reset_and_ready
Then explore:
Modbus or CAN examples
Finally:
multi-node setups
remote GPIO
π― SummaryΒΆ
These examples demonstrate that BenchCI supports:
multiple flashing backends
multiple transport protocols
GPIO automation (local and remote)
multi-node orchestration
CI-friendly execution
BenchCI scales from:
single board debugging
β to
distributed hardware validation systems