7.4 KiB
Resource Limit Tests
All tests measure resources via the
prom(Prometheus) andnvidia-smi-exporterservices defined inenvironment.md. None of these tests touch SUT internals.
NFT-RES-LIM-01: Memory ≤8 GB shared (AC-4.2)
Summary: Peak resident memory + GPU memory remains under the 8 GB shared LPDDR5 cap.
Traces to: AC-4.2, results_report row 35, NF-T2. Tier: T1 (Docker mem accounting) + T4 (tegrastats).
Preconditions: 30-min sustained replay on Orin Nano Super 25 W (T4) or 30-min replay on x86+CUDA emulation (T1 functional only).
Monitoring:
promscrapes the SUT's/metricsendpoint forprocess_resident_memory_bytes.nvidia-smi-exporter(T4) scrapes Jetsontegrastatsfor shared-LPDDR5 usage.
Duration: 30 min replay.
Pass criteria:
- T4 binding: peak shared LPDDR5 usage < 8192 MB throughout; growth ≤ 50 MB over the 30-min window (no leak).
- T1 functional: peak resident memory < 8192 MB; growth ≤ 50 MB.
NFT-RES-LIM-02: Thermal — junction temperature ≤80 °C, no throttle (results_report row 36)
Summary: SoC junction temperature stays below 80 °C; no thermal throttle event. Traces to: results_report row 36, AC-NEW-5 (sub-budget). Tier: T4.
Preconditions: T4 only; +25 °C ambient.
Monitoring: nvidia-smi-exporter reads junction temp every 1 s.
Duration: 30 min replay.
Pass criteria: max(junction_temp_c) ≤ 80 °C; throttle_event_count == 0 (per tegrastats throttle indicator).
NFT-RES-LIM-03: AC-NEW-5 thermal envelope — 8 h @ 25 W @ +50 °C ambient
Summary: Cooling solution sustains 25 W for 8 h at +50 °C ambient without thermal throttling.
Traces to: AC-NEW-5, NF-T3, restriction §Onboard Hardware. Tier: T4 (deferred-hil) — requires hot-soak chamber.
Preconditions: hot-soak chamber, +50 °C ambient stabilized; SUT in 25 W mode running synthetic_8h_load.
Monitoring: junction temp + throttle indicator via tegrastats; ambient temp probe; FDR thermal log (AC-NEW-3 includes thermal traces).
Duration: 8 h.
Pass criteria: throttle_event_count == 0 over 8 h; throttle event automatically emits STATUSTEXT to GCS if it occurs (verify behaviour with a deliberate throttle injection in a separate run).
NFT-RES-LIM-04: AC-NEW-5 cold-soak cold-start
Summary: Cold-start TTFF at −20 °C ambient meets AC-NEW-1 budget.
Traces to: AC-NEW-5 cold corner, AC-NEW-1, NF-T3 cold-soak. Tier: T4 (deferred-hil) — requires cold chamber.
Preconditions: chamber stabilized at −20 °C with SUT powered off; nav-cam + IMU sources cold-replay-ready.
Monitoring: TTFF timer (per FT-P-16 / FT-P-T4 cold).
Duration: 50 cold boots within the cold chamber.
Pass criteria: 95th percentile TTFF ≤ 30 s.
NFT-RES-LIM-05: FDR — 8-h cap + rollover (AC-NEW-3, NF-T5)
Summary: After 8 h replay, FDR is ≤ 64 GB and no payload class silently dropped. Traces to: AC-NEW-3, AC-8.5, NF-T5. Tier: T1 (volume-size accounting) + T4 (real disk).
Preconditions: clean fdr volume at start; synthetic_8h_load replay.
Monitoring: filesystem accounting per directory class; FDR rollover log (must record every dropped segment).
Duration: 8 h.
Pass criteria:
- Total FDR ≤ 64 GB.
- All payload classes present in the latest segment: per-frame positions w/ covariance + source-label, FC IMU full-rate, GPS_INPUT frames, MAVLink raw stream (tlog), system health (CPU / GPU / temp / throttle), mid-flight tiles, ≤0.1 Hz failure-thumbnail log.
- For each rollover, a STATUSTEXT or rollover log entry exists; no silent drop.
- Raw nav-cam / AI-cam frames are NOT present (AC-8.5 cross-check).
NFT-RES-LIM-06: Tile cache ≤ 10 GB persistent (restrictions §UAV)
Summary: Persistent satellite-tile cache for the 400 km² operational area + onboard-generated tiles fits in 10 GB. Traces to: restrictions §UAV ("~10 GB" tile-cache budget). Tier: T1.
Preconditions: simulate 400 km² operational area (satellite tiles + DEM tiles + VPR chunk index) loaded; run a flight that generates onboard tiles; let cache settle.
Monitoring: filesystem size of /probe/tiles/.
Duration: 30 min replay (enough to populate onboard tiles).
Pass criteria: total cache size ≤ 10 GB after the flight; deduplication keeps onboard tiles per sector ≤ 1.
NFT-RES-LIM-07: GPU memory peak
Summary: TensorRT engines (cuVSLAM + matcher + VPR) collectively fit within Orin Nano Super shared LPDDR5 with headroom for the rest of the system. Traces to: AC-4.2, NF-T2 (extended for ROS 2 image growth). Tier: T4.
Preconditions: all TRT engines loaded.
Monitoring: tegrastats GPU memory line.
Duration: steady-state 5 min after warm-up.
Pass criteria: GPU memory ≤ 4 GB (leaves ≥ 4 GB for ROS 2 nodes + working set + OS); engine reservation ≥ 1 GB for matcher + VPR (per NF-T2 extended).
NFT-RES-LIM-08: Per-frame GPU latency budget breakdown
Summary: Sum of (cuVSLAM + matcher + VPR + Component 5 calibrator + Component 1b ortho) ≤ 400 ms p95 per AC-4.1. Traces to: AC-4.1, NFT-PERF-01..04. Tier: T4.
Monitoring: per-stage timers exposed via /metrics.
Duration: 30 min replay.
Pass criteria: Σ p95(per-stage) ≤ 400 ms; each component within its sub-budget (cuVSLAM ≤ 20, matcher inline ≤ 200, ortho ≤ 50, VPR conditional ≤ 200 only on triggers, calibrator ≤ 5).
NFT-RES-LIM-09: ROS 2 + Isaac ROS image footprint
Summary: Deployment image fits the documented ~200 MB growth budget over the DIY-Python baseline. Traces to: M-29 cost / benefit, NF-T2 extended. Tier: T1 (image inspection).
Steps: build the deployment image; compare against a baseline DIY-Python image manifest; assert delta ≤ 200 MB.
Pass criteria: delta ≤ 200 MB; matcher + VPR engine reservation ≥ 1 GB available at runtime.
NFT-RES-LIM-10: CPU usage — DDS overhead bound
Summary: ROS 2 DDS + topic serialisation overhead stays within the documented 2–5 % CPU. Traces to: M-29 (Q6 → A cost / benefit). Tier: T4.
Monitoring: per-process CPU via prom; DDS process / rmw_* thread CPU specifically.
Duration: 30 min replay.
Pass criteria: DDS CPU mean ≤ 5 %; total SUT CPU ≤ 80 % to leave headroom for spikes.
NFT-RES-LIM-11: Operational area ≤ 400 km² and 8-h flight cap
Summary: SUT correctly handles the documented operational ceiling (sector 150 km² + corridor 50 km² ≈ 200 km² typical, up to 400 km² total). Traces to: restrictions §UAV. Tier: T1 (smoke + audit).
Steps: configure SUT with a 400 km² operational area; verify boot-time pre-allocation respects budget; run a synthetic flight at 60 km/h cruise for 30 min (representative of 8 h scaled).
Pass criteria: SUT loads tile descriptors + VPR index without OOM; 30 min replay sustained at expected fps; resource budgets (NFT-RES-LIM-01..10) all green at this scale.
NFT-RES-LIM-12: Disk I/O — FDR write rate sustainable
Summary: FDR write rate sustained over 8 h does not back up the writer or interfere with the inline pipeline. Traces to: AC-NEW-3, AC-4.1 (no interference). Tier: T4.
Monitoring: NVMe write throughput (MB/s) via Prometheus + I/O wait via vmstat.
Duration: 8 h.
Pass criteria: write rate ≤ NVMe sustained throughput minus 30 % headroom; I/O wait does not contribute to AC-4.1 latency violations (NFT-PERF-01 still passes during the 8-h window).