Engine Testing
This page summarizes how to build, run, and validate Tandem Engine behavior across unit tests, smoke tests, and security checks.
Quickstart (engine + tauri dev)
Windows (PowerShell) from tandem/:
pnpm installpnpm engine:stop:windowscargo build -p tandem-aiNew-Item -ItemType Directory -Force -Path .\src-tauri\binaries | Out-NullCopy-Item .\target\debug\tandem-engine.exe .\src-tauri\binaries\tandem-engine.exe -Forcepnpm tauri devmacOS/Linux (bash) from tandem/:
pnpm installpkill tandem-engine || truecargo build -p tandem-aimkdir -p src-tauri/binariescp target/debug/tandem-engine src-tauri/binaries/tandem-enginepnpm tauri devQuick commands
cargo build -p tandem-aicargo run -p tandem-ai -- serve --host 127.0.0.1 --port 39731cargo test -p tandem-server -p tandem-core -p tandem-aiAPI token validation
Start a token-gated engine:
cargo run -p tandem-ai -- serve --host 127.0.0.1 --port 39731 --state-dir .tandem --api-token tk_test_tokenThen verify public health + gated routes:
curl -s http://127.0.0.1:39731/global/health | jq .curl -i -s http://127.0.0.1:39731/config/providerscurl -s http://127.0.0.1:39731/config/providers -H "X-Tandem-Token: tk_test_token" | jq .Automated test layers
Rust unit/integration tests:
cargo test -p tandem-server -p tandem-core -p tandem-aiMission/routine focused tests:
cargo test -p tandem-server mission_ -- --nocapturecargo test -p tandem-server routines_ -- --nocapturecargo test -p tandem-server routine_policy_ -- --nocapturecargo test -p tandem-server routines_run_now_ -- --nocaptureJSON-first contract tests:
cargo test -p tandem test_parse_task_list_strict -- --nocapturecargo test -p tandem test_parse_validation_result_strict_rejects_prose -- --nocaptureSidecar runtime contract tests:
cargo test -p tandem sidecar::tests::recover_active_run_attach_stream_uses_get_run_endpoint -- --nocapturecargo test -p tandem sidecar::tests::test_parse_prompt_async_response_409_includes_retry_and_attach -- --nocapturecargo test -p tandem sidecar::tests::cancel_run_by_id_posts_expected_endpoint -- --nocaptureEngine smoke tests
Windows:
./scripts/engine_smoke.ps1macOS/Linux:
bash ./scripts/engine_smoke.shOptional overrides:
HOSTNAME=127.0.0.1 PORT=39731 STATE_DIR=.tandem-smoke OUT_DIR=runtime-proof bash ./scripts/engine_smoke.shShared Engine Mode
Desktop and TUI default to shared engine mode:
- default port
39731 - clients attach to the same engine when available
- set
TANDEM_ENGINE_PORTto override for both desktop and TUI
Disable shared mode (legacy single-client behavior):
$env:TANDEM_SHARED_ENGINE_MODE="0"