Repository navigation
all: check out testdata with LF line endings on all platforms - #5872
Merged
davecheney merged 1 commit intoOct 13, 2026
Merged
Conversation
Git for Windows sets core.autocrlf=true by default, and the repository has no .gitattributes file. On Windows, Git therefore checks out all text files with CRLF line endings. Many tests read testdata files byte for byte, so each test that reads a fixture had its own workaround to remove the '\r' characters. A new test that does not do this passes on Linux and macOS and fails only on Windows CI. Add a .gitattributes file that checks out all files under testdata directories with LF line endings, and remove the workarounds that this makes unnecessary. Keep the '\r' handling for program output. Baremetal targets write CRLF line endings, so the output of a program can contain '\r' on all platforms. Keep the '\r' handling in the builder, which reads output from tools on Windows.
Contributor
Author
|
@deadprogram this pays down the pile of line ending workarounds that #5837 was the most recent abuser of. |
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.
Git for Windows sets core.autocrlf=true by default, and the repository has no .gitattributes file. On Windows, Git therefore checks out all text files with CRLF line endings. Many tests read testdata files byte for byte, so each test that reads a fixture had its own workaround to remove the '\r' characters. A new test that does not do this passes on Linux and macOS and fails only on Windows CI.
Add a .gitattributes file that checks out all files under testdata directories with LF line endings, and remove the workarounds that this makes unnecessary.
Keep the '\r' handling for program output. Baremetal targets write CRLF line endings, so the output of a program can contain '\r' on all platforms. Keep the '\r' handling in the builder, which reads output from tools on Windows.
Windows contributors with an existing checkout: run
git rm -r --cached -q . && git reset --hardonce after you pull this, or tests will fail.