# Resource Limit Tests

### NFT-LIM-01: Jetson memory ≤ 8 GB throughout 8 h replay

**Summary**: Validates AC-4.2 — memory < 8 GB shared on Jetson Orin Nano Super for the full duty cycle.
**Traces to**: AC-4.2, RESTRICT-HW-1

**Preconditions**:
- Tier-2 only (Jetson hardware).
- `tile-cache-fixture` mounted.
- 8 h Derkachi replay loop (~60 loops of the 490 s fixture, OR a wrapped 8 h synthetic load that holds the same operating mix per AC-NEW-3 8 h synthetic-load definition).

**Monitoring**:
- `jetson_stats` (`jtop` API) RAM usage sampled at 1 Hz.
- Per-component memory annotation if SUT exposes it via `NAMED_VALUE_FLOAT` / FDR.
- Swap usage (must remain 0 — Jetson Orin Nano Super has no swap by default).

**Duration**: 8 h.

**Pass criteria**: Peak RSS ≤ 8 GB across the entire 8 h window; swap stays 0.

---

### NFT-LIM-02: FDR ≤ 64 GB / flight (8 h synthetic load)

**Summary**: Validates AC-NEW-3 — per-flight FDR ≤ 64 GB; oldest segment dropped on rollover; no payload class silently dropped without a logged rollover.
**Traces to**: AC-NEW-3

**Preconditions**:
- Tier-1 acceptable (storage budget is policy/rotation driven, not Jetson-specific).
- `fdr-output` Docker volume sized exactly 64 GB.
- 8 h Derkachi replay loop at 3 Hz nav frames (per AC-NEW-3 validation wording).

**Monitoring**:
- Total `fdr-output` volume size at 1-min sample rate.
- Per-payload-class size: per-frame estimates + IMU traces + emitted MAVLink + raw MAVLink (tlog) + system health + mid-flight tiles + ≤0.1 Hz failed-tile-gen thumbnails.
- Rollover-event log entries (count, timestamp, dropped-segment ID).

**Duration**: 8 h synthetic.

**Pass criteria**:
- Volume never exceeds 64 GB.
- Every drop event has a corresponding rollover log entry (no silent drops).
- All payload classes enumerated in AC-NEW-3 are present (no class missing entirely).

---

### NFT-LIM-03: Tile cache ≤ 10 GB across operational area

**Summary**: Validates RESTRICT-SAT-2 — cache budget 10 GB persistent across the ~400 km² operational area, including manifests, overviews, and any precomputed indices.
**Traces to**: RESTRICT-SAT-2, AC-8.3

**Preconditions**:
- `tile-cache-fixture` covers the full operational-area footprint (still-image + Derkachi route bbox, target ~400 km² for parity).

**Monitoring**:
- Total tile-cache size on disk.
- Per-component breakdown: tile filesystem, tile manifest DB (PostgreSQL btree per `solution.md`), FAISS HNSW index, descriptor cache.

**Duration**: one-shot measurement after fixture build + after a 5 min replay (to catch any descriptor-on-demand growth).

**Pass criteria**: Total cache size ≤ 10 GB at both measurement points.

---

### NFT-LIM-04: No thermal throttling at 25 W TDP — workstation thermal-day baseline

**Summary**: Tier-2 baseline of AC-NEW-5 thermal-throttle behavior at workstation ambient temperature. Full chamber test at +50 °C is deferred to the AC-NEW-5 chamber gate (out-of-scope for data-acquisition per Phase 1 gate).
**Traces to**: AC-NEW-5 (PARTIAL), RESTRICT-HW-1

**Preconditions**:
- Tier-2 (Jetson) at workstation ambient (~25 °C).
- 8 h Derkachi replay loop sustaining 25 W TDP.

**Monitoring**:
- `tegrastats`: GPU/CPU clock, GR3D_FREQ, RAM, temperatures, power-rail draw, throttle events.

**Duration**: 8 h.

**Pass criteria**:
- 0 thermal throttle events at workstation ambient.
- Average power draw ≤ 25 W.
- Hot-soak chamber test at +50 °C is OUT OF SCOPE for data-acquisition; tracked as deferred AC-NEW-5 chamber gate. The test is expected to be exercised on a chamber-attached Jetson runner before any release tag.

---

### NFT-LIM-05: Disk storage budget (cache 10 GB + FDR 64 GB)

**Summary**: Validates the combined storage budget per `restrictions.md` § Onboard Hardware: ≥ tile cache (~10 GB) + per-flight FDR (64 GB) of available storage on the deployed Jetson.
**Traces to**: RESTRICT-HW-1 (storage budget)

**Preconditions**:
- Tier-2 acceptance run on the deployed-image Jetson.

**Monitoring**:
- Available storage on the production storage device after a single fresh install of SUT + fixtures.

**Duration**: one-shot.

**Pass criteria**: Available storage ≥ 74 GB after install, leaving headroom for system + logs.
