fix(ci): force UTF-8 encoding in cross-platform diff normalizer - #284
Merged
Conversation
PR #280's cross-platform-differential run showed a false-positive diff between the Windows rows and the Linux/macOS rows. Root cause: xUnit truncates long parameter values in test names with U+22EF `···` (MIDLINE HORIZONTAL ELLIPSIS). The Python normalizer's stdout defaults to cp1252 on Windows, which can't represent U+22EF and mangles the bytes into U+FFFD replacements. Linux/macOS emit the correct UTF-8 bytes. Same tests pass; different bytes on disk. Setting `PYTHONIOENCODING=utf-8` on the Normalize step forces the same encoding everywhere, so the outcome files are byte-identical across every OS/arch when the tests actually agree. Caught by PR #280's cross-platform-differential run against the 5-row matrix from the previous commit. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This was referenced Jul 28, 2026
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.
Follow-up to PR #283. My UTF-8 fix commit was pushed after #283 merged, so it never landed on vNext — orphaned on the
fix/xplatform-drop-macos-x64branch. PR #280's cross-platform-diff check is still failing on the Windows-vs-Linux byte diff for that reason.The bug
xUnit truncates long parameter values in test names with U+22EF
···(MIDLINE HORIZONTAL ELLIPSIS). My Python normalizer's stdout defaults to cp1252 on Windows runners, which mangles those bytes to���(U+FFFD replacement). Linux/macOS emit the correct UTF-8 bytes. Same tests pass everywhere; only the on-disk bytes differ.The fix
Sets
PYTHONIOENCODING=utf-8on the Normalize step. Same fix I pushed tofix/xplatform-drop-macos-x64right after that PR merged — this is that same commit as a standalone PR to vNext.Test plan
tier2/review-errormsg-null-on-successto unblock change!: Result.ErrorMessage returns null on success (breaking) (code review) #280