3.3 KiB
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
tegrastatsor/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
tegrastatsor/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