# Running All Tests

> Runs every test suite in the paddler workspace on the fastest available device. Use when the user asks to run the tests, run all the tests, run the full test suite, or check that everything still passes.

- Skill: `intentee/running-all-tests` (Agent Skill)
- Install (CLI): `npx skillmds@latest add intentee/running-all-tests`
- Raw SKILL.md: https://api.skillmd.com/api/skills/intentee/running-all-tests/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: intentee (https://skillmd.com/u/intentee)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/intentee/running-all-tests

---


# Running all tests

Run every test suite in the workspace, picking the fastest compiled device backend for the host. 

## Step 1: detect the device

Run this once at the start and echo the chosen device:

```bash
if [[ "$OSTYPE" == "darwin"* ]]; then
  DEVICE=metal
elif command -v nvidia-smi >/dev/null 2>&1 && nvidia-smi >/dev/null 2>&1; then
  DEVICE=cuda
else
  DEVICE=cpu
fi
echo "Device: $DEVICE"
```

`$DEVICE` selects the Rust integration suite variant in Step 2. The other four suites don't take a device feature.

## Step 2: run the suites

Copy this checklist and tick each item as the suite completes:

```
- [ ] JS client
- [ ] Python client
- [ ] Rust unit
- [ ] Rust integration
```

| # | Suite            | Inner command                                                                                                                     | Working dir              |
|---|------------------|-----------------------------------------------------------------------------------------------------------------------------------|--------------------------|
| 1 | JS client        | `make test.client.js`                                                                                                             | repo root                |
| 2 | Python client    | NixOS: `poetry run pytest`, `ruff`, `poetry run mypy"`. Every other OS: `poetry run pytest`, `poetry run ruff`, `poetry run mypy` | `paddler_client_python/` |
| 3 | Rust unit        | `TEST_DEVICE=$DEVICE make test.unit`                                                                                              | repo root                |
| 4 | Rust integration | `TEST_DEVICE=$DEVICE make test.integration`                                                                                       | repo root                |

Run them in this order. Cheap suites (1, 3, 4) surface bugs quickly; the heavy GPU-bound suites (2, 5) come last.

## Step 3: rules during the run

- **Serialize GPU suites.** When `$DEVICE` is `cuda` or `metal`, run test suites sequentially to avoid device contention.
- **Per-test 30 s budget.** Flag any individual test that exceeds 30 s wall-clock. That is a real bug — production or test — not flakiness.

## Step 4: report

After all suites finish, sum up the results in an actionable report.

