Exit Codes¶
Both binaries return process exit codes via Rust's ExitCode. The values below are exactly what engine-cli/src/main.rs and engine-daemon/src/main.rs return.
| Code | Meaning | Returned by |
|---|---|---|
0 | Success — all tests passed (or nothing needed to run / a non-run mode completed cleanly) | collect; run with no failures; serve/watch/bench clean exit |
1 | Test failure or runtime error — one or more tests failed/errored, or an internal error (collection failure, wellspring launch failure, missing TIDERACE_SHIM, watch/serve I/O error) | both binaries |
64 | Usage error — wrong/missing arguments, unknown command/mode, or serve on a non-Unix platform | both binaries |
Notes:
- Test failure and internal error share code
1. Neither binary distinguishes a failing test from an engine error in the exit code (runreturnsExitCode::FAILUREfor both); the cause is on stderr. Thetiderace runpytest-style code comes fromRunReport::exit_code()(0unless any outcome is a failure). 64is the conventionalEX_USAGEvalue, returned for argument/usage problems (e.g.tideracewith fewer than two args, an unknowntiderace-daemonmode) and fortiderace-daemon serveon a platform without Unix sockets.- A missing
TIDERACE_SHIMis treated as a runtime error and exits1(not64).
CI systems should treat any non-zero code as a failed build; 1 specifically marks failing tests.