Windows: fix CI deps (8.6 dev tip → vs17/8.5 series) + test portability#87
Merged
Conversation
… Windows static/016-static-handler-validation: split OS-agnostic argument/setter validation (runs everywhere) from the POSIX-only filesystem-root cases. The "/"-as-root rejection and leading-slash-is-absolute semantics move to a new 016-...-posix companion (SKIPIF non-Windows). The cross-platform test feeds an absolute temp path for the missing-root case and accepts a drive-letter root in the happy path. Product behaviour is already correct on Windows — this only makes the test platform-aware (no %s muting; coverage preserved on both). compression/010,012,030,070: these verify gzip by piping the response through a POSIX gzip/gunzip CLI via proc_open, which pipe-deadlocks against the Git-for-Windows binaries. Skip on Windows with a documented reason. Previously they BORKed because the SKIPIF probed with the bash builtin `command -v`, which isn't a cmd.exe command, so the SKIPIF emitted invalid output. Still run on POSIX CI.
Contributor
CoverageTotal lines: 81.14% → 81.14% (+0.00 pp) No per-file changes. |
WINDOWS_X64_ZTS_RELEASE failed resolving SDK dependencies: SDK\Exception: The passed CRT 'vs17' doesn't match any available for branch '8.6' php.net's deps server now ships the dev tip (branches "8.6" and "master") only for the vs18 / VS 2026 toolchain; the newest series that still carries vs17 deps is 8.5. The windows-2022 runner is vs17, so the 8.6 dev tip must build against the 8.5 vs17 dep series -- the libs (openssl, libxml2, ...) track the toolchain, not the PHP minor, and vs17 builds 8.6 fine locally. find-target-branch.bat previously derived "8.<minor>" from php_version.h and remapped a hardcoded "8.5" -> "master"; that broke when php-src bumped to 8.6 and the dev-tip deps moved to vs18. Pin the series to 8.5 (with a note to bump or move to vs18 later).
f3c7f04 to
46391f7
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Three Windows fixes surfaced while running the server
phptsuite on Windows. The first is a CI-infra fix; the other two are test-only.1. CI: build the 8.6 dev tip against the vs17 / 8.5 deps series
WINDOWS_X64_ZTS_RELEASEstarted failing on every PR with:Root cause (verified against
downloads.php.net/~windows/php-sdk/deps/series/): php.net now publishes the dev tip (branches8.6andmaster) only for the vs18 / VS 2026 toolchain. The newest series that still carries vs17 deps is 8.5. Thewindows-2022runner is vs17, andfind-target-branch.batderived the series as8.<minor>(→8.6) with a stale8.5 → masterremap, so it asked for8.6/masterunder vs17 → no match.Fix: pin the deps series to
8.5. The vs17 libs (openssl, libxml2, …) build the 8.6 tip fine — the series tracks the toolchain, not the PHP minor (vs17 builds 8.6 locally). Documented to bump to8.6once php.net publishespackages-8.6-vs17-*, or to move the runner +PHP_BUILD_CRTto vs18.2.
static/016-static-handler-validation— split by OSValidation is correct on Windows, but the test hard-coded POSIX path semantics in 3 spots. Split: 016 (all OS) keeps OS-agnostic checks (absolute temp path for missing-root, drive-letter-aware happy-path); 016-…-posix (new,
SKIPIFnon-Windows) holds the/-root rejection and leading-slash-is-absolute cases. No%smuting.3.
compression/010, 012, 030, 070— skip on WindowsThey verify gzip via
proc_openof a POSIXgzip/gunzipCLI, which pipe-deadlocks against the Git-for-Windows binaries. Now skip on Windows with a documented reason (were BORK:SKIPIFused the bash builtincommand -v). Still run on POSIX CI.Verification