Skip to content

(ci): run only platform-specific tests on Windows - #1028

Merged
devsuitup merged 4 commits into
mainfrom
wt/1026
Nov 8, 2026
Merged

devsuitup merged 4 commits into
mainfrom
wt/1026

Conversation

@devsuitup

Copy link
Copy Markdown
Owner

Second slice of #1026. The Windows cell now runs only the tests that exercise Windows-specific behaviour. The generic suite keeps running on ubuntu under Node 20 and 22.

  • scripts/platform-tests.js (rule C) selects a test when it, or any production module it reaches through relative requires, has a platform marker. Markers cover process.platform, Windows paths, ConPTY, links, real processes and filesystem identity. A test can also opt in explicitly with // platform: windows.
  • Tests written for Windows bugs stay selected, and a regression pins them by name: run-to-exit, trigger-continuation-delivery, task-transcript-reader, task-review-regressions, transcript-cwd-trust(-cache), derive-project-path.
  • scripts/run-tests.js --platform-only fails closed:
    • a selection under 150 files fails;
    • a selector read error fails;
    • empty stages spawn nothing;
    • outside platform mode, a missing ISOLATED_FILES entry fails.
  • test.yml:
    • coverage runs on Linux, platform-only on every other OS;
    • a build-workflow test requires every matrix OS to match exactly one test step;
    • the matrix and the required-check names are unchanged.
  • Selection today: 368 of 556 files.

Follow-up, not in this PR: cli-session-state.js pulls in about 43 tests that cannot exercise its platform branch, through bg-worker-liveness.js → procStartMatches. Splitting that pure helper out would cut them.

Windows CI now runs the tests that exercise Windows-specific behaviour, selected by scripts/platform-tests.js; the generic suite runs on ubuntu under Node 20 and 22.
Tests that reach a platform branch through any production require, or that drive real processes and filesystem identity, keep running on Windows; a missing isolated file and a matrix OS matched by no test step now fail.
@devsuitup devsuitup added the no-changelog The PR changes nothing a user sees; the CHANGELOG.md check is waived label Nov 8, 2026
@devsuitup
devsuitup merged commit 4f777a2 into main Nov 8, 2026
17 of 40 checks passed
@devsuitup
devsuitup deleted the wt/1026 branch November 8, 2026 12:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

no-changelog The PR changes nothing a user sees; the CHANGELOG.md check is waived

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant