Fix creating archives on windows with a CRLF #60
Merged
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.
The problem on windows is that when we have a file with CRLF and read without binmode that it mangles that by converting to LF. In order to test that we need a file guaranteed to have a real CRLF on windows and read that with the code and ensure that the resulting file when extracted from the archive still has the CRLF in it and wasn't mangled by being converted into LF internal to ruby.
To do that we need a .gitattribute file that treats the fixtures as binaries (although I wasn't seeing crlf conversion by git, but we definitely need to assert that the fixtures in this repo are binaries).
Then we check that the filesizes that we're packaging look right, and then package and extract and check that the output filesize is the same. This correct fails when the binmode flag is removed from the File.read on windows systems.
It looks like this test now checks the thing it was designed to check? The binary file it was reading wasn't getting mangled by windows binmode since there was no CRLF in the file to get converted.