#55784: test: verify shared texture pixels before waiting on release
Description of Change
Follow-up to #55653, which didn't fully resolve #55391. Since that merged, successfully imported and rendered with subtle api has timed out on macOS arm64 shards on main and 46-x-y, and with retries disabled each one turns the job red.
In all three failures the test stalled after the texture was sent to the receiver, while waiting for shared-texture-done. That signal only arrives once the receiver's VideoFrame teardown, the WebGPU external texture destroy, the GPU sync tokens and the IPC have all completed, and that chain can take several seconds on a busy runner. On a green run in the same workflow, the managed test took 8,991ms against its 10s cap. The subtle test runs first in the file, so it also absorbs the WebGPU and offscreen-rendering startup cost.
This change:
- Has the receiver send
shared-texture-renderedonce it has drawn the frame, and verifies pixels at that point. The release handshake is still checked, afterwards. - Gives each wait a labeled 20s deadline, so a stall reports which step hung instead of a bare test timeout.
- Drops the 10s per-test overrides in favor of the suite default (30s).
- Always releases the main-process import, even when a test fails partway.
Failures since #55653:
- main, Nov 10: https://github.com/electron/electron/actions/runs/42852152976/job/129984693135
- 46-x-y, Nov 11: https://github.com/electron/electron/actions/runs/43112052824/job/130842323706
- 46-x-y, Nov 12: https://github.com/electron/electron/actions/runs/43292360722/job/131467011102
Refs #55391
Checklist
- I have filled out the PR description
- I have reviewed and verified the changes
- tests are changed or added
🤖 Generated with Claude Code
Notes: none
Backports
Semver Impact
Semantic Versioning helps users understand the impact of updates:
- Major (X.y.z): Breaking changes that may require code modifications
- Minor (x.Y.z): New features that maintain backward compatibility
- Patch (x.y.Z): Bug fixes that don't change the API
- None: Changes that don't affect using facing parts of Electron