#54686: test: bound hidden overlay cold-process runs
Description of Change
The hidden titleBarOverlay regression starts six cold Electron processes sequentially. They currently share a 30-second test deadline, even though each fixture allows 10 seconds after app readiness and also needs time for startup and shutdown. On a slow host, a timed-out attempt can leave its child running while the next attempt starts.
Replace the local subprocess helper with the existing spawnAndWait helper. Give each child a 20-second deadline and 5 seconds for graceful termination before escalation, and derive the enclosing test deadline from all six child budgets plus cleanup headroom. Wait for process and pipe closure, and retain stdout/stderr in failure diagnostics.
All six cold launches and their exit-code assertions remain. The fixture still requires ready-to-show within its existing 10-second deadline. This changes only one spec; no production code, shared helpers, or build configuration changes.
Validation
- Local incremental Electron build passed on this branch:
autoninja --offline -C out/Testing electron. - Focused hidden-overlay tests passed against that build on Linux x64/X11: 2 passed, no retries, including the six cold-process launches and the related navigation/rendering regression.
- Targeted JavaScript lint, formatting, and the full spec TypeScript check passed.
The full test suite and Windows/macOS execution remain for CI.
Checklist
- I have built and tested this change
- I have filled out the PR description
- I have reviewed and verified the changes
-
npm testpasses - tests are changed or added
Release Notes
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