# Resource Limit Tests ### NFT-RES-LIM-01: Memory Usage Under 8GB **Summary**: Validate system memory usage stays below 8GB shared memory (CPU + GPU) during sustained operation. **Traces to**: AC-08 (memory < 8GB), RESTRICT-09 (8GB shared LPDDR5) **Preconditions**: - System running on Jetson Orin Nano Super (8GB shared memory) - Full pipeline active: cuVSLAM + satellite matching + ESKF + GPS_INPUT + FastAPI **Monitoring**: - Total system memory (RSS + GPU allocated) via `tegrastats` or `/sys/devices/platform/host1x/*/memory` - Poll every 5s via GET /health (memory_mb field) **Duration**: 30 minutes **Pass criteria**: Peak memory < 8192MB; no memory leak (growth < 50MB over 30 minutes after first 2 minutes warm-up) --- ### NFT-RES-LIM-02: GPU Thermal Envelope **Summary**: Validate SoC junction temperature stays below 80°C under sustained processing load. **Traces to**: AC-08 (thermal), RESTRICT-10 (25W TDP, thermal throttling at 80°C) **Preconditions**: - System running on Jetson Orin Nano Super with active cooling - Full pipeline active **Monitoring**: - SoC junction temperature via `tegrastats` or `/sys/devices/virtual/thermal/thermal_zone*/temp` - Poll every 10s via GET /health (gpu_temp_c field) **Duration**: 30 minutes **Pass criteria**: SoC junction temperature < 80°C throughout; no thermal throttling events --- ### NFT-RES-LIM-03: Satellite Tile Storage **Summary**: Validate pre-loaded satellite tile storage stays within calculated budget for a test mission area. **Traces to**: AC-19 (satellite imagery pre-loaded), RESTRICT-08 (onboard storage limited) **Preconditions**: - Satellite tiles pre-processed for the test flight area (48.249-48.276°N, 37.340-37.386°E) - Zoom 18 primary + zoom 19 for ±500m along flight path **Monitoring**: - Total tile storage size on disk - RAM usage for preloaded tiles (±2km buffer) **Duration**: Static check **Pass criteria**: Total tile storage ≤ 1000MB on disk; RAM usage for preloaded tiles ≤ 200MB --- ### NFT-RES-LIM-04: Long Flight Simulation (3000 Frames) **Summary**: Validate the system handles a maximum-length flight of 3000 frames without resource exhaustion. **Traces to**: RESTRICT-04 (up to 3000 photos per flight) **Preconditions**: - System running on Jetson (or Docker with CPU-mode for functional test) - Camera-replay looping flight-sequence-60 to generate 3000 frames (50 loops) **Monitoring**: - Memory usage every 60s - GPS_INPUT rate every 60s - Position accuracy sampled every 100 frames **Duration**: ~71 minutes (3000 frames at 0.7fps) **Pass criteria**: Memory stays < 8GB; GPS_INPUT rate stays 5-10Hz; no crash or hang over full 3000-frame sequence --- ### NFT-RES-LIM-05: CUDA Stream Isolation **Summary**: Validate that Stream B (satellite matching) does not block Stream A (cuVSLAM) under concurrent load. **Traces to**: AC-07 (< 400ms per frame), solution CUDA stream pipelining **Preconditions**: - System running on Jetson Orin Nano Super - Satellite matching triggered on a keyframe while VO is processing the next frame **Monitoring**: - VO frame-to-frame timing during satellite matching - Satellite matching does not extend VO latency **Duration**: 30s (capture ~5 satellite matching events concurrent with VO) **Pass criteria**: VO per-frame time ≤ 20ms even when satellite matching is running concurrently; no frame drops