# Resource Limit Tests ### NFT-RES-LIM-01: Jetson Memory Budget **Summary**: Validate that runtime memory stays below the 8 GB shared LPDDR5 limit. **Traces to**: AC-4.2, Restrictions Onboard Hardware **Preconditions**: - Jetson Orin Nano Super in production power/thermal mode. - BASALT + wrapper, cache index, FAISS CPU index, and FDR enabled. **Monitoring**: - CPU/GPU shared memory, process RSS, CUDA allocations, FAISS index memory. **Duration**: Minimum 60 minutes steady-state replay plus relocalization triggers. **Pass criteria**: Peak memory <8 GB shared; no OOM kill; no silent descriptor/index eviction. --- ### NFT-RES-LIM-02: Thermal And Power Envelope **Summary**: Validate sustained 25 W operation without thermal throttling across the environmental envelope. **Traces to**: AC-NEW-5 **Preconditions**: - Jetson cooling solution installed. - Hot-soak chamber or production thermal test setup at +50 °C. **Monitoring**: - Power mode, temperature sensors, throttle flags, CPU/GPU clocks, per-frame latency. **Duration**: 8 hours at sustained representative workload. **Pass criteria**: No thermal throttle event; p95 latency remains <400 ms; QGC receives thermal warning if any threshold is approached. --- ### NFT-RES-LIM-03: Satellite Cache Storage Budget **Summary**: Validate persistent satellite cache footprint for up to 400 km² operational area. **Traces to**: AC-8.3, Restrictions Satellite Imagery **Monitoring**: - Cache imagery, overviews, manifests, sidecars, FAISS descriptors/indexes. **Duration**: Full cache build/load test. **Pass criteria**: Persistent cache is <=10 GB unless the implementation explicitly defines and gets approval for a separate descriptor/index budget. --- ### NFT-RES-LIM-04: Flight Data Recorder Rollover **Summary**: Validate FDR storage cap and rollover behavior under an 8-hour synthetic mission. **Traces to**: AC-NEW-3, AC-8.5 **Preconditions**: - Synthetic 8-hour load with 3 fps navigation frames, full-rate IMU, emitted `GPS_INPUT`, health telemetry, tile writes, and failure thumbnails. **Monitoring**: - FDR segment sizes, rollover events, retained payload classes. **Duration**: 8 hours. **Pass criteria**: FDR remains <=64 GB per flight; rollover is logged; no raw nav/AI frames are retained; no payload class is silently dropped. --- ### NFT-RES-LIM-05: Cold Start Resource Spike **Summary**: Validate that CUDA/TensorRT/ONNX/FAISS initialization does not violate boot or memory budgets. **Traces to**: AC-NEW-1, AC-4.2 **Monitoring**: - Initialization time, peak memory, engine/index load time. **Duration**: 50 cold-start trials. **Pass criteria**: First valid `GPS_INPUT` <30 s p95; peak memory <8 GB; no first-run engine build occurs at runtime. --- ### NFT-RES-LIM-INFRA: Jetson Hardware Prerequisite Smoke **Summary**: Validate that local replay reports Jetson-only resource gates as blocked unless target hardware is explicitly enabled. **Traces to**: AZ-239 AC-1, AZ-239 AC-2, AZ-239 AC-4, AZ-233 Reliability NFR **Monitoring**: - Replay report status, blocked reason, and run-scoped artifact path. **Duration**: One Docker replay smoke run. **Pass criteria**: On non-Jetson local runners, the scenario reports `blocked` with `Jetson prerequisite blocked: set GPSD_ENABLE_JETSON=1 on target hardware`; on Jetson release-gate runners, it must collect the metrics required by `NFT-RES-LIM-01`, `NFT-RES-LIM-02`, and `NFT-RES-LIM-05`.