# bee test scenarios A scenario is a plain JSON file describing an ad-hoc diagnostic run: which commands to execute (sequentially or in parallel) and what to sample in the background while they run — without hardcoding a new test into bee's own code. See `audit/internal/platform/scenario.go` (`ParseScenarioJSON`, `ScenarioSpec`) for the full field reference. ## Running one ``` bee run ``` or, for a bare name (no `/`, no `.json`): ``` bee run ``` which resolves `scenarios/.json` by checking, in order: (1) the scenarios shipped with the image itself — always available, no media needed — then (2) any mounted removable drive (e.g. the same USB stick already plugged in for blackbox), for scenarios authored on another machine and dropped there without a network path onto the host. Same resolution powers the "6. Scenario" page in the web UI. `bee scenario run ` is the same command under a longer name. ## Files checked in here - `nvbandwidth-all-gpu-power-watch.json` — the scenario that reproduced the CG480-S6053 reboot: full `nvbandwidth` across all GPUs at once (the per-GPU-socket passes alone never reproduced it), with `ipmitool sensor` and `nvidia-smi` power/temp sampled every 2s in the background so a crash mid-run still leaves telemetry to check for a power-delivery correlation. **`gpu_indices` is host-specific** — update it to match the GPU indices `nvidia-smi -L` actually reports on the box under test before running. This directory is the source of truth; `iso/builder/build.sh`'s "preparing staged overlay" step rsyncs the whole overlay tree — including a checked-in copy under `iso/overlay/usr/share/bee/scenarios/` — into the built image, so anything meant to ship baked-in needs to exist in **both** places (this repo doesn't auto-copy one into the other). `platform.LocalScenariosDir` (`/usr/share/bee/scenarios` on the built host) is what `bee run `/the web UI actually reads at runtime. ## Adding more Not every scenario needs to ship in the image. For a one-off test on a specific host (especially air-gapped), it's simpler to write the JSON file directly onto the blackbox USB stick under `scenarios/.json` and run `bee run ` — no code change, no rebuild. Check a scenario into `iso/overlay/usr/share/bee/scenarios/` only when it's worth keeping around as a reusable/named test that should be available on every host without a USB stick.