test: make the stale-userdata regression test headless-safe - #264
Merged
Conversation
The registry regression test from #262/#263 needed a real ghostty surface, which the CI runner has no window server for: it failed at setup there in 0.000s while passing locally. The crash it pins lives entirely in the Swift registry/resolve path, so it now drives the registry directly (construct a context, register, resolve, release, assert the stale pointer resolves to nil) with no ghostty dependency - strictly better coverage of the code that actually crashed. The sibling tabId-propagation test genuinely needs a live surface, so it skips instead of failing when one is unavailable.
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.
The registry regression test added alongside the userdata fix needed a real ghostty surface, which CI has no window server for. It failed at setup in 0.000s on CI while passing locally, which is what blocked the last re-land gate run (crashes were already at zero by then).
It now exercises the registry directly: construct a context, register it, resolve it, release it, assert the stale pointer resolves to nil and carries no snapshot. That is a closer test of the code that actually crashed than going through a surface was, and it runs anywhere. The sibling test that genuinely needs a live surface now skips rather than fails when one is not available.
Test plan