test-all-device · diff
git:20260702.ae1592b to git:20260802.883cfe7
24 added, 5 removed. Audit A to A.
---
name: test-all-device
description: Run the full hardware (onboard) CI pipeline (examples + tests/st) with automatic platform and device detection. Use when the user asks to run all device/hardware tests or the full onboard CI locally.
---
# Run the full hardware CI pipeline with automatic device detection
Detection / isolation procedures referenced below live in
[`../../lib/onboard-detection.md`](../../lib/onboard-detection.md).
1. If `command -v npu-smi` is not found, tell the user to use `/test-all-sim`
instead and stop.
2. **Precheck + detect platform** (§A) — gate on real silicon, then read the
detected arch into `PLATFORM`.
3. **Extract CI timeout** (§D, `st-onboard-<platform>` job):
`--pto-session-timeout`.
4. **Select a device range** (§C, range ≤4) — or, when wrapping in
`task-submit`, let it pick via `--device auto --device-num <range size>`.
- 5. **Run through `task-submit`** (§E). The underlying command:
+ 5. **Read the marker selector out of the same job** you took the timeout from.
+ `st-onboard-a2a3` is two pytest passes, not one: the sweep deselects
+ `-m "not sdma"` and a later step runs `-m sdma`. `st-onboard-a5` has no
+ marker filter. Take the expression from `ci.yml` rather than assuming, so
+ this skill cannot drift from the job it reproduces.
+ 6. **Run through `task-submit`** (§E). The underlying command, on a platform
+ whose job carries the filter:
```bash
- pytest examples tests/st --platform <platform> --device <range-or-$TASK_DEVICE> \
- --pto-session-timeout <timeout> -v
+ pytest examples tests/st -m "not sdma" --platform <platform> \
+ --device <range-or-$TASK_DEVICE> --pto-session-timeout <timeout> -v
```
+ Then the quarantined pass, after it — never at the same time, since the
+ point of the split is that no fault-injection case meets a device that has
+ already provisioned SDMA:
+
+ ```bash
+ pytest examples tests/st -m sdma --platform <platform> \
+ --device <2 devs or $TASK_DEVICE> --pto-session-timeout <timeout> -v
+ ```
+
+ Dropping either pass changes what you tested: a single flat sweep is not
+ what CI runs and reports failures CI never sees
+ ([`../testing/SKILL.md`](../testing/SKILL.md), issue #1425).
+
Parallelism is auto-driven by `--device`: on hardware, one in-flight
subprocess per device (`--max-parallel auto` = `len(--device)`); see
`docs/testing.md` for the full reuse hierarchy.
- 6. Report the results summary (pass/fail counts per task).
- 7. If any tests fail, show the relevant error output and which device failed.
+ 7. Report the results summary (pass/fail counts per task), across both passes.
+ 8. If any tests fail, show the relevant error output and which device failed.