Calametra runs your real code against a stateful model of the device on a single-threaded virtual clock. Same specification, same scenario, same seed, and the trace hash comes back identical every time. A race stops being a story about a flaky rig and becomes a file you can replay.
A replay matches the recorded hash, or the run is reported as failed.
Matchable at any transition your device model defines.
Delta debugging cuts a failing run down to its shortest form.
Every run is offline, isolated, and repeatable on any machine.
Exploration walks fault sites and seeded schedules until an invariant breaks. Delta debugging then removes every event that is not load bearing, until what remains is short enough to read aloud.
Interfaces, commands, state transitions and a fault schedule, versioned as plain data.
One thread. Simultaneous events are ordered by seed, never by luck.
Memory, configuration, readiness and output state. Transitions, not canned replies.
A framed socket carries every request and reply between the model and the sandbox.
Your driver, firmware or service runs unmodified, and its real output comes back.
$ calametra explore stale-status-unplug-race explore fault sites 24 explore seeded schedules 48 hit seed 0x4F21A9 fail device_state_matches_model stale status accepted after the device went away
$ calametra minimize && calametra replay delta 48 to 12 to 5 to 3 events minimal read status · disconnect · read status replay 36/36 records reproduced hash sha256:9c41…e07 identical
Calametra is device agnostic. A device family is described once as a specification, and the engine, transport, faults, traces and exploration know nothing about any particular product.
| You test | What Calametra models | What you get back |
|---|---|---|
| Device drivers | Enumeration, configuration, command framing, bounded memory writes and output state | replayable trace |
| Embedded firmware | Update and recovery flows, partial writes, aborted transfers and malformed replies | minimised failure |
| Connected hardware fleets | Attach and detach races, stale readings, retries and timeout cascades | failing seed |
| Distributed services | Message ordering, partial delivery, delayed and duplicated responses | semantic diff |
| Protocol implementations | A published class specification used as ground truth, so a mismatch is a real defect | conformance verdict |
| Regression suites | Every past failure kept as a scenario, a seed and an expected trace hash | fails every time |
These limits are how the product actually behaves. We would rather lose a sale than hand you a green result we cannot stand behind.