Files
gps-denied-onboard/_docs/02_document/tests/resource-limit-tests.md
T

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 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