mirror of
https://github.com/azaion/gps-denied-onboard.git
synced 2026-06-21 18:31:13 +00:00
cab7b5d020
- Modified the Docker Compose configuration to include an input root for replay tests and added an environment variable for enabling SITL. - Enhanced documentation for various testing processes, including the addition of a Runtime Completeness Decomposition Gate and clarifications on internal module testing requirements. - Updated the implementation completeness report to reflect the current state and added new test cases for performance and resilience scenarios. Co-authored-by: Cursor <cursoragent@cursor.com>
101 lines
3.4 KiB
Markdown
101 lines
3.4 KiB
Markdown
# 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`.
|