Repository navigation
test(cloudxr): real-browser OOB integration tests with fake adb and MockCloudXR - #1148
Open
gareth-morgan-nv wants to merge 6 commits into
Open
gareth-morgan-nv wants to merge 6 commits into
gareth-morgan-nv wants to merge 6 commits into
Conversation
Contributor
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the
|
gareth-morgan-nv
marked this pull request as draft
September 29, 2026 14:43
gareth-morgan-nv
force-pushed
the
gmorgan/MockADB
branch
from
September 30, 2026 15:16
48d0b30 to
5954078
Compare
gareth-morgan-nv
force-pushed
the
gmorgan/oob-connect-tests
branch
2 times, most recently
from
September 30, 2026 16:18
55922d6 to
3e68d67
Compare
gareth-morgan-nv
force-pushed
the
gmorgan/MockADB
branch
from
October 5, 2026 17:08
41884d8 to
1ea36c4
Compare
gareth-morgan-nv
force-pushed
the
gmorgan/oob-connect-tests
branch
from
October 5, 2026 17:29
3e68d67 to
59575f2
Compare
gareth-morgan-nv
force-pushed
the
gmorgan/MockADB
branch
2 times, most recently
from
October 8, 2026 23:28
53cb15d to
068d47f
Compare
gareth-morgan-nv
force-pushed
the
gmorgan/oob-connect-tests
branch
from
October 8, 2026 23:32
5f9c5b9 to
b418850
Compare
gareth-morgan-nv
force-pushed
the
gmorgan/MockADB
branch
from
October 9, 2026 01:11
068d47f to
072d162
Compare
gareth-morgan-nv
force-pushed
the
gmorgan/oob-connect-tests
branch
from
October 9, 2026 01:12
b418850 to
2e6a8aa
Compare
gareth-morgan-nv
force-pushed
the
gmorgan/MockADB
branch
from
October 9, 2026 02:10
072d162 to
0ca1ace
Compare
gareth-morgan-nv
force-pushed
the
gmorgan/oob-connect-tests
branch
from
October 9, 2026 02:13
2e6a8aa to
bef59c6
Compare
gareth-morgan-nv
force-pushed
the
gmorgan/MockADB
branch
from
October 13, 2026 21:09
0ca1ace to
3f3a960
Compare
gareth-morgan-nv
force-pushed
the
gmorgan/oob-connect-tests
branch
2 times, most recently
from
October 13, 2026 22:17
901cb05 to
3b11486
Compare
4 tasks done
gareth-morgan-nv
force-pushed
the
gmorgan/oob-connect-tests
branch
from
October 14, 2026 16:11
3b11486 to
97f1cbf
Compare
This was referenced Oct 15, 2026
gareth-morgan-nv
force-pushed
the
gmorgan/MockADB
branch
from
October 22, 2026 17:54
446e046 to
263a128
Compare
gareth-morgan-nv
force-pushed
the
gmorgan/oob-connect-tests
branch
from
October 23, 2026 23:40
97f1cbf to
5d15918
Compare
Contributor
|
✅ Preview deployed: https://NVIDIA.github.io/IsaacCapture/preview/pr-1148/client/ Built from commit 319f41e. It may take a minute for the updated preview to appear. |
…XR, with anticipatory reliability-branch coverage Real-browser integration tests for run_oob_connect(), standardized on MockCloudXR (npm run build:app-mock) rather than the real @nvidia/cloudxr SDK, always against a static production build (never a dev-server, to avoid webpack HMR module-duplication and React.StrictMode double-session bugs found during development). Includes anticipatory tests written against #1145/#1146 before they merged, so they fail cleanly until those branches land. Design/decisions are in oob-real-browser-integration-test-plan.md. Rebased onto #1147's current tip (gmorgan/MockADB) after #1147's own history was rewritten by its rebase onto main; squashed from the original 7-commit history to avoid replaying commits whose content already landed on #1147 under different SHAs. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Signed-off-by: Gareth Morgan <gmorgan@nvidia.com>
…ndings - RealBrowserAdb's am start/forward branches built CompletedProcess directly, bypassing the check=True handling #1147 just added to FakeAdb - a caller passing check=True (as _adb_forward_cdp() does) got no CalledProcessError on a simulated forward/am-start failure. Route both branches through the same check-honoring result() helper FakeAdb uses. - real_wss_proxy() restored TELEOP_OOB_HUB_ONLY on exit but not CXR_INSTALL_DIR, leaking it into later tests in the same process. - Removed a duplicated comment line and two stale docstrings/messages that described #1146 as not yet merged (it has, onto this branch). - Dropped static_webxr_build()'s npm_build_script/build_dir_name parameters: every call site always passed the same pair, and the other pair was explicitly "not for tests." - Extracted the three tests' identical 8-line port/dir/env setup into a shared real_browser_env() helper in conftest.py. - Trimmed oob-real-browser-integration-test-plan.md from a 404-line exploration journal (superseded sections kept alongside the final state) down to the parts that are still useful as reference: what's real vs faked, the two build bugs found, the command inventory, and the test list. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Signed-off-by: Gareth Morgan <gmorgan@nvidia.com>
…d a real browser Real build_teleop_url -> run_oob_connect -> FakeAdb am start -> Chrome opens the exact recorded URL -> the real web client (MockCloudXR build) registers with the real wss.run + OOBControlHub. Covers a generated and an awkward configured token, URL cleanup, no token in request targets or Referer, reload with a new registration and no second am start, and rejection of a wrong fragment token. Browser cases are opt-in (RUN_OOB_BROWSER_TESTS=1, -m oob_browser); a fast /bin/sh test checks the -d argument survives shell quoting. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> Signed-off-by: Gareth Morgan <gmorgan@nvidia.com>
… and attach-timeout cases Fold the fake-adb + MockCloudXR token launch test into the real-browser run_oob_connect() tests, and add a case where a stream-attach timeout set in the environment reaches the page through the bookmark. Drop the relaunch test written against reliability branches that have not landed, and the plan document describing it. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> Signed-off-by: Gareth Morgan <gmorgan@nvidia.com>
gareth-morgan-nv
force-pushed
the
gmorgan/oob-connect-tests
branch
from
October 24, 2026 01:22
5d15918 to
c4acaa6
Compare
gareth-morgan-nv
changed the base branch from
main
to
gmorgan/oob-hub-token-fragment
October 24, 2026 01:22
gareth-morgan-nv
marked this pull request as ready for review
October 24, 2026 01:22
3 of 5 tasks
…op the old harness Every real-browser case now shares one build, browser, hub and adb cleanup and the same RUN_OOB_BROWSER_TESTS opt-in. The older conftest harness (which opened launch URLs without their fragment) and its two tests are removed; the mock-failure banner case moves to the new suite and waits for the session to stream first. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> Signed-off-by: Gareth Morgan <gmorgan@nvidia.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> Signed-off-by: Gareth Morgan <gmorgan@nvidia.com>
gareth-morgan-nv
force-pushed
the
gmorgan/oob-connect-tests
branch
from
October 24, 2026 02:11
840853b to
319f41e
Compare
This branch was successfully deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Real-browser integration tests for the OOB teleop path. The merged fake-adb test double plays the headset's
adb, real Chrome opens the exact URL thatam startreceives, the real web client (MockCloudXR build) runs in it, and the realwss.run+OOBControlHubserve it. Based on the fragment-token PR (#1318); retarget tomainonce that merges.What changed
One real-browser suite,
tests/python/core/cloudxr/test_oob_browser_integration.py, sharing one build, browser, hub and adb cleanup:/bin/shtest (always runs) that the-dURL survives shell quoting with a token containing&,?,#,+, a space and quotes.Refererseen by the static server contains the token.The browser cases need Chrome and an npm build, so they run only with
RUN_OOB_BROWSER_TESTS=1(-m oob_browser); a default run skips them. Chrome there ignores TLS errors, so certificate trust is bypassed, not covered. The older real-browser helpers inconftest.pyand their two tests are removed;conftest.pykeeps the shared fake-adb and service mocks. Adds thecryptographytest dependency and theoob_browsermarker in the leafpyproject.toml.Validation
RUN_OOB_BROWSER_TESTS=1 uv run --extra dev pytest test_oob_browser_integration.pyintests/python/core/cloudxr: 6 passed. The default run of that directory's adb tests (browser cases skipped): 124 passed, 5 skipped.sessionStoragepersistence, token also in the URL query, hub accepting any token, URL not shell-quoted.SKIP=check-copyright-year pre-commit run --all-filesclean.Known limitations / follow-ups
Test plan
PR description drafted with Claude Code (Claude Sonnet 5.5).