Skip to content

Optimize PowerShell test runners - #206

Open
gloveboxes wants to merge 1 commit into
mainfrom
optimize-powershell-runners
Open

gloveboxes wants to merge 1 commit into
mainfrom
optimize-powershell-runners

Conversation

@gloveboxes

Copy link
Copy Markdown
Collaborator

Summary

Optimizes the PowerShell runner and its child test suites while retaining test coverage, per-run build isolation, and safe timeout/process-tree cleanup.

  • Reuse helper-function setup in parallel runspaces instead of rebuilding it for every app/mode dispatch.
  • Cache parsed performance baselines for fail-fast checks instead of rereading the CSV for every result.
  • Suppress passing per-test output inside the extended, diagnostics, and dccpeep child runners when the parent is running in failure-only mode.
  • Run the independent dccpeep fixture cases in parallel at the configured throttle limit, retaining both the baseline comparison and idempotence pass.
  • Preserve the extended suite’s existing overlap with diagnostics and dccpeep checks.

Validation

  • PowerShell syntax parsing passed for every changed script.
  • 54 dccpeep fixtures passed at throttle limits 1 and 16.
  • 116 diagnostics passed with failure-only output.
  • Full -Mode full -FailFast -FailuresOnly main suite passed with no performance regressions.
  • Full -Mode full -Extended -FailuresOnly run passed: 483 main apps and extended tests, no performance regressions.

The local full-run measurement was 14.86s after these changes; use repeated alternating benchmarks for performance conclusions because normal host variability is material.

Reduce PowerShell runner overhead while preserving test coverage and isolation.\n\n- reuse parallel worker helper setup\n- cache performance baselines during fail-fast checks\n- suppress PASS output that failure-only parent runs discard\n- parallelize independent dccpeep fixture cases\n- retain extended-suite overlap with later checks and safe child-process cleanup

This branch has not been deployed

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant