You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Consider a -WhatIf/dry-run mode for Invoke-OverlappingPoolTests.ps1 so developers can see the schedule without spawning six suites. #140
Add a -WhatIf (or equivalent dry-run) switch to .github/scripts/Invoke-OverlappingPoolTests.ps1 that prints the planned run schedule — the sequence of overlapping runs, their start offsets, and the suites each run would spawn — without actually launching any pwsh/powershell child processes.
Why
The script currently spawns six overlapping test suites whenever it is invoked, which makes it expensive and disruptive to run locally just to inspect or sanity-check the schedule. A dry-run mode lets developers (and reviewers) verify the timing/overlap logic and the run plan cheaply, without the side effects of spawning real processes. This was raised as a non-blocking follow-up during the AI review of PR #124.
How
Add a [switch]$WhatIf parameter to Invoke-OverlappingPoolTests.ps1.
When $WhatIf is set, compute the same schedule the script would use (run order, start offsets, deadline) but skip the process-spawning calls (the Start-Process/Register-Spawned path and the per-run suite invocation).
Emit the planned schedule to the host (e.g. one line per run: index, suite, planned start offset, planned end/deadline) so it is readable in CI logs and locally.
Ensure the script exits with a success code in -WhatIf mode and does not attempt overlap detection, timeout handling, or report generation that depends on real process results.
Keep the default (no switch) behavior byte-for-byte identical to today.
Files Affected
.github/scripts/Invoke-OverlappingPoolTests.ps1
Unknown (any test that asserts on Invoke-OverlappingPoolTests.ps1 behavior, if one exists)
Constraints
Must not change default behavior when -WhatIf is not passed.
Must not spawn any child processes, write .pid files, or register tracked processes in dry-run mode.
Must not alter the existing overlap-detection, timeout, or reporting logic for real runs.
Out of scope: changing the schedule itself, adding new suites, or modifying Stop-TrackedProcesses / Register-SlotPidFile / Get-StandInCommand.
LLM tier
Sonnet — moderate design judgment: adding a mode flag to an existing script while preserving current behavior and deciding what the dry-run output should contain.
Success looks like
./.github/scripts/Invoke-OverlappingPoolTests.ps1 -WhatIf prints the planned schedule and exits 0.
No child pwsh/powershell processes are spawned and no .pid files are written during -WhatIf.
Running the script without -WhatIf produces the same behavior as before the change.
The printed schedule matches the runs the script would actually perform.
Failure looks like
-WhatIf still spawns processes or writes .pid files.
Default (no-switch) behavior changes.
The dry-run output diverges from the real schedule (e.g. wrong run count or offsets).
The script errors or exits non-zero in -WhatIf mode.
Activity