Skip to content

chore(🐙): add test cases#428

Merged
wcandillon merged 3 commits into
mainfrom
repro/surface-lifecycle-holes
Jul 18, 2026
Merged

chore(🐙): add test cases#428
wcandillon merged 3 commits into
mainfrom
repro/surface-lifecycle-holes

Conversation

@wcandillon

Copy link
Copy Markdown
Owner

No description provided.

wcandillon and others added 3 commits July 18, 2026 16:56
Five diagnostic screens that reproduce, on top of main, the surface
lifecycle holes fixed by #426:

- Context Edge Cases: getCurrentTexture() before configure() (null device
  deref), configure() on a 0x0 canvas (null texture createView), and the
  unconfigure() no-op stub.
- viewFormats Use-After-Free: configure() with viewFormats, then resize;
  the stored configuration keeps a pointer into Convertor-owned memory
  that was freed when configure() returned.
- Render After Unmount: the frame loop keeps rendering after the Canvas
  unmounts; native teardown frees the CAMetalLayer / TextureView window
  while the context still holds the wgpu::Surface wrapping it.
- Background Detach: backgrounding on the Android TextureView path removes
  the registry entry, orphaning the context (permanent black screen); the
  SurfaceView path logs a present-without-acquire error on resume.
- Surface Churn: automated remount/transparent-flip stress racing native
  view teardown against the JS frame loop.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Home now has a single "⚠️ Tests" entry opening a list with the eight
diagnostic repros (Async Runner Starvation, Device Lost Hang, Worklet
requestAdapter, and the five surface lifecycle screens). The route is
named Diagnostics because "Tests" is taken by the E2E runner that CI
boots into; the screen header still reads "Tests".

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@wcandillon
wcandillon merged commit e4f7f7a into main Jul 18, 2026
2 checks passed
@github-actions

Copy link
Copy Markdown

🎉 This PR is included in version 0.6.1 🎉

The release is available on:

Your semantic-release bot 📦🚀

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant