NVIDIA / NVIDIA/IsaacTeleop

CloudXR service tests can only run against a mocked runtime; no GPU path for src/core/cloudxr_tests

Open
#931 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Python
Stars
385
Forks
88
Avg merge
3d 23h
Merged PRs (30d)
82

Description

Problem

src/core/cloudxr_tests and src/core/rig_tests run only under ctest on GitHub-hosted, GPU-less runners, so every test that touches the runtime has to fake one: a hand-bound unix socket for is_runtime_live(), a mocked Popen for the runtime process, and now a patched runtime_version() (it dlopens libcloudxr, which needs libcuda). At that point we are testing the mocks as much as the service. Nothing verifies that service start really detaches, that stop really tears the runtime down, or that status reads a real /proc cmdline.

What already exists

  • GPU runners: [self-hosted, linux, gpu, x64|arm64], used by test-viz-gpu, test-cloudxr, test-teleop-ros2. Gated only on needs: build-ubuntu, so they do run on PRs.
  • ctest never runs on them. It runs only in build-ubuntu, unfiltered.
  • test-viz-gpu is the precedent worth copying: viz python tests carry pytestmark = skipif(not _gpu_available()), skip cleanly on the CPU runner, and the same files are re-run with pytest against the built wheel on the GPU runner.
  • test-cloudxr cannot host these as-is — the runtime is a separate compose service and the run dir is mounted :ro, so no lifecycle test can write to it.

Direction

Add a real-runtime tier to cloudxr_tests that skips when no runtime is available, and run it on the GPU runner the way test-viz-gpu runs the viz suite. Keep mocks only for branches a real runtime cannot produce (wedged service, stale pid).

Related: #880 (hand-registered GPU example tests — same root cause on the examples/ side). Stubs introduced by #927.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with src/core/cloudxr_tests and the test-viz-gpu workflow precedent. Add a real-runtime test tier that skips when no runtime is available and runs on the GPU runner, keeping mocks only for impossible states. Done means lifecycle behavior such as start, stop, and status is tested against the real runtime while CPU ctest remains clean.

Written by the indexing model from the issue text.

Assessment

Tech stack
docker-compose, github-actions, python
Domain
ci-cd, infrastructure, testing
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
56/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.