Skip to main content
Tell your agent what the firmware should do. It writes the suite, runs it on the virtual board, and returns a pass or fail for each check. The same checks can fail a pull request. Setup is on Test in CI.

When to use it

Use a test when each check needs a result. A firmware that stops printing fails the test. When you want the printed output, use run.

Ask your agent

What you get back

You get a pass or fail for each test. succeeded means the suite ran, not that every test passed. Check result.summary.

What you can test

A suite advances virtual time and watches UART lines.Boot. Expect a ready line within a few seconds.Init order. Expect several lines in order. Each check only sees output printed after it starts.Timing. A one-second tick is checked against chip-accurate interrupt timing. The call resolves to matched or timed_out. It does not report how long the interval actually was.Long-run liveness. The firmware can run for minutes, in chunks of up to 60 seconds, then be checked for a line that shows it is still alive.HardFault. The check passes when the line you expect shows up. If the firmware faults first, that line never arrives and the check fails. The suite does not report a HardFault on its own. A handler that prints the fault address makes the stop visible on the UART the suite already watches.

Not supported yet

A suite observes firmware through UART only. GPIO input and button stimulus, pin-state or register and memory reads, and external sensors or I2C/SPI devices are not supported yet.An LED blink counts when the firmware logs it. The suite cannot read the pin. A fixed temperature works the same way: build it into the firmware, then expect that line. The suite does not feed the value in.
Last modified on October 12, 2026