summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CHANGELOG.md9
-rw-r--r--CMakeLists.txt11
-rw-r--r--THREADING.md26
-rw-r--r--include/git2/commit.h11
-rw-r--r--include/git2/describe.h2
-rw-r--r--include/git2/sys/stream.h2
-rw-r--r--include/git2/types.h12
-rw-r--r--src/buf_text.c10
-rw-r--r--src/buf_text.h3
-rw-r--r--src/commit.c55
-rw-r--r--src/crlf.c56
-rw-r--r--src/curl_stream.c257
-rw-r--r--src/curl_stream.h14
-rw-r--r--src/diff.c13
-rw-r--r--src/diff.h19
-rw-r--r--src/diff_patch.c42
-rw-r--r--src/diff_patch.h2
-rw-r--r--src/diff_tform.c78
-rw-r--r--src/index.c43
-rw-r--r--src/iterator.c12
-rw-r--r--src/iterator.h8
-rw-r--r--src/openssl_stream.c122
-rw-r--r--src/repository.c44
-rw-r--r--src/stash.c29
-rw-r--r--src/stransport_stream.c18
-rw-r--r--src/stream.h15
-rw-r--r--src/transports/http.c18
-rw-r--r--tests/checkout/crlf.c265
-rw-r--r--tests/clar/fixtures.h15
-rw-r--r--tests/commit/parse.c38
-rw-r--r--tests/core/buffer.c39
-rw-r--r--tests/diff/binary.c37
-rw-r--r--tests/diff/index.c31
-rw-r--r--tests/diff/racy.c39
-rw-r--r--tests/diff/workdir.c38
-rw-r--r--tests/filter/crlf.c4
-rw-r--r--tests/generate_crlf.sh73
-rw-r--r--tests/index/racy.c143
-rw-r--r--tests/merge/workdir/dirty.c15
-rw-r--r--tests/repo/open.c17
-rw-r--r--tests/resources/crlf/.gitted/indexbin425 -> 1912 bytes
-rw-r--r--tests/resources/crlf/.gitted/objects/09/7722be9b67b48dfe3b19396d02fd535300ee46bin0 -> 344 bytes
-rw-r--r--tests/resources/crlf/.gitted/objects/16/78031ee023a23bd3515e4e1693b661a69f0a73bin0 -> 193 bytes
-rw-r--r--tests/resources/crlf/.gitted/objects/18/c637c5d9aba6eed226ee1840cd1ca2e6c4e4c5bin0 -> 442 bytes
-rw-r--r--tests/resources/crlf/.gitted/objects/20/3555c5676d75cd80d69b50beb1f4b588c59cebbin0 -> 36 bytes
-rw-r--r--tests/resources/crlf/.gitted/objects/23/f4582779e60bfa7f14750ad507399a58876611bin0 -> 219 bytes
-rw-r--r--tests/resources/crlf/.gitted/objects/2a/d3df895f68f4dda6a0a815c620b909bdd27c05bin0 -> 462 bytes
-rw-r--r--tests/resources/crlf/.gitted/objects/2b/d9d81b51a867352bab307b89cbb5b4a69adfe1bin0 -> 336 bytes
-rw-r--r--tests/resources/crlf/.gitted/objects/2c/03f9f407b576eae80327864bab572e282a33eabin0 -> 455 bytes
-rw-r--r--tests/resources/crlf/.gitted/objects/33/cdead44e1c3ec178e39a4a69085280dbacf01bbin0 -> 221 bytes
-rw-r--r--tests/resources/crlf/.gitted/objects/41/7786fc35b3c71aa546e3f95eb5da3c8dad8c41bin0 -> 36 bytes
-rw-r--r--tests/resources/crlf/.gitted/objects/5a/fb6a14a864e30787857dd92af837e8cdd2cb1bbin0 -> 194 bytes
-rw-r--r--tests/resources/crlf/.gitted/objects/68/03c385642cebc8103fddd526ef395d75678a7e2
-rw-r--r--tests/resources/crlf/.gitted/objects/69/597764abeaa1a403ebf589d2ea579c6a8f877e1
-rw-r--r--tests/resources/crlf/.gitted/objects/6c/589757f65a970a6cc07c71c3f3d2528c611cbc2
-rw-r--r--tests/resources/crlf/.gitted/objects/77/afe26d93c49279ca90604c125496920753fedebin0 -> 178 bytes
-rw-r--r--tests/resources/crlf/.gitted/objects/85/340755cfe5e28c2835781978bb1cece91b3d0fbin0 -> 37 bytes
-rw-r--r--tests/resources/crlf/.gitted/objects/92/0e90a663bea5d740989d5f935f6dfb473a0c5dbin0 -> 303 bytes
-rw-r--r--tests/resources/crlf/.gitted/objects/9d/29b5bb165bf65637ffcb5ededb82ddd7c3fd13bin0 -> 227 bytes
-rw-r--r--tests/resources/crlf/.gitted/objects/aa/f083a9cb53dac3669dcfa0e48921580d629ec7bin0 -> 37 bytes
-rw-r--r--tests/resources/crlf/.gitted/objects/af/6fcf6da196f615d7cda269b55b5c4ecfb4a5b3bin0 -> 36 bytes
-rw-r--r--tests/resources/crlf/.gitted/objects/bb/29a7b46b5d4ba3ea17b238ae561b81d59dc818bin0 -> 170 bytes
-rw-r--r--tests/resources/crlf/.gitted/objects/c8/d0b1ebcaccdd8f968c4aae3c2175e7fed651fe2
-rw-r--r--tests/resources/crlf/.gitted/objects/cd/d3dacc5c0501d5ea57bbdf90e3d80176606139bin0 -> 565 bytes
-rw-r--r--tests/resources/crlf/.gitted/objects/d1/1e7ef63ba7db1db3b1b99cdbafc57a8549f8a4bin0 -> 35 bytes
-rw-r--r--tests/resources/crlf/.gitted/objects/de/5bfa165999d9d6c6dbafad2a7e709f93ec30fdbin0 -> 179 bytes
-rw-r--r--tests/resources/crlf/.gitted/objects/e5/062da7d7802cf492975eda580f09ac4876bd881
-rw-r--r--tests/resources/crlf/.gitted/objects/f2/b745d7f47d114a3a6b31a7b628e61e804d1a58bin0 -> 561 bytes
-rw-r--r--tests/resources/crlf/.gitted/objects/fe/ab3713c4659bb22700042b3c55b8d60d0a952bbin0 -> 568 bytes
-rw-r--r--tests/resources/crlf/.gitted/refs/heads/master2
-rw-r--r--tests/resources/crlf/.gitted/refs/heads/utf81
-rw-r--r--tests/resources/crlf_data/.gitattributes1
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,-crlf/all-crlf4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,-crlf/all-crlf-utf8bom4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,-crlf/all-lf5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,-crlf/all-lf-utf8bom5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,-crlf/binary-all-crlf4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,-crlf/binary-all-lf4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,-crlf/binary-mixed-lf-cr3
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,-crlf/binary-mixed-lf-cr-crlf3
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,-crlf/few-utf8-chars-crlf22
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,-crlf/few-utf8-chars-lf22
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,-crlf/many-utf8-chars-crlf4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,-crlf/many-utf8-chars-lf4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,-crlf/mixed-lf-cr3
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,-crlf/mixed-lf-cr-crlf3
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,-crlf/more-crlf5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,-crlf/more-crlf-utf8bom5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,-crlf/more-lf5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,-crlf/more-lf-utf8bom5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,-crlf/zero-byte0
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,-text/all-crlf4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,-text/all-crlf-utf8bom4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,-text/all-lf5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,-text/all-lf-utf8bom5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,-text/binary-all-crlf4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,-text/binary-all-lf4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,-text/binary-mixed-lf-cr3
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,-text/binary-mixed-lf-cr-crlf3
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,-text/few-utf8-chars-crlf22
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,-text/few-utf8-chars-lf22
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,-text/many-utf8-chars-crlf4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,-text/many-utf8-chars-lf4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,-text/mixed-lf-cr3
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,-text/mixed-lf-cr-crlf3
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,-text/more-crlf5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,-text/more-crlf-utf8bom5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,-text/more-lf5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,-text/more-lf-utf8bom5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,-text/zero-byte0
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,crlf/all-crlf4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,crlf/all-crlf-utf8bom4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,crlf/all-lf5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,crlf/all-lf-utf8bom5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,crlf/binary-all-crlf4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,crlf/binary-all-lf4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,crlf/binary-mixed-lf-cr3
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,crlf/binary-mixed-lf-cr-crlf3
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,crlf/few-utf8-chars-crlf22
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,crlf/few-utf8-chars-lf22
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,crlf/many-utf8-chars-crlf4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,crlf/many-utf8-chars-lf4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,crlf/mixed-lf-cr3
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,crlf/mixed-lf-cr-crlf3
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,crlf/more-crlf5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,crlf/more-crlf-utf8bom5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,crlf/more-lf5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,crlf/more-lf-utf8bom5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,crlf/zero-byte0
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,eol_crlf/all-crlf4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,eol_crlf/all-crlf-utf8bom4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,eol_crlf/all-lf5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,eol_crlf/all-lf-utf8bom5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,eol_crlf/binary-all-crlf4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,eol_crlf/binary-all-lf4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,eol_crlf/binary-mixed-lf-cr3
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,eol_crlf/binary-mixed-lf-cr-crlf3
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,eol_crlf/few-utf8-chars-crlf22
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,eol_crlf/few-utf8-chars-lf22
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,eol_crlf/many-utf8-chars-crlf4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,eol_crlf/many-utf8-chars-lf4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,eol_crlf/mixed-lf-cr3
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,eol_crlf/mixed-lf-cr-crlf3
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,eol_crlf/more-crlf5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,eol_crlf/more-crlf-utf8bom5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,eol_crlf/more-lf5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,eol_crlf/more-lf-utf8bom5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,eol_crlf/zero-byte0
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,eol_lf/all-crlf4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,eol_lf/all-crlf-utf8bom4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,eol_lf/all-lf5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,eol_lf/all-lf-utf8bom5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,eol_lf/binary-all-crlf4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,eol_lf/binary-all-lf4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,eol_lf/binary-mixed-lf-cr3
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,eol_lf/binary-mixed-lf-cr-crlf3
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,eol_lf/few-utf8-chars-crlf22
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,eol_lf/few-utf8-chars-lf22
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,eol_lf/many-utf8-chars-crlf4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,eol_lf/many-utf8-chars-lf4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,eol_lf/mixed-lf-cr3
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,eol_lf/mixed-lf-cr-crlf3
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,eol_lf/more-crlf5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,eol_lf/more-crlf-utf8bom5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,eol_lf/more-lf5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,eol_lf/more-lf-utf8bom5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,eol_lf/zero-byte0
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,text,eol_crlf/all-crlf4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,text,eol_crlf/all-crlf-utf8bom4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,text,eol_crlf/all-lf5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,text,eol_crlf/all-lf-utf8bom5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,text,eol_crlf/binary-all-crlf4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,text,eol_crlf/binary-all-lf4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,text,eol_crlf/binary-mixed-lf-cr3
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,text,eol_crlf/binary-mixed-lf-cr-crlf3
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,text,eol_crlf/few-utf8-chars-crlf22
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,text,eol_crlf/few-utf8-chars-lf22
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,text,eol_crlf/many-utf8-chars-crlf4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,text,eol_crlf/many-utf8-chars-lf4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,text,eol_crlf/mixed-lf-cr3
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,text,eol_crlf/mixed-lf-cr-crlf3
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,text,eol_crlf/more-crlf5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,text,eol_crlf/more-crlf-utf8bom5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,text,eol_crlf/more-lf5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,text,eol_crlf/more-lf-utf8bom5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,text,eol_crlf/zero-byte0
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,text,eol_lf/all-crlf4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,text,eol_lf/all-crlf-utf8bom4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,text,eol_lf/all-lf5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,text,eol_lf/all-lf-utf8bom5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,text,eol_lf/binary-all-crlf4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,text,eol_lf/binary-all-lf4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,text,eol_lf/binary-mixed-lf-cr3
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,text,eol_lf/binary-mixed-lf-cr-crlf3
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,text,eol_lf/few-utf8-chars-crlf22
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,text,eol_lf/few-utf8-chars-lf22
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,text,eol_lf/many-utf8-chars-crlf4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,text,eol_lf/many-utf8-chars-lf4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,text,eol_lf/mixed-lf-cr3
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,text,eol_lf/mixed-lf-cr-crlf3
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,text,eol_lf/more-crlf5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,text,eol_lf/more-crlf-utf8bom5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,text,eol_lf/more-lf5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,text,eol_lf/more-lf-utf8bom5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,text,eol_lf/zero-byte0
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,text/all-crlf4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,text/all-crlf-utf8bom4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,text/all-lf5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,text/all-lf-utf8bom5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,text/binary-all-crlf4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,text/binary-all-lf4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,text/binary-mixed-lf-cr3
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,text/binary-mixed-lf-cr-crlf3
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,text/few-utf8-chars-crlf22
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,text/few-utf8-chars-lf22
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,text/many-utf8-chars-crlf4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,text/many-utf8-chars-lf4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,text/mixed-lf-cr3
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,text/mixed-lf-cr-crlf3
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,text/more-crlf5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,text/more-crlf-utf8bom5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,text/more-lf5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,text/more-lf-utf8bom5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,text/zero-byte0
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,text_auto,eol_crlf/all-crlf4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,text_auto,eol_crlf/all-crlf-utf8bom4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,text_auto,eol_crlf/all-lf5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,text_auto,eol_crlf/all-lf-utf8bom5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,text_auto,eol_crlf/binary-all-crlf4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,text_auto,eol_crlf/binary-all-lf4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,text_auto,eol_crlf/binary-mixed-lf-cr3
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,text_auto,eol_crlf/binary-mixed-lf-cr-crlf3
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,text_auto,eol_crlf/few-utf8-chars-crlf22
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,text_auto,eol_crlf/few-utf8-chars-lf22
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,text_auto,eol_crlf/many-utf8-chars-crlf4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,text_auto,eol_crlf/many-utf8-chars-lf4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,text_auto,eol_crlf/mixed-lf-cr3
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,text_auto,eol_crlf/mixed-lf-cr-crlf3
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,text_auto,eol_crlf/more-crlf5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,text_auto,eol_crlf/more-crlf-utf8bom5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,text_auto,eol_crlf/more-lf5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,text_auto,eol_crlf/more-lf-utf8bom5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,text_auto,eol_crlf/zero-byte0
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,text_auto,eol_lf/all-crlf4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,text_auto,eol_lf/all-crlf-utf8bom4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,text_auto,eol_lf/all-lf5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,text_auto,eol_lf/all-lf-utf8bom5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,text_auto,eol_lf/binary-all-crlf4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,text_auto,eol_lf/binary-all-lf4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,text_auto,eol_lf/binary-mixed-lf-cr3
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,text_auto,eol_lf/binary-mixed-lf-cr-crlf3
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,text_auto,eol_lf/few-utf8-chars-crlf22
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,text_auto,eol_lf/few-utf8-chars-lf22
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,text_auto,eol_lf/many-utf8-chars-crlf4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,text_auto,eol_lf/many-utf8-chars-lf4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,text_auto,eol_lf/mixed-lf-cr3
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,text_auto,eol_lf/mixed-lf-cr-crlf3
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,text_auto,eol_lf/more-crlf5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,text_auto,eol_lf/more-crlf-utf8bom5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,text_auto,eol_lf/more-lf5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,text_auto,eol_lf/more-lf-utf8bom5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,text_auto,eol_lf/zero-byte0
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,text_auto/all-crlf4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,text_auto/all-crlf-utf8bom4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,text_auto/all-lf5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,text_auto/all-lf-utf8bom5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,text_auto/binary-all-crlf4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,text_auto/binary-all-lf4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,text_auto/binary-mixed-lf-cr3
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,text_auto/binary-mixed-lf-cr-crlf3
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,text_auto/few-utf8-chars-crlf22
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,text_auto/few-utf8-chars-lf22
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,text_auto/many-utf8-chars-crlf4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,text_auto/many-utf8-chars-lf4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,text_auto/mixed-lf-cr3
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,text_auto/mixed-lf-cr-crlf3
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,text_auto/more-crlf5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,text_auto/more-crlf-utf8bom5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,text_auto/more-lf5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,text_auto/more-lf-utf8bom5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false,text_auto/zero-byte0
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false/all-crlf4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false/all-crlf-utf8bom4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false/all-lf5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false/all-lf-utf8bom5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false/binary-all-crlf4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false/binary-all-lf4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false/binary-mixed-lf-cr3
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false/binary-mixed-lf-cr-crlf3
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false/few-utf8-chars-crlf22
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false/few-utf8-chars-lf22
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false/many-utf8-chars-crlf4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false/many-utf8-chars-lf4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false/mixed-lf-cr3
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false/mixed-lf-cr-crlf3
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false/more-crlf5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false/more-crlf-utf8bom5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false/more-lf5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false/more-lf-utf8bom5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_false/zero-byte0
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,-crlf/all-crlf4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,-crlf/all-crlf-utf8bom4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,-crlf/all-lf5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,-crlf/all-lf-utf8bom5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,-crlf/binary-all-crlf4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,-crlf/binary-all-lf4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,-crlf/binary-mixed-lf-cr3
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,-crlf/binary-mixed-lf-cr-crlf3
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,-crlf/few-utf8-chars-crlf22
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,-crlf/few-utf8-chars-lf22
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,-crlf/many-utf8-chars-crlf4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,-crlf/many-utf8-chars-lf4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,-crlf/mixed-lf-cr3
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,-crlf/mixed-lf-cr-crlf3
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,-crlf/more-crlf5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,-crlf/more-crlf-utf8bom5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,-crlf/more-lf5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,-crlf/more-lf-utf8bom5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,-crlf/zero-byte0
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,-text/all-crlf4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,-text/all-crlf-utf8bom4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,-text/all-lf5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,-text/all-lf-utf8bom5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,-text/binary-all-crlf4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,-text/binary-all-lf4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,-text/binary-mixed-lf-cr3
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,-text/binary-mixed-lf-cr-crlf3
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,-text/few-utf8-chars-crlf22
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,-text/few-utf8-chars-lf22
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,-text/many-utf8-chars-crlf4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,-text/many-utf8-chars-lf4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,-text/mixed-lf-cr3
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,-text/mixed-lf-cr-crlf3
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,-text/more-crlf5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,-text/more-crlf-utf8bom5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,-text/more-lf5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,-text/more-lf-utf8bom5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,-text/zero-byte0
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,crlf/all-crlf4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,crlf/all-crlf-utf8bom4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,crlf/all-lf5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,crlf/all-lf-utf8bom5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,crlf/binary-all-crlf4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,crlf/binary-all-lf4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,crlf/binary-mixed-lf-cr3
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,crlf/binary-mixed-lf-cr-crlf3
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,crlf/few-utf8-chars-crlf22
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,crlf/few-utf8-chars-lf22
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,crlf/many-utf8-chars-crlf4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,crlf/many-utf8-chars-lf4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,crlf/mixed-lf-cr3
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,crlf/mixed-lf-cr-crlf3
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,crlf/more-crlf5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,crlf/more-crlf-utf8bom5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,crlf/more-lf5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,crlf/more-lf-utf8bom5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,crlf/zero-byte0
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,eol_crlf/all-crlf4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,eol_crlf/all-crlf-utf8bom4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,eol_crlf/all-lf5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,eol_crlf/all-lf-utf8bom5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,eol_crlf/binary-all-crlf4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,eol_crlf/binary-all-lf4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,eol_crlf/binary-mixed-lf-cr3
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,eol_crlf/binary-mixed-lf-cr-crlf3
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,eol_crlf/few-utf8-chars-crlf22
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,eol_crlf/few-utf8-chars-lf22
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,eol_crlf/many-utf8-chars-crlf4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,eol_crlf/many-utf8-chars-lf4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,eol_crlf/mixed-lf-cr3
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,eol_crlf/mixed-lf-cr-crlf3
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,eol_crlf/more-crlf5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,eol_crlf/more-crlf-utf8bom5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,eol_crlf/more-lf5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,eol_crlf/more-lf-utf8bom5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,eol_crlf/zero-byte0
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,eol_lf/all-crlf4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,eol_lf/all-crlf-utf8bom4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,eol_lf/all-lf5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,eol_lf/all-lf-utf8bom5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,eol_lf/binary-all-crlf4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,eol_lf/binary-all-lf4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,eol_lf/binary-mixed-lf-cr3
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,eol_lf/binary-mixed-lf-cr-crlf3
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,eol_lf/few-utf8-chars-crlf22
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,eol_lf/few-utf8-chars-lf22
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,eol_lf/many-utf8-chars-crlf4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,eol_lf/many-utf8-chars-lf4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,eol_lf/mixed-lf-cr3
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,eol_lf/mixed-lf-cr-crlf3
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,eol_lf/more-crlf5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,eol_lf/more-crlf-utf8bom5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,eol_lf/more-lf5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,eol_lf/more-lf-utf8bom5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,eol_lf/zero-byte0
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,text,eol_crlf/all-crlf4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,text,eol_crlf/all-crlf-utf8bom4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,text,eol_crlf/all-lf5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,text,eol_crlf/all-lf-utf8bom5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,text,eol_crlf/binary-all-crlf4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,text,eol_crlf/binary-all-lf4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,text,eol_crlf/binary-mixed-lf-cr3
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,text,eol_crlf/binary-mixed-lf-cr-crlf3
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,text,eol_crlf/few-utf8-chars-crlf22
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,text,eol_crlf/few-utf8-chars-lf22
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,text,eol_crlf/many-utf8-chars-crlf4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,text,eol_crlf/many-utf8-chars-lf4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,text,eol_crlf/mixed-lf-cr3
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,text,eol_crlf/mixed-lf-cr-crlf3
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,text,eol_crlf/more-crlf5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,text,eol_crlf/more-crlf-utf8bom5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,text,eol_crlf/more-lf5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,text,eol_crlf/more-lf-utf8bom5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,text,eol_crlf/zero-byte0
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,text,eol_lf/all-crlf4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,text,eol_lf/all-crlf-utf8bom4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,text,eol_lf/all-lf5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,text,eol_lf/all-lf-utf8bom5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,text,eol_lf/binary-all-crlf4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,text,eol_lf/binary-all-lf4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,text,eol_lf/binary-mixed-lf-cr3
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,text,eol_lf/binary-mixed-lf-cr-crlf3
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,text,eol_lf/few-utf8-chars-crlf22
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,text,eol_lf/few-utf8-chars-lf22
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,text,eol_lf/many-utf8-chars-crlf4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,text,eol_lf/many-utf8-chars-lf4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,text,eol_lf/mixed-lf-cr3
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,text,eol_lf/mixed-lf-cr-crlf3
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,text,eol_lf/more-crlf5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,text,eol_lf/more-crlf-utf8bom5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,text,eol_lf/more-lf5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,text,eol_lf/more-lf-utf8bom5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,text,eol_lf/zero-byte0
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,text/all-crlf4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,text/all-crlf-utf8bom4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,text/all-lf5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,text/all-lf-utf8bom5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,text/binary-all-crlf4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,text/binary-all-lf4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,text/binary-mixed-lf-cr3
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,text/binary-mixed-lf-cr-crlf3
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,text/few-utf8-chars-crlf22
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,text/few-utf8-chars-lf22
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,text/many-utf8-chars-crlf4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,text/many-utf8-chars-lf4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,text/mixed-lf-cr3
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,text/mixed-lf-cr-crlf3
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,text/more-crlf5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,text/more-crlf-utf8bom5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,text/more-lf5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,text/more-lf-utf8bom5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,text/zero-byte0
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,text_auto,eol_crlf/all-crlf4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,text_auto,eol_crlf/all-crlf-utf8bom4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,text_auto,eol_crlf/all-lf5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,text_auto,eol_crlf/all-lf-utf8bom5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,text_auto,eol_crlf/binary-all-crlf4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,text_auto,eol_crlf/binary-all-lf4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,text_auto,eol_crlf/binary-mixed-lf-cr3
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,text_auto,eol_crlf/binary-mixed-lf-cr-crlf3
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,text_auto,eol_crlf/few-utf8-chars-crlf22
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,text_auto,eol_crlf/few-utf8-chars-lf22
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,text_auto,eol_crlf/many-utf8-chars-crlf4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,text_auto,eol_crlf/many-utf8-chars-lf4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,text_auto,eol_crlf/mixed-lf-cr3
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,text_auto,eol_crlf/mixed-lf-cr-crlf3
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,text_auto,eol_crlf/more-crlf5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,text_auto,eol_crlf/more-crlf-utf8bom5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,text_auto,eol_crlf/more-lf5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,text_auto,eol_crlf/more-lf-utf8bom5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,text_auto,eol_crlf/zero-byte0
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,text_auto,eol_lf/all-crlf4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,text_auto,eol_lf/all-crlf-utf8bom4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,text_auto,eol_lf/all-lf5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,text_auto,eol_lf/all-lf-utf8bom5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,text_auto,eol_lf/binary-all-crlf4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,text_auto,eol_lf/binary-all-lf4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,text_auto,eol_lf/binary-mixed-lf-cr3
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,text_auto,eol_lf/binary-mixed-lf-cr-crlf3
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,text_auto,eol_lf/few-utf8-chars-crlf22
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,text_auto,eol_lf/few-utf8-chars-lf22
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,text_auto,eol_lf/many-utf8-chars-crlf4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,text_auto,eol_lf/many-utf8-chars-lf4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,text_auto,eol_lf/mixed-lf-cr3
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,text_auto,eol_lf/mixed-lf-cr-crlf3
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,text_auto,eol_lf/more-crlf5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,text_auto,eol_lf/more-crlf-utf8bom5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,text_auto,eol_lf/more-lf5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,text_auto,eol_lf/more-lf-utf8bom5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,text_auto,eol_lf/zero-byte0
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,text_auto/all-crlf4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,text_auto/all-crlf-utf8bom4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,text_auto/all-lf5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,text_auto/all-lf-utf8bom5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,text_auto/binary-all-crlf4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,text_auto/binary-all-lf4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,text_auto/binary-mixed-lf-cr3
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,text_auto/binary-mixed-lf-cr-crlf3
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,text_auto/few-utf8-chars-crlf22
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,text_auto/few-utf8-chars-lf22
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,text_auto/many-utf8-chars-crlf4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,text_auto/many-utf8-chars-lf4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,text_auto/mixed-lf-cr3
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,text_auto/mixed-lf-cr-crlf3
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,text_auto/more-crlf5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,text_auto/more-crlf-utf8bom5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,text_auto/more-lf5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,text_auto/more-lf-utf8bom5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input,text_auto/zero-byte0
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input/all-crlf4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input/all-crlf-utf8bom4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input/all-lf5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input/all-lf-utf8bom5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input/binary-all-crlf4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input/binary-all-lf4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input/binary-mixed-lf-cr3
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input/binary-mixed-lf-cr-crlf3
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input/few-utf8-chars-crlf22
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input/few-utf8-chars-lf22
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input/many-utf8-chars-crlf4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input/many-utf8-chars-lf4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input/mixed-lf-cr3
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input/mixed-lf-cr-crlf3
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input/more-crlf5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input/more-crlf-utf8bom5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input/more-lf5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input/more-lf-utf8bom5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_input/zero-byte0
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,-crlf/all-crlf4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,-crlf/all-crlf-utf8bom4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,-crlf/all-lf5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,-crlf/all-lf-utf8bom5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,-crlf/binary-all-crlf4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,-crlf/binary-all-lf4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,-crlf/binary-mixed-lf-cr3
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,-crlf/binary-mixed-lf-cr-crlf3
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,-crlf/few-utf8-chars-crlf22
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,-crlf/few-utf8-chars-lf22
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,-crlf/many-utf8-chars-crlf4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,-crlf/many-utf8-chars-lf4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,-crlf/mixed-lf-cr3
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,-crlf/mixed-lf-cr-crlf3
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,-crlf/more-crlf5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,-crlf/more-crlf-utf8bom5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,-crlf/more-lf5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,-crlf/more-lf-utf8bom5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,-crlf/zero-byte0
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,-text/all-crlf4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,-text/all-crlf-utf8bom4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,-text/all-lf5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,-text/all-lf-utf8bom5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,-text/binary-all-crlf4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,-text/binary-all-lf4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,-text/binary-mixed-lf-cr3
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,-text/binary-mixed-lf-cr-crlf3
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,-text/few-utf8-chars-crlf22
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,-text/few-utf8-chars-lf22
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,-text/many-utf8-chars-crlf4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,-text/many-utf8-chars-lf4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,-text/mixed-lf-cr3
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,-text/mixed-lf-cr-crlf3
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,-text/more-crlf5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,-text/more-crlf-utf8bom5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,-text/more-lf5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,-text/more-lf-utf8bom5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,-text/zero-byte0
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,crlf/all-crlf4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,crlf/all-crlf-utf8bom4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,crlf/all-lf5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,crlf/all-lf-utf8bom5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,crlf/binary-all-crlf4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,crlf/binary-all-lf4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,crlf/binary-mixed-lf-cr3
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,crlf/binary-mixed-lf-cr-crlf3
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,crlf/few-utf8-chars-crlf22
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,crlf/few-utf8-chars-lf22
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,crlf/many-utf8-chars-crlf4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,crlf/many-utf8-chars-lf4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,crlf/mixed-lf-cr3
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,crlf/mixed-lf-cr-crlf3
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,crlf/more-crlf5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,crlf/more-crlf-utf8bom5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,crlf/more-lf5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,crlf/more-lf-utf8bom5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,crlf/zero-byte0
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,eol_crlf/all-crlf4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,eol_crlf/all-crlf-utf8bom4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,eol_crlf/all-lf5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,eol_crlf/all-lf-utf8bom5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,eol_crlf/binary-all-crlf4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,eol_crlf/binary-all-lf4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,eol_crlf/binary-mixed-lf-cr3
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,eol_crlf/binary-mixed-lf-cr-crlf3
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,eol_crlf/few-utf8-chars-crlf22
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,eol_crlf/few-utf8-chars-lf22
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,eol_crlf/many-utf8-chars-crlf4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,eol_crlf/many-utf8-chars-lf4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,eol_crlf/mixed-lf-cr3
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,eol_crlf/mixed-lf-cr-crlf3
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,eol_crlf/more-crlf5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,eol_crlf/more-crlf-utf8bom5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,eol_crlf/more-lf5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,eol_crlf/more-lf-utf8bom5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,eol_crlf/zero-byte0
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,eol_lf/all-crlf4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,eol_lf/all-crlf-utf8bom4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,eol_lf/all-lf5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,eol_lf/all-lf-utf8bom5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,eol_lf/binary-all-crlf4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,eol_lf/binary-all-lf4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,eol_lf/binary-mixed-lf-cr3
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,eol_lf/binary-mixed-lf-cr-crlf3
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,eol_lf/few-utf8-chars-crlf22
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,eol_lf/few-utf8-chars-lf22
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,eol_lf/many-utf8-chars-crlf4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,eol_lf/many-utf8-chars-lf4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,eol_lf/mixed-lf-cr3
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,eol_lf/mixed-lf-cr-crlf3
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,eol_lf/more-crlf5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,eol_lf/more-crlf-utf8bom5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,eol_lf/more-lf5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,eol_lf/more-lf-utf8bom5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,eol_lf/zero-byte0
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,text,eol_crlf/all-crlf4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,text,eol_crlf/all-crlf-utf8bom4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,text,eol_crlf/all-lf5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,text,eol_crlf/all-lf-utf8bom5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,text,eol_crlf/binary-all-crlf4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,text,eol_crlf/binary-all-lf4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,text,eol_crlf/binary-mixed-lf-cr3
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,text,eol_crlf/binary-mixed-lf-cr-crlf3
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,text,eol_crlf/few-utf8-chars-crlf22
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,text,eol_crlf/few-utf8-chars-lf22
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,text,eol_crlf/many-utf8-chars-crlf4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,text,eol_crlf/many-utf8-chars-lf4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,text,eol_crlf/mixed-lf-cr3
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,text,eol_crlf/mixed-lf-cr-crlf3
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,text,eol_crlf/more-crlf5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,text,eol_crlf/more-crlf-utf8bom5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,text,eol_crlf/more-lf5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,text,eol_crlf/more-lf-utf8bom5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,text,eol_crlf/zero-byte0
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,text,eol_lf/all-crlf4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,text,eol_lf/all-crlf-utf8bom4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,text,eol_lf/all-lf5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,text,eol_lf/all-lf-utf8bom5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,text,eol_lf/binary-all-crlf4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,text,eol_lf/binary-all-lf4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,text,eol_lf/binary-mixed-lf-cr3
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,text,eol_lf/binary-mixed-lf-cr-crlf3
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,text,eol_lf/few-utf8-chars-crlf22
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,text,eol_lf/few-utf8-chars-lf22
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,text,eol_lf/many-utf8-chars-crlf4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,text,eol_lf/many-utf8-chars-lf4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,text,eol_lf/mixed-lf-cr3
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,text,eol_lf/mixed-lf-cr-crlf3
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,text,eol_lf/more-crlf5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,text,eol_lf/more-crlf-utf8bom5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,text,eol_lf/more-lf5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,text,eol_lf/more-lf-utf8bom5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,text,eol_lf/zero-byte0
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,text/all-crlf4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,text/all-crlf-utf8bom4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,text/all-lf5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,text/all-lf-utf8bom5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,text/binary-all-crlf4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,text/binary-all-lf4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,text/binary-mixed-lf-cr3
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,text/binary-mixed-lf-cr-crlf3
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,text/few-utf8-chars-crlf22
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,text/few-utf8-chars-lf22
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,text/many-utf8-chars-crlf4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,text/many-utf8-chars-lf4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,text/mixed-lf-cr3
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,text/mixed-lf-cr-crlf3
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,text/more-crlf5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,text/more-crlf-utf8bom5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,text/more-lf5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,text/more-lf-utf8bom5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,text/zero-byte0
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,text_auto,eol_crlf/all-crlf4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,text_auto,eol_crlf/all-crlf-utf8bom4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,text_auto,eol_crlf/all-lf5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,text_auto,eol_crlf/all-lf-utf8bom5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,text_auto,eol_crlf/binary-all-crlf4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,text_auto,eol_crlf/binary-all-lf4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,text_auto,eol_crlf/binary-mixed-lf-cr3
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,text_auto,eol_crlf/binary-mixed-lf-cr-crlf3
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,text_auto,eol_crlf/few-utf8-chars-crlf22
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,text_auto,eol_crlf/few-utf8-chars-lf22
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,text_auto,eol_crlf/many-utf8-chars-crlf4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,text_auto,eol_crlf/many-utf8-chars-lf4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,text_auto,eol_crlf/mixed-lf-cr3
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,text_auto,eol_crlf/mixed-lf-cr-crlf3
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,text_auto,eol_crlf/more-crlf5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,text_auto,eol_crlf/more-crlf-utf8bom5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,text_auto,eol_crlf/more-lf5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,text_auto,eol_crlf/more-lf-utf8bom5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,text_auto,eol_crlf/zero-byte0
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,text_auto,eol_lf/all-crlf4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,text_auto,eol_lf/all-crlf-utf8bom4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,text_auto,eol_lf/all-lf5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,text_auto,eol_lf/all-lf-utf8bom5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,text_auto,eol_lf/binary-all-crlf4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,text_auto,eol_lf/binary-all-lf4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,text_auto,eol_lf/binary-mixed-lf-cr3
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,text_auto,eol_lf/binary-mixed-lf-cr-crlf3
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,text_auto,eol_lf/few-utf8-chars-crlf22
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,text_auto,eol_lf/few-utf8-chars-lf22
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,text_auto,eol_lf/many-utf8-chars-crlf4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,text_auto,eol_lf/many-utf8-chars-lf4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,text_auto,eol_lf/mixed-lf-cr3
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,text_auto,eol_lf/mixed-lf-cr-crlf3
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,text_auto,eol_lf/more-crlf5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,text_auto,eol_lf/more-crlf-utf8bom5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,text_auto,eol_lf/more-lf5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,text_auto,eol_lf/more-lf-utf8bom5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,text_auto,eol_lf/zero-byte0
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,text_auto/all-crlf4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,text_auto/all-crlf-utf8bom4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,text_auto/all-lf5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,text_auto/all-lf-utf8bom5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,text_auto/binary-all-crlf4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,text_auto/binary-all-lf4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,text_auto/binary-mixed-lf-cr3
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,text_auto/binary-mixed-lf-cr-crlf3
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,text_auto/few-utf8-chars-crlf22
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,text_auto/few-utf8-chars-lf22
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,text_auto/many-utf8-chars-crlf4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,text_auto/many-utf8-chars-lf4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,text_auto/mixed-lf-cr3
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,text_auto/mixed-lf-cr-crlf3
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,text_auto/more-crlf5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,text_auto/more-crlf-utf8bom5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,text_auto/more-lf5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,text_auto/more-lf-utf8bom5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true,text_auto/zero-byte0
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true/all-crlf4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true/all-crlf-utf8bom4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true/all-lf5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true/all-lf-utf8bom5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true/binary-all-crlf4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true/binary-all-lf4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true/binary-mixed-lf-cr3
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true/binary-mixed-lf-cr-crlf3
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true/few-utf8-chars-crlf22
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true/few-utf8-chars-lf22
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true/many-utf8-chars-crlf4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true/many-utf8-chars-lf4
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true/mixed-lf-cr3
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true/mixed-lf-cr-crlf3
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true/more-crlf5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true/more-crlf-utf8bom5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true/more-lf5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true/more-lf-utf8bom5
-rw-r--r--tests/resources/crlf_data/posix/autocrlf_true/zero-byte0
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,-crlf/all-crlf4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,-crlf/all-crlf-utf8bom4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,-crlf/all-lf5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,-crlf/all-lf-utf8bom5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,-crlf/binary-all-crlf4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,-crlf/binary-all-lf4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,-crlf/binary-mixed-lf-cr3
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,-crlf/binary-mixed-lf-cr-crlf3
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,-crlf/few-utf8-chars-crlf22
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,-crlf/few-utf8-chars-lf22
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,-crlf/many-utf8-chars-crlf4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,-crlf/many-utf8-chars-lf4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,-crlf/mixed-lf-cr3
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,-crlf/mixed-lf-cr-crlf3
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,-crlf/more-crlf5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,-crlf/more-crlf-utf8bom5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,-crlf/more-lf5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,-crlf/more-lf-utf8bom5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,-crlf/zero-byte0
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,-text/all-crlf4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,-text/all-crlf-utf8bom4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,-text/all-lf5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,-text/all-lf-utf8bom5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,-text/binary-all-crlf4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,-text/binary-all-lf4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,-text/binary-mixed-lf-cr3
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,-text/binary-mixed-lf-cr-crlf3
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,-text/few-utf8-chars-crlf22
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,-text/few-utf8-chars-lf22
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,-text/many-utf8-chars-crlf4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,-text/many-utf8-chars-lf4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,-text/mixed-lf-cr3
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,-text/mixed-lf-cr-crlf3
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,-text/more-crlf5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,-text/more-crlf-utf8bom5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,-text/more-lf5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,-text/more-lf-utf8bom5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,-text/zero-byte0
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,crlf/all-crlf4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,crlf/all-crlf-utf8bom4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,crlf/all-lf5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,crlf/all-lf-utf8bom5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,crlf/binary-all-crlf4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,crlf/binary-all-lf4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,crlf/binary-mixed-lf-cr3
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,crlf/binary-mixed-lf-cr-crlf3
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,crlf/few-utf8-chars-crlf22
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,crlf/few-utf8-chars-lf22
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,crlf/many-utf8-chars-crlf4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,crlf/many-utf8-chars-lf4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,crlf/mixed-lf-cr3
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,crlf/mixed-lf-cr-crlf3
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,crlf/more-crlf5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,crlf/more-crlf-utf8bom5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,crlf/more-lf5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,crlf/more-lf-utf8bom5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,crlf/zero-byte0
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,eol_crlf/all-crlf4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,eol_crlf/all-crlf-utf8bom4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,eol_crlf/all-lf5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,eol_crlf/all-lf-utf8bom5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,eol_crlf/binary-all-crlf4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,eol_crlf/binary-all-lf4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,eol_crlf/binary-mixed-lf-cr3
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,eol_crlf/binary-mixed-lf-cr-crlf3
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,eol_crlf/few-utf8-chars-crlf22
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,eol_crlf/few-utf8-chars-lf22
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,eol_crlf/many-utf8-chars-crlf4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,eol_crlf/many-utf8-chars-lf4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,eol_crlf/mixed-lf-cr3
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,eol_crlf/mixed-lf-cr-crlf3
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,eol_crlf/more-crlf5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,eol_crlf/more-crlf-utf8bom5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,eol_crlf/more-lf5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,eol_crlf/more-lf-utf8bom5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,eol_crlf/zero-byte0
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,eol_lf/all-crlf4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,eol_lf/all-crlf-utf8bom4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,eol_lf/all-lf5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,eol_lf/all-lf-utf8bom5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,eol_lf/binary-all-crlf4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,eol_lf/binary-all-lf4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,eol_lf/binary-mixed-lf-cr3
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,eol_lf/binary-mixed-lf-cr-crlf3
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,eol_lf/few-utf8-chars-crlf22
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,eol_lf/few-utf8-chars-lf22
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,eol_lf/many-utf8-chars-crlf4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,eol_lf/many-utf8-chars-lf4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,eol_lf/mixed-lf-cr3
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,eol_lf/mixed-lf-cr-crlf3
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,eol_lf/more-crlf5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,eol_lf/more-crlf-utf8bom5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,eol_lf/more-lf5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,eol_lf/more-lf-utf8bom5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,eol_lf/zero-byte0
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,text,eol_crlf/all-crlf4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,text,eol_crlf/all-crlf-utf8bom4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,text,eol_crlf/all-lf5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,text,eol_crlf/all-lf-utf8bom5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,text,eol_crlf/binary-all-crlf4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,text,eol_crlf/binary-all-lf4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,text,eol_crlf/binary-mixed-lf-cr3
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,text,eol_crlf/binary-mixed-lf-cr-crlf3
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,text,eol_crlf/few-utf8-chars-crlf22
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,text,eol_crlf/few-utf8-chars-lf22
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,text,eol_crlf/many-utf8-chars-crlf4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,text,eol_crlf/many-utf8-chars-lf4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,text,eol_crlf/mixed-lf-cr3
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,text,eol_crlf/mixed-lf-cr-crlf3
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,text,eol_crlf/more-crlf5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,text,eol_crlf/more-crlf-utf8bom5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,text,eol_crlf/more-lf5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,text,eol_crlf/more-lf-utf8bom5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,text,eol_crlf/zero-byte0
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,text,eol_lf/all-crlf4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,text,eol_lf/all-crlf-utf8bom4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,text,eol_lf/all-lf5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,text,eol_lf/all-lf-utf8bom5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,text,eol_lf/binary-all-crlf4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,text,eol_lf/binary-all-lf4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,text,eol_lf/binary-mixed-lf-cr3
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,text,eol_lf/binary-mixed-lf-cr-crlf3
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,text,eol_lf/few-utf8-chars-crlf22
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,text,eol_lf/few-utf8-chars-lf22
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,text,eol_lf/many-utf8-chars-crlf4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,text,eol_lf/many-utf8-chars-lf4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,text,eol_lf/mixed-lf-cr3
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,text,eol_lf/mixed-lf-cr-crlf3
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,text,eol_lf/more-crlf5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,text,eol_lf/more-crlf-utf8bom5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,text,eol_lf/more-lf5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,text,eol_lf/more-lf-utf8bom5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,text,eol_lf/zero-byte0
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,text/all-crlf4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,text/all-crlf-utf8bom4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,text/all-lf5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,text/all-lf-utf8bom5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,text/binary-all-crlf4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,text/binary-all-lf4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,text/binary-mixed-lf-cr3
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,text/binary-mixed-lf-cr-crlf3
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,text/few-utf8-chars-crlf22
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,text/few-utf8-chars-lf22
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,text/many-utf8-chars-crlf4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,text/many-utf8-chars-lf4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,text/mixed-lf-cr3
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,text/mixed-lf-cr-crlf3
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,text/more-crlf5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,text/more-crlf-utf8bom5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,text/more-lf5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,text/more-lf-utf8bom5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,text/zero-byte0
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,text_auto,eol_crlf/all-crlf4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,text_auto,eol_crlf/all-crlf-utf8bom4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,text_auto,eol_crlf/all-lf5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,text_auto,eol_crlf/all-lf-utf8bom5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,text_auto,eol_crlf/binary-all-crlf4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,text_auto,eol_crlf/binary-all-lf4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,text_auto,eol_crlf/binary-mixed-lf-cr3
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,text_auto,eol_crlf/binary-mixed-lf-cr-crlf3
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,text_auto,eol_crlf/few-utf8-chars-crlf22
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,text_auto,eol_crlf/few-utf8-chars-lf22
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,text_auto,eol_crlf/many-utf8-chars-crlf4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,text_auto,eol_crlf/many-utf8-chars-lf4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,text_auto,eol_crlf/mixed-lf-cr3
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,text_auto,eol_crlf/mixed-lf-cr-crlf3
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,text_auto,eol_crlf/more-crlf5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,text_auto,eol_crlf/more-crlf-utf8bom5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,text_auto,eol_crlf/more-lf5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,text_auto,eol_crlf/more-lf-utf8bom5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,text_auto,eol_crlf/zero-byte0
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,text_auto,eol_lf/all-crlf4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,text_auto,eol_lf/all-crlf-utf8bom4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,text_auto,eol_lf/all-lf5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,text_auto,eol_lf/all-lf-utf8bom5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,text_auto,eol_lf/binary-all-crlf4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,text_auto,eol_lf/binary-all-lf4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,text_auto,eol_lf/binary-mixed-lf-cr3
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,text_auto,eol_lf/binary-mixed-lf-cr-crlf3
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,text_auto,eol_lf/few-utf8-chars-crlf22
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,text_auto,eol_lf/few-utf8-chars-lf22
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,text_auto,eol_lf/many-utf8-chars-crlf4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,text_auto,eol_lf/many-utf8-chars-lf4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,text_auto,eol_lf/mixed-lf-cr3
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,text_auto,eol_lf/mixed-lf-cr-crlf3
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,text_auto,eol_lf/more-crlf5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,text_auto,eol_lf/more-crlf-utf8bom5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,text_auto,eol_lf/more-lf5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,text_auto,eol_lf/more-lf-utf8bom5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,text_auto,eol_lf/zero-byte0
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,text_auto/all-crlf4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,text_auto/all-crlf-utf8bom4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,text_auto/all-lf5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,text_auto/all-lf-utf8bom5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,text_auto/binary-all-crlf4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,text_auto/binary-all-lf4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,text_auto/binary-mixed-lf-cr3
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,text_auto/binary-mixed-lf-cr-crlf3
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,text_auto/few-utf8-chars-crlf22
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,text_auto/few-utf8-chars-lf22
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,text_auto/many-utf8-chars-crlf4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,text_auto/many-utf8-chars-lf4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,text_auto/mixed-lf-cr3
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,text_auto/mixed-lf-cr-crlf3
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,text_auto/more-crlf5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,text_auto/more-crlf-utf8bom5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,text_auto/more-lf5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,text_auto/more-lf-utf8bom5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false,text_auto/zero-byte0
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false/all-crlf4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false/all-crlf-utf8bom4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false/all-lf5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false/all-lf-utf8bom5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false/binary-all-crlf4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false/binary-all-lf4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false/binary-mixed-lf-cr3
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false/binary-mixed-lf-cr-crlf3
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false/few-utf8-chars-crlf22
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false/few-utf8-chars-lf22
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false/many-utf8-chars-crlf4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false/many-utf8-chars-lf4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false/mixed-lf-cr3
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false/mixed-lf-cr-crlf3
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false/more-crlf5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false/more-crlf-utf8bom5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false/more-lf5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false/more-lf-utf8bom5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_false/zero-byte0
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,-crlf/all-crlf4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,-crlf/all-crlf-utf8bom4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,-crlf/all-lf5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,-crlf/all-lf-utf8bom5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,-crlf/binary-all-crlf4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,-crlf/binary-all-lf4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,-crlf/binary-mixed-lf-cr3
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,-crlf/binary-mixed-lf-cr-crlf3
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,-crlf/few-utf8-chars-crlf22
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,-crlf/few-utf8-chars-lf22
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,-crlf/many-utf8-chars-crlf4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,-crlf/many-utf8-chars-lf4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,-crlf/mixed-lf-cr3
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,-crlf/mixed-lf-cr-crlf3
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,-crlf/more-crlf5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,-crlf/more-crlf-utf8bom5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,-crlf/more-lf5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,-crlf/more-lf-utf8bom5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,-crlf/zero-byte0
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,-text/all-crlf4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,-text/all-crlf-utf8bom4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,-text/all-lf5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,-text/all-lf-utf8bom5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,-text/binary-all-crlf4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,-text/binary-all-lf4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,-text/binary-mixed-lf-cr3
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,-text/binary-mixed-lf-cr-crlf3
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,-text/few-utf8-chars-crlf22
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,-text/few-utf8-chars-lf22
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,-text/many-utf8-chars-crlf4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,-text/many-utf8-chars-lf4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,-text/mixed-lf-cr3
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,-text/mixed-lf-cr-crlf3
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,-text/more-crlf5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,-text/more-crlf-utf8bom5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,-text/more-lf5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,-text/more-lf-utf8bom5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,-text/zero-byte0
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,crlf/all-crlf4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,crlf/all-crlf-utf8bom4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,crlf/all-lf5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,crlf/all-lf-utf8bom5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,crlf/binary-all-crlf4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,crlf/binary-all-lf4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,crlf/binary-mixed-lf-cr3
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,crlf/binary-mixed-lf-cr-crlf3
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,crlf/few-utf8-chars-crlf22
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,crlf/few-utf8-chars-lf22
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,crlf/many-utf8-chars-crlf4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,crlf/many-utf8-chars-lf4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,crlf/mixed-lf-cr3
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,crlf/mixed-lf-cr-crlf3
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,crlf/more-crlf5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,crlf/more-crlf-utf8bom5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,crlf/more-lf5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,crlf/more-lf-utf8bom5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,crlf/zero-byte0
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,eol_crlf/all-crlf4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,eol_crlf/all-crlf-utf8bom4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,eol_crlf/all-lf5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,eol_crlf/all-lf-utf8bom5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,eol_crlf/binary-all-crlf4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,eol_crlf/binary-all-lf4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,eol_crlf/binary-mixed-lf-cr3
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,eol_crlf/binary-mixed-lf-cr-crlf3
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,eol_crlf/few-utf8-chars-crlf22
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,eol_crlf/few-utf8-chars-lf22
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,eol_crlf/many-utf8-chars-crlf4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,eol_crlf/many-utf8-chars-lf4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,eol_crlf/mixed-lf-cr3
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,eol_crlf/mixed-lf-cr-crlf3
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,eol_crlf/more-crlf5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,eol_crlf/more-crlf-utf8bom5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,eol_crlf/more-lf5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,eol_crlf/more-lf-utf8bom5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,eol_crlf/zero-byte0
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,eol_lf/all-crlf4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,eol_lf/all-crlf-utf8bom4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,eol_lf/all-lf5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,eol_lf/all-lf-utf8bom5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,eol_lf/binary-all-crlf4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,eol_lf/binary-all-lf4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,eol_lf/binary-mixed-lf-cr3
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,eol_lf/binary-mixed-lf-cr-crlf3
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,eol_lf/few-utf8-chars-crlf22
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,eol_lf/few-utf8-chars-lf22
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,eol_lf/many-utf8-chars-crlf4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,eol_lf/many-utf8-chars-lf4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,eol_lf/mixed-lf-cr3
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,eol_lf/mixed-lf-cr-crlf3
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,eol_lf/more-crlf5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,eol_lf/more-crlf-utf8bom5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,eol_lf/more-lf5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,eol_lf/more-lf-utf8bom5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,eol_lf/zero-byte0
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,text,eol_crlf/all-crlf4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,text,eol_crlf/all-crlf-utf8bom4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,text,eol_crlf/all-lf5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,text,eol_crlf/all-lf-utf8bom5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,text,eol_crlf/binary-all-crlf4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,text,eol_crlf/binary-all-lf4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,text,eol_crlf/binary-mixed-lf-cr3
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,text,eol_crlf/binary-mixed-lf-cr-crlf3
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,text,eol_crlf/few-utf8-chars-crlf22
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,text,eol_crlf/few-utf8-chars-lf22
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,text,eol_crlf/many-utf8-chars-crlf4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,text,eol_crlf/many-utf8-chars-lf4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,text,eol_crlf/mixed-lf-cr3
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,text,eol_crlf/mixed-lf-cr-crlf3
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,text,eol_crlf/more-crlf5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,text,eol_crlf/more-crlf-utf8bom5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,text,eol_crlf/more-lf5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,text,eol_crlf/more-lf-utf8bom5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,text,eol_crlf/zero-byte0
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,text,eol_lf/all-crlf4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,text,eol_lf/all-crlf-utf8bom4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,text,eol_lf/all-lf5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,text,eol_lf/all-lf-utf8bom5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,text,eol_lf/binary-all-crlf4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,text,eol_lf/binary-all-lf4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,text,eol_lf/binary-mixed-lf-cr3
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,text,eol_lf/binary-mixed-lf-cr-crlf3
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,text,eol_lf/few-utf8-chars-crlf22
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,text,eol_lf/few-utf8-chars-lf22
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,text,eol_lf/many-utf8-chars-crlf4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,text,eol_lf/many-utf8-chars-lf4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,text,eol_lf/mixed-lf-cr3
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,text,eol_lf/mixed-lf-cr-crlf3
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,text,eol_lf/more-crlf5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,text,eol_lf/more-crlf-utf8bom5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,text,eol_lf/more-lf5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,text,eol_lf/more-lf-utf8bom5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,text,eol_lf/zero-byte0
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,text/all-crlf4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,text/all-crlf-utf8bom4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,text/all-lf5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,text/all-lf-utf8bom5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,text/binary-all-crlf4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,text/binary-all-lf4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,text/binary-mixed-lf-cr3
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,text/binary-mixed-lf-cr-crlf3
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,text/few-utf8-chars-crlf22
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,text/few-utf8-chars-lf22
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,text/many-utf8-chars-crlf4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,text/many-utf8-chars-lf4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,text/mixed-lf-cr3
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,text/mixed-lf-cr-crlf3
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,text/more-crlf5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,text/more-crlf-utf8bom5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,text/more-lf5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,text/more-lf-utf8bom5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,text/zero-byte0
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,text_auto,eol_crlf/all-crlf4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,text_auto,eol_crlf/all-crlf-utf8bom4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,text_auto,eol_crlf/all-lf5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,text_auto,eol_crlf/all-lf-utf8bom5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,text_auto,eol_crlf/binary-all-crlf4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,text_auto,eol_crlf/binary-all-lf4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,text_auto,eol_crlf/binary-mixed-lf-cr3
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,text_auto,eol_crlf/binary-mixed-lf-cr-crlf3
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,text_auto,eol_crlf/few-utf8-chars-crlf22
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,text_auto,eol_crlf/few-utf8-chars-lf22
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,text_auto,eol_crlf/many-utf8-chars-crlf4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,text_auto,eol_crlf/many-utf8-chars-lf4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,text_auto,eol_crlf/mixed-lf-cr3
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,text_auto,eol_crlf/mixed-lf-cr-crlf3
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,text_auto,eol_crlf/more-crlf5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,text_auto,eol_crlf/more-crlf-utf8bom5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,text_auto,eol_crlf/more-lf5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,text_auto,eol_crlf/more-lf-utf8bom5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,text_auto,eol_crlf/zero-byte0
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,text_auto,eol_lf/all-crlf4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,text_auto,eol_lf/all-crlf-utf8bom4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,text_auto,eol_lf/all-lf5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,text_auto,eol_lf/all-lf-utf8bom5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,text_auto,eol_lf/binary-all-crlf4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,text_auto,eol_lf/binary-all-lf4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,text_auto,eol_lf/binary-mixed-lf-cr3
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,text_auto,eol_lf/binary-mixed-lf-cr-crlf3
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,text_auto,eol_lf/few-utf8-chars-crlf22
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,text_auto,eol_lf/few-utf8-chars-lf22
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,text_auto,eol_lf/many-utf8-chars-crlf4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,text_auto,eol_lf/many-utf8-chars-lf4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,text_auto,eol_lf/mixed-lf-cr3
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,text_auto,eol_lf/mixed-lf-cr-crlf3
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,text_auto,eol_lf/more-crlf5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,text_auto,eol_lf/more-crlf-utf8bom5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,text_auto,eol_lf/more-lf5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,text_auto,eol_lf/more-lf-utf8bom5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,text_auto,eol_lf/zero-byte0
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,text_auto/all-crlf4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,text_auto/all-crlf-utf8bom4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,text_auto/all-lf5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,text_auto/all-lf-utf8bom5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,text_auto/binary-all-crlf4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,text_auto/binary-all-lf4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,text_auto/binary-mixed-lf-cr3
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,text_auto/binary-mixed-lf-cr-crlf3
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,text_auto/few-utf8-chars-crlf22
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,text_auto/few-utf8-chars-lf22
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,text_auto/many-utf8-chars-crlf4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,text_auto/many-utf8-chars-lf4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,text_auto/mixed-lf-cr3
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,text_auto/mixed-lf-cr-crlf3
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,text_auto/more-crlf5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,text_auto/more-crlf-utf8bom5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,text_auto/more-lf5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,text_auto/more-lf-utf8bom5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input,text_auto/zero-byte0
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input/all-crlf4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input/all-crlf-utf8bom4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input/all-lf5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input/all-lf-utf8bom5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input/binary-all-crlf4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input/binary-all-lf4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input/binary-mixed-lf-cr3
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input/binary-mixed-lf-cr-crlf3
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input/few-utf8-chars-crlf22
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input/few-utf8-chars-lf22
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input/many-utf8-chars-crlf4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input/many-utf8-chars-lf4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input/mixed-lf-cr3
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input/mixed-lf-cr-crlf3
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input/more-crlf5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input/more-crlf-utf8bom5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input/more-lf5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input/more-lf-utf8bom5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_input/zero-byte0
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,-crlf/all-crlf4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,-crlf/all-crlf-utf8bom4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,-crlf/all-lf5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,-crlf/all-lf-utf8bom5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,-crlf/binary-all-crlf4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,-crlf/binary-all-lf4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,-crlf/binary-mixed-lf-cr3
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,-crlf/binary-mixed-lf-cr-crlf3
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,-crlf/few-utf8-chars-crlf22
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,-crlf/few-utf8-chars-lf22
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,-crlf/many-utf8-chars-crlf4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,-crlf/many-utf8-chars-lf4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,-crlf/mixed-lf-cr3
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,-crlf/mixed-lf-cr-crlf3
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,-crlf/more-crlf5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,-crlf/more-crlf-utf8bom5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,-crlf/more-lf5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,-crlf/more-lf-utf8bom5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,-crlf/zero-byte0
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,-text/all-crlf4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,-text/all-crlf-utf8bom4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,-text/all-lf5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,-text/all-lf-utf8bom5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,-text/binary-all-crlf4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,-text/binary-all-lf4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,-text/binary-mixed-lf-cr3
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,-text/binary-mixed-lf-cr-crlf3
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,-text/few-utf8-chars-crlf22
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,-text/few-utf8-chars-lf22
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,-text/many-utf8-chars-crlf4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,-text/many-utf8-chars-lf4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,-text/mixed-lf-cr3
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,-text/mixed-lf-cr-crlf3
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,-text/more-crlf5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,-text/more-crlf-utf8bom5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,-text/more-lf5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,-text/more-lf-utf8bom5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,-text/zero-byte0
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,crlf/all-crlf4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,crlf/all-crlf-utf8bom4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,crlf/all-lf5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,crlf/all-lf-utf8bom5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,crlf/binary-all-crlf4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,crlf/binary-all-lf4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,crlf/binary-mixed-lf-cr3
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,crlf/binary-mixed-lf-cr-crlf3
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,crlf/few-utf8-chars-crlf22
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,crlf/few-utf8-chars-lf22
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,crlf/many-utf8-chars-crlf4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,crlf/many-utf8-chars-lf4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,crlf/mixed-lf-cr3
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,crlf/mixed-lf-cr-crlf3
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,crlf/more-crlf5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,crlf/more-crlf-utf8bom5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,crlf/more-lf5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,crlf/more-lf-utf8bom5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,crlf/zero-byte0
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,eol_crlf/all-crlf4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,eol_crlf/all-crlf-utf8bom4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,eol_crlf/all-lf5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,eol_crlf/all-lf-utf8bom5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,eol_crlf/binary-all-crlf4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,eol_crlf/binary-all-lf4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,eol_crlf/binary-mixed-lf-cr3
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,eol_crlf/binary-mixed-lf-cr-crlf3
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,eol_crlf/few-utf8-chars-crlf22
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,eol_crlf/few-utf8-chars-lf22
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,eol_crlf/many-utf8-chars-crlf4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,eol_crlf/many-utf8-chars-lf4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,eol_crlf/mixed-lf-cr3
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,eol_crlf/mixed-lf-cr-crlf3
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,eol_crlf/more-crlf5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,eol_crlf/more-crlf-utf8bom5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,eol_crlf/more-lf5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,eol_crlf/more-lf-utf8bom5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,eol_crlf/zero-byte0
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,eol_lf/all-crlf4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,eol_lf/all-crlf-utf8bom4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,eol_lf/all-lf5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,eol_lf/all-lf-utf8bom5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,eol_lf/binary-all-crlf4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,eol_lf/binary-all-lf4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,eol_lf/binary-mixed-lf-cr3
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,eol_lf/binary-mixed-lf-cr-crlf3
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,eol_lf/few-utf8-chars-crlf22
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,eol_lf/few-utf8-chars-lf22
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,eol_lf/many-utf8-chars-crlf4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,eol_lf/many-utf8-chars-lf4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,eol_lf/mixed-lf-cr3
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,eol_lf/mixed-lf-cr-crlf3
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,eol_lf/more-crlf5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,eol_lf/more-crlf-utf8bom5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,eol_lf/more-lf5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,eol_lf/more-lf-utf8bom5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,eol_lf/zero-byte0
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,text,eol_crlf/all-crlf4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,text,eol_crlf/all-crlf-utf8bom4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,text,eol_crlf/all-lf5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,text,eol_crlf/all-lf-utf8bom5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,text,eol_crlf/binary-all-crlf4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,text,eol_crlf/binary-all-lf4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,text,eol_crlf/binary-mixed-lf-cr3
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,text,eol_crlf/binary-mixed-lf-cr-crlf3
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,text,eol_crlf/few-utf8-chars-crlf22
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,text,eol_crlf/few-utf8-chars-lf22
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,text,eol_crlf/many-utf8-chars-crlf4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,text,eol_crlf/many-utf8-chars-lf4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,text,eol_crlf/mixed-lf-cr3
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,text,eol_crlf/mixed-lf-cr-crlf3
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,text,eol_crlf/more-crlf5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,text,eol_crlf/more-crlf-utf8bom5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,text,eol_crlf/more-lf5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,text,eol_crlf/more-lf-utf8bom5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,text,eol_crlf/zero-byte0
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,text,eol_lf/all-crlf4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,text,eol_lf/all-crlf-utf8bom4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,text,eol_lf/all-lf5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,text,eol_lf/all-lf-utf8bom5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,text,eol_lf/binary-all-crlf4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,text,eol_lf/binary-all-lf4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,text,eol_lf/binary-mixed-lf-cr3
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,text,eol_lf/binary-mixed-lf-cr-crlf3
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,text,eol_lf/few-utf8-chars-crlf22
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,text,eol_lf/few-utf8-chars-lf22
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,text,eol_lf/many-utf8-chars-crlf4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,text,eol_lf/many-utf8-chars-lf4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,text,eol_lf/mixed-lf-cr3
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,text,eol_lf/mixed-lf-cr-crlf3
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,text,eol_lf/more-crlf5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,text,eol_lf/more-crlf-utf8bom5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,text,eol_lf/more-lf5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,text,eol_lf/more-lf-utf8bom5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,text,eol_lf/zero-byte0
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,text/all-crlf4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,text/all-crlf-utf8bom4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,text/all-lf5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,text/all-lf-utf8bom5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,text/binary-all-crlf4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,text/binary-all-lf4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,text/binary-mixed-lf-cr3
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,text/binary-mixed-lf-cr-crlf3
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,text/few-utf8-chars-crlf22
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,text/few-utf8-chars-lf22
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,text/many-utf8-chars-crlf4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,text/many-utf8-chars-lf4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,text/mixed-lf-cr3
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,text/mixed-lf-cr-crlf3
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,text/more-crlf5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,text/more-crlf-utf8bom5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,text/more-lf5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,text/more-lf-utf8bom5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,text/zero-byte0
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,text_auto,eol_crlf/all-crlf4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,text_auto,eol_crlf/all-crlf-utf8bom4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,text_auto,eol_crlf/all-lf5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,text_auto,eol_crlf/all-lf-utf8bom5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,text_auto,eol_crlf/binary-all-crlf4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,text_auto,eol_crlf/binary-all-lf4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,text_auto,eol_crlf/binary-mixed-lf-cr3
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,text_auto,eol_crlf/binary-mixed-lf-cr-crlf3
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,text_auto,eol_crlf/few-utf8-chars-crlf22
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,text_auto,eol_crlf/few-utf8-chars-lf22
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,text_auto,eol_crlf/many-utf8-chars-crlf4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,text_auto,eol_crlf/many-utf8-chars-lf4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,text_auto,eol_crlf/mixed-lf-cr3
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,text_auto,eol_crlf/mixed-lf-cr-crlf3
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,text_auto,eol_crlf/more-crlf5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,text_auto,eol_crlf/more-crlf-utf8bom5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,text_auto,eol_crlf/more-lf5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,text_auto,eol_crlf/more-lf-utf8bom5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,text_auto,eol_crlf/zero-byte0
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,text_auto,eol_lf/all-crlf4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,text_auto,eol_lf/all-crlf-utf8bom4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,text_auto,eol_lf/all-lf5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,text_auto,eol_lf/all-lf-utf8bom5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,text_auto,eol_lf/binary-all-crlf4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,text_auto,eol_lf/binary-all-lf4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,text_auto,eol_lf/binary-mixed-lf-cr3
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,text_auto,eol_lf/binary-mixed-lf-cr-crlf3
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,text_auto,eol_lf/few-utf8-chars-crlf22
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,text_auto,eol_lf/few-utf8-chars-lf22
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,text_auto,eol_lf/many-utf8-chars-crlf4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,text_auto,eol_lf/many-utf8-chars-lf4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,text_auto,eol_lf/mixed-lf-cr3
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,text_auto,eol_lf/mixed-lf-cr-crlf3
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,text_auto,eol_lf/more-crlf5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,text_auto,eol_lf/more-crlf-utf8bom5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,text_auto,eol_lf/more-lf5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,text_auto,eol_lf/more-lf-utf8bom5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,text_auto,eol_lf/zero-byte0
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,text_auto/all-crlf4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,text_auto/all-crlf-utf8bom4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,text_auto/all-lf5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,text_auto/all-lf-utf8bom5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,text_auto/binary-all-crlf4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,text_auto/binary-all-lf4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,text_auto/binary-mixed-lf-cr3
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,text_auto/binary-mixed-lf-cr-crlf3
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,text_auto/few-utf8-chars-crlf22
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,text_auto/few-utf8-chars-lf22
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,text_auto/many-utf8-chars-crlf4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,text_auto/many-utf8-chars-lf4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,text_auto/mixed-lf-cr3
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,text_auto/mixed-lf-cr-crlf3
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,text_auto/more-crlf5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,text_auto/more-crlf-utf8bom5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,text_auto/more-lf5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,text_auto/more-lf-utf8bom5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true,text_auto/zero-byte0
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true/all-crlf4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true/all-crlf-utf8bom4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true/all-lf5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true/all-lf-utf8bom5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true/binary-all-crlf4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true/binary-all-lf4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true/binary-mixed-lf-cr3
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true/binary-mixed-lf-cr-crlf3
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true/few-utf8-chars-crlf22
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true/few-utf8-chars-lf22
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true/many-utf8-chars-crlf4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true/many-utf8-chars-lf4
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true/mixed-lf-cr3
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true/mixed-lf-cr-crlf3
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true/more-crlf5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true/more-crlf-utf8bom5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true/more-lf5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true/more-lf-utf8bom5
-rw-r--r--tests/resources/crlf_data/windows/autocrlf_true/zero-byte0
-rw-r--r--tests/stash/foreach.c20
-rw-r--r--tests/stash/save.c12
-rw-r--r--tests/stash/stash_helpers.c5
-rw-r--r--tests/status/worktree.c2
1444 files changed, 9365 insertions, 291 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md
index a8e3e18ac..86f995545 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -69,6 +69,12 @@ support for HTTPS connections insead of OpenSSL.
and `git_diff_buffers` now accept a new binary callback of type
`git_diff_binary_cb` that includes the binary diff information.
+* The race condition mitigations described in `racy-git.txt` have been
+ implemented.
+
+* If libcurl is installed, we will use it to connect to HTTP(S)
+ servers.
+
### API additions
* The `git_merge_options` gained a `file_flags` member.
@@ -140,6 +146,9 @@ support for HTTPS connections insead of OpenSSL.
* `git_filter_list_contains` will indicate whether a particular
filter will be run in the given filter list.
+* `git_commit_header_field()` has been added, which allows retrieving
+ the contents of an arbitrary header field.
+
### API removals
* `git_remote_save()` and `git_remote_clear_refspecs()` have been
diff --git a/CMakeLists.txt b/CMakeLists.txt
index cecccb331..012814e7a 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -38,6 +38,7 @@ OPTION( USE_ICONV "Link with and use iconv library" OFF )
OPTION( USE_SSH "Link with libssh to enable SSH support" ON )
OPTION( USE_GSSAPI "Link with libgssapi for SPNEGO auth" OFF )
OPTION( VALGRIND "Configure build for valgrind" OFF )
+OPTION( CURL "User curl for HTTP if available" ON)
IF(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
SET( USE_ICONV ON )
@@ -199,10 +200,20 @@ IF (WIN32 AND WINHTTP)
LINK_LIBRARIES(winhttp rpcrt4 crypt32)
ELSE ()
+ IF (CURL)
+ FIND_PACKAGE(CURL)
+ ENDIF ()
+
IF (NOT AMIGA AND USE_OPENSSL)
FIND_PACKAGE(OpenSSL)
ENDIF ()
+ IF (CURL_FOUND)
+ ADD_DEFINITIONS(-DGIT_CURL)
+ INCLUDE_DIRECTORIES(${CURL_INCLUDE_DIRS})
+ LINK_LIBRARIES(${CURL_LIBRARIES})
+ ENDIF()
+
FIND_PACKAGE(HTTP_Parser)
IF (HTTP_PARSER_FOUND AND HTTP_PARSER_VERSION_MAJOR EQUAL 2)
INCLUDE_DIRECTORIES(${HTTP_PARSER_INCLUDE_DIRS})
diff --git a/THREADING.md b/THREADING.md
index cf7ac1ff0..3717d6c88 100644
--- a/THREADING.md
+++ b/THREADING.md
@@ -47,9 +47,14 @@ you.
On Mac OS X
-----------
-On OS X, the library makes use of CommonCrypto and SecureTransport for
-cryptographic support. These are thread-safe and you do not need to do
-anything special.
+By default we use libcurl to perform the encryption. The
+system-provided libcurl uses SecureTransport, so no special steps are
+necessary. If you link against another libcurl (e.g. from homebrew)
+refer to the general case.
+
+If the option to use libcurl was deactivated, the library makes use of
+CommonCrypto and SecureTransport for cryptographic support. These are
+thread-safe and you do not need to do anything special.
Note that libssh2 may still use OpenSSL itself. In that case, the
general case still affects you if you use ssh.
@@ -57,12 +62,15 @@ general case still affects you if you use ssh.
General Case
------------
-On the rest of the platforms, libgit2 uses OpenSSL to be able to use
-HTTPS as a transport. This library is made to be thread-implementation
-agnostic, and the users of the library must set which locking function
-it should use. This means that libgit2 cannot know what to set as the
-user of libgit2 may use OpenSSL independently and the locking settings
-must survive libgit2 shutting down.
+By default we use libcurl, which has its own ![recommendations for
+thread safety](http://curl.haxx.se/libcurl/c/libcurl-tutorial.html#Multi-threading).
+
+If libcurl was not found or was disabled, libgit2 uses OpenSSL to be
+able to use HTTPS as a transport. This library is made to be
+thread-implementation agnostic, and the users of the library must set
+which locking function it should use. This means that libgit2 cannot
+know what to set as the user of libgit2 may use OpenSSL independently
+and the locking settings must survive libgit2 shutting down.
libgit2 does provide a last-resort convenience function
`git_openssl_set_locking()` (available in `sys/openssl.h`) to use the
diff --git a/include/git2/commit.h b/include/git2/commit.h
index fb53a701b..04711c1fa 100644
--- a/include/git2/commit.h
+++ b/include/git2/commit.h
@@ -240,6 +240,17 @@ GIT_EXTERN(int) git_commit_nth_gen_ancestor(
unsigned int n);
/**
+ * Get an arbitrary header field
+ *
+ * @param out the buffer to fill
+ * @param commit the commit to look in
+ * @param field the header field to return
+ * @return 0 on succeess, GIT_ENOTFOUND if the field does not exist,
+ * or an error code
+ */
+GIT_EXTERN(int) git_commit_header_field(git_buf *out, const git_commit *commit, const char *field);
+
+/**
* Create new commit in the repository from a list of `git_object` pointers
*
* The message will **not** be cleaned up automatically. You can do that
diff --git a/include/git2/describe.h b/include/git2/describe.h
index d01a3f74c..3044d9165 100644
--- a/include/git2/describe.h
+++ b/include/git2/describe.h
@@ -94,7 +94,7 @@ typedef struct {
* If the workdir is dirty and this is set, this string will
* be appended to the description string.
*/
- char *dirty_suffix;
+ const char *dirty_suffix;
} git_describe_format_options;
#define GIT_DESCRIBE_FORMAT_OPTIONS_VERSION 1
diff --git a/include/git2/sys/stream.h b/include/git2/sys/stream.h
index c22179fab..55a714bbb 100644
--- a/include/git2/sys/stream.h
+++ b/include/git2/sys/stream.h
@@ -29,8 +29,10 @@ typedef struct git_stream {
int version;
int encrypted;
+ int proxy_support;
int (*connect)(struct git_stream *);
int (*certificate)(git_cert **, struct git_stream *);
+ int (*set_proxy)(struct git_stream *, const char *proxy_url);
ssize_t (*read)(struct git_stream *, void *, size_t);
ssize_t (*write)(struct git_stream *, const char *, size_t, int);
int (*close)(struct git_stream *);
diff --git a/include/git2/types.h b/include/git2/types.h
index 3da0d4a26..e975c6097 100644
--- a/include/git2/types.h
+++ b/include/git2/types.h
@@ -284,6 +284,11 @@ typedef int (*git_transport_message_cb)(const char *str, int len, void *payload)
* Type of host certificate structure that is passed to the check callback
*/
typedef enum git_cert_t {
+ /**
+ * No information about the certificate is available. This may
+ * happen when using curl.
+ */
+ GIT_CERT_NONE,
/**
* The `data` argument to the callback will be a pointer to
* the DER-encoded data.
@@ -294,6 +299,13 @@ typedef enum git_cert_t {
* `git_cert_hostkey` structure.
*/
GIT_CERT_HOSTKEY_LIBSSH2,
+ /**
+ * The `data` argument to the callback will be a pointer to a
+ * `git_strarray` with `name:content` strings containing
+ * information about the certificate. This is used when using
+ * curl.
+ */
+ GIT_CERT_STRARRAY,
} git_cert_t;
/**
diff --git a/src/buf_text.c b/src/buf_text.c
index 864e39cab..7e6779d2d 100644
--- a/src/buf_text.c
+++ b/src/buf_text.c
@@ -131,17 +131,15 @@ int git_buf_text_lf_to_crlf(git_buf *tgt, const git_buf *src)
for (; next; scan = next + 1, next = memchr(scan, '\n', end - scan)) {
size_t copylen = next - scan;
- /* if we find mixed line endings, bail */
- if (next > start && next[-1] == '\r') {
- git_buf_free(tgt);
- return GIT_PASSTHROUGH;
- }
+ /* if we find mixed line endings, carry on */
+ if (copylen && next[-1] == '\r')
+ copylen--;
GITERR_CHECK_ALLOC_ADD(&alloclen, copylen, 3);
if (git_buf_grow_by(tgt, alloclen) < 0)
return -1;
- if (next > scan) {
+ if (copylen) {
memcpy(tgt->ptr + tgt->size, scan, copylen);
tgt->size += copylen;
}
diff --git a/src/buf_text.h b/src/buf_text.h
index e753a0244..c9c55af89 100644
--- a/src/buf_text.h
+++ b/src/buf_text.h
@@ -58,8 +58,7 @@ extern void git_buf_text_unescape(git_buf *buf);
/**
* Replace all \r\n with \n.
*
- * @return 0 on success, -1 on memory error, GIT_PASSTHROUGH if the
- * source buffer has mixed line endings.
+ * @return 0 on success, -1 on memory error
*/
extern int git_buf_text_crlf_to_lf(git_buf *tgt, const git_buf *src);
diff --git a/src/commit.c b/src/commit.c
index ce13bdb85..616f947db 100644
--- a/src/commit.c
+++ b/src/commit.c
@@ -518,3 +518,58 @@ int git_commit_nth_gen_ancestor(
*ancestor = parent;
return 0;
}
+
+int git_commit_header_field(git_buf *out, const git_commit *commit, const char *field)
+{
+ const char *buf = commit->raw_header;
+ const char *h, *eol;
+
+ git_buf_sanitize(out);
+ while ((h = strchr(buf, '\n')) && h[1] != '\0' && h[1] != '\n') {
+ h++;
+ if (git__prefixcmp(h, field)) {
+ buf = h;
+ continue;
+ }
+
+ h += strlen(field);
+ eol = strchr(h, '\n');
+ if (h[0] != ' ') {
+ buf = h;
+ continue;
+ }
+ if (!eol)
+ goto malformed;
+
+ h++; /* skip the SP */
+
+ git_buf_put(out, h, eol - h);
+ if (git_buf_oom(out))
+ goto oom;
+
+ /* If the next line starts with SP, it's multi-line, we must continue */
+ while (eol[1] == ' ') {
+ git_buf_putc(out, '\n');
+ h = eol + 2;
+ eol = strchr(h, '\n');
+ if (!eol)
+ goto malformed;
+
+ git_buf_put(out, h, eol - h);
+ }
+
+ if (git_buf_oom(out))
+ goto oom;
+
+ return 0;
+ }
+
+ return GIT_ENOTFOUND;
+
+malformed:
+ giterr_set(GITERR_OBJECT, "malformed header");
+ return -1;
+oom:
+ giterr_set_oom();
+ return -1;
+}
diff --git a/src/crlf.c b/src/crlf.c
index b5d1dbf32..f391137c1 100644
--- a/src/crlf.c
+++ b/src/crlf.c
@@ -193,28 +193,29 @@ static const char *line_ending(struct crlf_attrs *ca)
case GIT_CRLF_CRLF:
return "\r\n";
+ case GIT_CRLF_GUESS:
+ if (ca->auto_crlf == GIT_AUTO_CRLF_FALSE)
+ return "\n";
+ break;
+
case GIT_CRLF_AUTO:
case GIT_CRLF_TEXT:
- case GIT_CRLF_GUESS:
break;
default:
goto line_ending_error;
}
- switch (ca->eol) {
- case GIT_EOL_UNSET:
- return GIT_EOL_NATIVE == GIT_EOL_CRLF ? "\r\n" : "\n";
-
- case GIT_EOL_CRLF:
+ if (ca->auto_crlf == GIT_AUTO_CRLF_TRUE)
return "\r\n";
-
- case GIT_EOL_LF:
+ else if (ca->auto_crlf == GIT_AUTO_CRLF_INPUT)
return "\n";
-
- default:
- goto line_ending_error;
- }
+ else if (ca->eol == GIT_EOL_UNSET)
+ return GIT_EOL_NATIVE == GIT_EOL_CRLF ? "\r\n" : "\n";
+ else if (ca->eol == GIT_EOL_LF)
+ return "\n";
+ else if (ca->eol == GIT_EOL_CRLF)
+ return "\r\n";
line_ending_error:
giterr_set(GITERR_INVALID, "Invalid input to line ending filter");
@@ -224,16 +225,14 @@ line_ending_error:
static int crlf_apply_to_workdir(
struct crlf_attrs *ca, git_buf *to, const git_buf *from)
{
+ git_buf_text_stats stats;
const char *workdir_ending = NULL;
+ bool is_binary;
/* Empty file? Nothing to do. */
if (git_buf_len(from) == 0)
return 0;
- /* Don't filter binary files */
- if (git_buf_text_is_binary(from))
- return GIT_PASSTHROUGH;
-
/* Determine proper line ending */
workdir_ending = line_ending(ca);
if (!workdir_ending)
@@ -243,6 +242,29 @@ static int crlf_apply_to_workdir(
if (strcmp(workdir_ending, "\r\n") != 0)
return GIT_PASSTHROUGH;
+ /* If there are no LFs, or all LFs are part of a CRLF, nothing to do */
+ is_binary = git_buf_text_gather_stats(&stats, from, false);
+
+ if (stats.lf == 0 || stats.lf == stats.crlf)
+ return GIT_PASSTHROUGH;
+
+ if (ca->crlf_action == GIT_CRLF_AUTO ||
+ ca->crlf_action == GIT_CRLF_GUESS) {
+
+ /* If we have any existing CR or CRLF line endings, do nothing */
+ if (ca->crlf_action == GIT_CRLF_GUESS &&
+ stats.cr > 0 && stats.crlf > 0)
+ return GIT_PASSTHROUGH;
+
+ /* If we have bare CR characters, do nothing */
+ if (stats.cr != stats.crlf)
+ return GIT_PASSTHROUGH;
+
+ /* Don't filter binary files */
+ if (is_binary)
+ return GIT_PASSTHROUGH;
+ }
+
return git_buf_text_lf_to_crlf(to, from);
}
@@ -278,7 +300,7 @@ static int crlf_check(
return GIT_PASSTHROUGH;
if (ca.crlf_action == GIT_CRLF_GUESS ||
- (ca.crlf_action == GIT_CRLF_AUTO &&
+ ((ca.crlf_action == GIT_CRLF_AUTO || ca.crlf_action == GIT_CRLF_TEXT) &&
git_filter_source_mode(src) == GIT_FILTER_SMUDGE)) {
error = git_repository__cvar(
diff --git a/src/curl_stream.c b/src/curl_stream.c
new file mode 100644
index 000000000..6534bdbbe
--- /dev/null
+++ b/src/curl_stream.c
@@ -0,0 +1,257 @@
+/*
+ * Copyright (C) the libgit2 contributors. All rights reserved.
+ *
+ * This file is part of libgit2, distributed under the GNU GPL v2 with
+ * a Linking Exception. For full terms see the included COPYING file.
+ */
+
+#ifdef GIT_CURL
+
+#include <curl/curl.h>
+
+#include "stream.h"
+#include "git2/transport.h"
+#include "buffer.h"
+#include "vector.h"
+
+typedef struct {
+ git_stream parent;
+ CURL *handle;
+ curl_socket_t socket;
+ char curl_error[CURL_ERROR_SIZE + 1];
+ git_cert_x509 cert_info;
+ git_strarray cert_info_strings;
+} curl_stream;
+
+static int seterr_curl(curl_stream *s)
+{
+ giterr_set(GITERR_NET, "curl error: %s\n", s->curl_error);
+ return -1;
+}
+
+static int curls_connect(git_stream *stream)
+{
+ curl_stream *s = (curl_stream *) stream;
+ long sockextr;
+ int failed_cert = 0;
+ CURLcode res;
+ res = curl_easy_perform(s->handle);
+
+ if (res != CURLE_OK && res != CURLE_PEER_FAILED_VERIFICATION)
+ return seterr_curl(s);
+ if (res == CURLE_PEER_FAILED_VERIFICATION)
+ failed_cert = 1;
+
+ if ((res = curl_easy_getinfo(s->handle, CURLINFO_LASTSOCKET, &sockextr)) != CURLE_OK)
+ return seterr_curl(s);
+
+ s->socket = sockextr;
+
+ if (s->parent.encrypted && failed_cert)
+ return GIT_ECERTIFICATE;
+
+ return 0;
+}
+
+static int curls_certificate(git_cert **out, git_stream *stream)
+{
+ int error;
+ CURLcode res;
+ struct curl_slist *slist;
+ struct curl_certinfo *certinfo;
+ git_vector strings = GIT_VECTOR_INIT;
+ curl_stream *s = (curl_stream *) stream;
+
+ if ((res = curl_easy_getinfo(s->handle, CURLINFO_CERTINFO, &certinfo)) != CURLE_OK)
+ return seterr_curl(s);
+
+ /* No information is available, can happen with SecureTransport */
+ if (certinfo->num_of_certs == 0) {
+ s->cert_info.cert_type = GIT_CERT_NONE;
+ s->cert_info.data = NULL;
+ s->cert_info.len = 0;
+ return 0;
+ }
+
+ if ((error = git_vector_init(&strings, 8, NULL)) < 0)
+ return error;
+
+ for (slist = certinfo->certinfo[0]; slist; slist = slist->next) {
+ char *str = git__strdup(slist->data);
+ GITERR_CHECK_ALLOC(str);
+ }
+
+ /* Copy the contents of the vector into a strarray so we can expose them */
+ s->cert_info_strings.strings = (char **) strings.contents;
+ s->cert_info_strings.count = strings.length;
+
+ s->cert_info.cert_type = GIT_CERT_STRARRAY;
+ s->cert_info.data = &s->cert_info_strings;
+ s->cert_info.len = strings.length;
+
+ *out = (git_cert *) &s->cert_info;
+
+ return 0;
+}
+
+static int curls_set_proxy(git_stream *stream, const char *proxy_url)
+{
+ CURLcode res;
+ curl_stream *s = (curl_stream *) stream;
+
+ if ((res = curl_easy_setopt(s->handle, CURLOPT_PROXY, proxy_url)) != CURLE_OK)
+ return seterr_curl(s);
+
+ return 0;
+}
+
+static int wait_for(curl_socket_t fd, bool reading)
+{
+ int ret;
+ fd_set infd, outfd, errfd;
+
+ FD_ZERO(&infd);
+ FD_ZERO(&outfd);
+ FD_ZERO(&errfd);
+
+ FD_SET(fd, &errfd);
+ if (reading)
+ FD_SET(fd, &infd);
+ else
+ FD_SET(fd, &outfd);
+
+ if ((ret = select(fd + 1, &infd, &outfd, &errfd, NULL)) < 0) {
+ giterr_set(GITERR_OS, "error in select");
+ return -1;
+ }
+
+ return 0;
+}
+
+static ssize_t curls_write(git_stream *stream, const char *data, size_t len, int flags)
+{
+ int error;
+ size_t off = 0, sent;
+ CURLcode res;
+ curl_stream *s = (curl_stream *) stream;
+
+ GIT_UNUSED(flags);
+
+ do {
+ if ((error = wait_for(s->socket, false)) < 0)
+ return error;
+
+ res = curl_easy_send(s->handle, data + off, len - off, &sent);
+ if (res == CURLE_OK)
+ off += sent;
+ } while ((res == CURLE_OK || res == CURLE_AGAIN) && off < len);
+
+ if (res != CURLE_OK)
+ return seterr_curl(s);
+
+ return len;
+}
+
+static ssize_t curls_read(git_stream *stream, void *data, size_t len)
+{
+ int error;
+ size_t read;
+ CURLcode res;
+ curl_stream *s = (curl_stream *) stream;
+
+ do {
+ if ((error = wait_for(s->socket, true)) < 0)
+ return error;
+
+ res = curl_easy_recv(s->handle, data, len, &read);
+ } while (res == CURLE_AGAIN);
+
+ if (res != CURLE_OK)
+ return seterr_curl(s);
+
+ return read;
+}
+
+static int curls_close(git_stream *stream)
+{
+ curl_stream *s = (curl_stream *) stream;
+
+ if (!s->handle)
+ return 0;
+
+ curl_easy_cleanup(s->handle);
+ s->handle = NULL;
+ s->socket = 0;
+
+ return 0;
+}
+
+static void curls_free(git_stream *stream)
+{
+ curl_stream *s = (curl_stream *) stream;
+
+ curls_close(stream);
+ git_strarray_free(&s->cert_info_strings);
+ git__free(s);
+}
+
+int git_curl_stream_new(git_stream **out, const char *host, const char *port)
+{
+ curl_stream *st;
+ CURL *handle;
+ int iport = 0, error;
+
+ st = git__calloc(1, sizeof(curl_stream));
+ GITERR_CHECK_ALLOC(st);
+
+ handle = curl_easy_init();
+ if (handle == NULL) {
+ giterr_set(GITERR_NET, "failed to create curl handle");
+ return -1;
+ }
+
+ if ((error = git__strtol32(&iport, port, NULL, 10)) < 0)
+ return error;
+
+ curl_easy_setopt(handle, CURLOPT_URL, host);
+ curl_easy_setopt(handle, CURLOPT_ERRORBUFFER, st->curl_error);
+ curl_easy_setopt(handle, CURLOPT_PORT, iport);
+ curl_easy_setopt(handle, CURLOPT_CONNECT_ONLY, 1);
+ curl_easy_setopt(handle, CURLOPT_SSL_VERIFYPEER, 1);
+ curl_easy_setopt(handle, CURLOPT_CERTINFO, 1);
+ curl_easy_setopt(handle, CURLOPT_HTTPPROXYTUNNEL, 1);
+
+ /* curl_easy_setopt(handle, CURLOPT_VERBOSE, 1); */
+
+ st->parent.version = GIT_STREAM_VERSION;
+ st->parent.encrypted = 0; /* we don't encrypt ourselves */
+ st->parent.proxy_support = 1;
+ st->parent.connect = curls_connect;
+ st->parent.certificate = curls_certificate;
+ st->parent.set_proxy = curls_set_proxy;
+ st->parent.read = curls_read;
+ st->parent.write = curls_write;
+ st->parent.close = curls_close;
+ st->parent.free = curls_free;
+ st->handle = handle;
+
+ *out = (git_stream *) st;
+ return 0;
+}
+
+#else
+
+#include "stream.h"
+
+int git_curl_stream_new(git_stream **out, const char *host, const char *port)
+{
+ GIT_UNUSED(out);
+ GIT_UNUSED(host);
+ GIT_UNUSED(port);
+
+ giterr_set(GITERR_NET, "curl is not supported in this version");
+ return -1;
+}
+
+
+#endif
diff --git a/src/curl_stream.h b/src/curl_stream.h
new file mode 100644
index 000000000..283f0fe40
--- /dev/null
+++ b/src/curl_stream.h
@@ -0,0 +1,14 @@
+/*
+ * Copyright (C) the libgit2 contributors. All rights reserved.
+ *
+ * This file is part of libgit2, distributed under the GNU GPL v2 with
+ * a Linking Exception. For full terms see the included COPYING file.
+ */
+#ifndef INCLUDE_curl_stream_h__
+#define INCLUDE_curl_stream_h__
+
+#include "git2/sys/stream.h"
+
+extern int git_curl_stream_new(git_stream **out, const char *host, const char *port);
+
+#endif
diff --git a/src/diff.c b/src/diff.c
index d7365ef77..12d34a184 100644
--- a/src/diff.c
+++ b/src/diff.c
@@ -816,11 +816,11 @@ static int maybe_modified(
} else if (git_oid_iszero(&nitem->id) && new_is_workdir) {
bool use_ctime = ((diff->diffcaps & GIT_DIFFCAPS_TRUST_CTIME) != 0);
bool use_nanos = ((diff->diffcaps & GIT_DIFFCAPS_TRUST_NANOSECS) != 0);
+ git_index *index;
+ git_iterator_index(&index, info->new_iter);
status = GIT_DELTA_UNMODIFIED;
- /* TODO: add check against index file st_mtime to avoid racy-git */
-
if (S_ISGITLINK(nmode)) {
if ((error = maybe_modified_submodule(&status, &noid, diff, info)) < 0)
return error;
@@ -839,7 +839,8 @@ static int maybe_modified(
!diff_time_eq(&oitem->ctime, &nitem->ctime, use_nanos)) ||
oitem->ino != nitem->ino ||
oitem->uid != nitem->uid ||
- oitem->gid != nitem->gid)
+ oitem->gid != nitem->gid ||
+ (index && nitem->mtime.seconds >= index->stamp.mtime))
{
status = GIT_DELTA_MODIFIED;
modified_uncertain = true;
@@ -1089,8 +1090,10 @@ static int handle_unmatched_new_item(
/* item contained in ignored directory, so skip over it */
return iterator_advance(&info->nitem, info->new_iter);
- else if (info->new_iter->type != GIT_ITERATOR_TYPE_WORKDIR)
- delta_type = GIT_DELTA_ADDED;
+ else if (info->new_iter->type != GIT_ITERATOR_TYPE_WORKDIR) {
+ if (delta_type != GIT_DELTA_CONFLICTED)
+ delta_type = GIT_DELTA_ADDED;
+ }
else if (nitem->mode == GIT_FILEMODE_COMMIT) {
/* ignore things that are not actual submodules */
diff --git a/src/diff.h b/src/diff.h
index 2a35fd9ac..a202a086c 100644
--- a/src/diff.h
+++ b/src/diff.h
@@ -123,6 +123,25 @@ extern int git_diff_find_similar__calc_similarity(
extern int git_diff__commit(
git_diff **diff, git_repository *repo, const git_commit *commit, const git_diff_options *opts);
+/* Merge two `git_diff`s according to the callback given by `cb`. */
+
+typedef git_diff_delta *(*git_diff__merge_cb)(
+ const git_diff_delta *left,
+ const git_diff_delta *right,
+ git_pool *pool);
+
+extern int git_diff__merge(
+ git_diff *onto, const git_diff *from, git_diff__merge_cb cb);
+
+extern git_diff_delta *git_diff__merge_like_cgit(
+ const git_diff_delta *a,
+ const git_diff_delta *b,
+ git_pool *pool);
+
+/* Duplicate a `git_diff_delta` out of the `git_pool` */
+extern git_diff_delta *git_diff__delta_dup(
+ const git_diff_delta *d, git_pool *pool);
+
/*
* Sometimes a git_diff_file will have a zero size; this attempts to
* fill in the size without loading the blob if possible. If that is
diff --git a/src/diff_patch.c b/src/diff_patch.c
index 60648f8d7..ec4979a52 100644
--- a/src/diff_patch.c
+++ b/src/diff_patch.c
@@ -121,6 +121,35 @@ GIT_INLINE(bool) should_skip_binary(git_patch *patch, git_diff_file *file)
return (file->flags & GIT_DIFF_FLAG_BINARY) != 0;
}
+static bool diff_patch_diffable(git_patch *patch)
+{
+ size_t olen, nlen;
+
+ if (patch->delta->status == GIT_DELTA_UNMODIFIED)
+ return false;
+
+ /* if we've determined this to be binary (and we are not showing binary
+ * data) then we have skipped loading the map data. instead, query the
+ * file data itself.
+ */
+ if ((patch->delta->flags & GIT_DIFF_FLAG_BINARY) != 0 &&
+ (patch->diff_opts.flags & GIT_DIFF_SHOW_BINARY) == 0) {
+ olen = (size_t)patch->ofile.file->size;
+ nlen = (size_t)patch->nfile.file->size;
+ } else {
+ olen = patch->ofile.map.len;
+ nlen = patch->nfile.map.len;
+ }
+
+ /* if both sides are empty, files are identical */
+ if (!olen && !nlen)
+ return false;
+
+ /* otherwise, check the file sizes and the oid */
+ return (olen != nlen ||
+ !git_oid_equal(&patch->ofile.file->id, &patch->nfile.file->id));
+}
+
static int diff_patch_load(git_patch *patch, git_diff_output *output)
{
int error = 0;
@@ -186,18 +215,7 @@ cleanup:
diff_patch_update_binary(patch);
if (!error) {
- bool skip_binary =
- (patch->delta->flags & GIT_DIFF_FLAG_BINARY) != 0 &&
- (patch->diff_opts.flags & GIT_DIFF_SHOW_BINARY) == 0;
-
- /* patch is diffable only for non-binary, modified files where
- * at least one side has data and the data actually changed
- */
- if (!skip_binary &&
- patch->delta->status != GIT_DELTA_UNMODIFIED &&
- (patch->ofile.map.len || patch->nfile.map.len) &&
- (patch->ofile.map.len != patch->nfile.map.len ||
- !git_oid_equal(&patch->ofile.file->id, &patch->nfile.file->id)))
+ if (diff_patch_diffable(patch))
patch->flags |= GIT_DIFF_PATCH_DIFFABLE;
patch->flags |= GIT_DIFF_PATCH_LOADED;
diff --git a/src/diff_patch.h b/src/diff_patch.h
index f6ce57ddd..7b4dacdde 100644
--- a/src/diff_patch.h
+++ b/src/diff_patch.h
@@ -24,7 +24,9 @@ enum {
GIT_DIFF_PATCH_ALLOCATED = (1 << 0),
GIT_DIFF_PATCH_INITIALIZED = (1 << 1),
GIT_DIFF_PATCH_LOADED = (1 << 2),
+ /* the two sides are different */
GIT_DIFF_PATCH_DIFFABLE = (1 << 3),
+ /* the difference between the two sides has been computed */
GIT_DIFF_PATCH_DIFFED = (1 << 4),
GIT_DIFF_PATCH_FLATTENED = (1 << 5),
};
diff --git a/src/diff_tform.c b/src/diff_tform.c
index 03dd9c9f7..92647e330 100644
--- a/src/diff_tform.c
+++ b/src/diff_tform.c
@@ -15,7 +15,7 @@
#include "fileops.h"
#include "config.h"
-static git_diff_delta *diff_delta__dup(
+git_diff_delta *git_diff__delta_dup(
const git_diff_delta *d, git_pool *pool)
{
git_diff_delta *delta = git__malloc(sizeof(git_diff_delta));
@@ -46,7 +46,7 @@ fail:
return NULL;
}
-static git_diff_delta *diff_delta__merge_like_cgit(
+git_diff_delta *git_diff__merge_like_cgit(
const git_diff_delta *a,
const git_diff_delta *b,
git_pool *pool)
@@ -65,19 +65,26 @@ static git_diff_delta *diff_delta__merge_like_cgit(
* f3 = b->new_file
*/
+ /* If one of the diffs is a conflict, just dup it */
+ if (b->status == GIT_DELTA_CONFLICTED)
+ return git_diff__delta_dup(b, pool);
+ if (a->status == GIT_DELTA_CONFLICTED)
+ return git_diff__delta_dup(a, pool);
+
/* if f2 == f3 or f2 is deleted, then just dup the 'a' diff */
if (b->status == GIT_DELTA_UNMODIFIED || a->status == GIT_DELTA_DELETED)
- return diff_delta__dup(a, pool);
+ return git_diff__delta_dup(a, pool);
/* otherwise, base this diff on the 'b' diff */
- if ((dup = diff_delta__dup(b, pool)) == NULL)
+ if ((dup = git_diff__delta_dup(b, pool)) == NULL)
return NULL;
/* If 'a' status is uninteresting, then we're done */
- if (a->status == GIT_DELTA_UNMODIFIED)
+ if (a->status == GIT_DELTA_UNMODIFIED ||
+ a->status == GIT_DELTA_UNTRACKED ||
+ a->status == GIT_DELTA_UNREADABLE)
return dup;
- assert(a->status != GIT_DELTA_UNMODIFIED);
assert(b->status != GIT_DELTA_UNMODIFIED);
/* A cgit exception is that the diff of a file that is only in the
@@ -102,43 +109,8 @@ static git_diff_delta *diff_delta__merge_like_cgit(
return dup;
}
-static git_diff_delta *diff_delta__merge_like_cgit_reversed(
- const git_diff_delta *a,
- const git_diff_delta *b,
- git_pool *pool)
-{
- git_diff_delta *dup;
-
- /* reversed version of above logic */
-
- if (a->status == GIT_DELTA_UNMODIFIED)
- return diff_delta__dup(b, pool);
-
- if ((dup = diff_delta__dup(a, pool)) == NULL)
- return NULL;
-
- if (b->status == GIT_DELTA_UNMODIFIED || b->status == GIT_DELTA_UNTRACKED || b->status == GIT_DELTA_UNREADABLE)
- return dup;
-
- if (dup->status == GIT_DELTA_DELETED) {
- if (b->status == GIT_DELTA_ADDED) {
- dup->status = GIT_DELTA_UNMODIFIED;
- dup->nfiles = 2;
- }
- } else {
- dup->status = b->status;
- dup->nfiles = b->nfiles;
- }
-
- git_oid_cpy(&dup->old_file.id, &b->old_file.id);
- dup->old_file.mode = b->old_file.mode;
- dup->old_file.size = b->old_file.size;
- dup->old_file.flags = b->old_file.flags;
-
- return dup;
-}
-
-int git_diff_merge(git_diff *onto, const git_diff *from)
+int git_diff__merge(
+ git_diff *onto, const git_diff *from, git_diff__merge_cb cb)
{
int error = 0;
git_pool onto_pool;
@@ -174,15 +146,16 @@ int git_diff_merge(git_diff *onto, const git_diff *from)
STRCMP_CASESELECT(ignore_case, o->old_file.path, f->old_file.path);
if (cmp < 0) {
- delta = diff_delta__dup(o, &onto_pool);
+ delta = git_diff__delta_dup(o, &onto_pool);
i++;
} else if (cmp > 0) {
- delta = diff_delta__dup(f, &onto_pool);
+ delta = git_diff__delta_dup(f, &onto_pool);
j++;
} else {
- delta = reversed ?
- diff_delta__merge_like_cgit_reversed(o, f, &onto_pool) :
- diff_delta__merge_like_cgit(o, f, &onto_pool);
+ const git_diff_delta *left = reversed ? f : o;
+ const git_diff_delta *right = reversed ? o : f;
+
+ delta = cb(left, right, &onto_pool);
i++;
j++;
}
@@ -190,7 +163,7 @@ int git_diff_merge(git_diff *onto, const git_diff *from)
/* the ignore rules for the target may not match the source
* or the result of a merged delta could be skippable...
*/
- if (git_diff_delta__should_skip(&onto->opts, delta)) {
+ if (delta && git_diff_delta__should_skip(&onto->opts, delta)) {
git__free(delta);
continue;
}
@@ -221,6 +194,11 @@ int git_diff_merge(git_diff *onto, const git_diff *from)
return error;
}
+int git_diff_merge(git_diff *onto, const git_diff *from)
+{
+ return git_diff__merge(onto, from, git_diff__merge_like_cgit);
+}
+
int git_diff_find_similar__hashsig_for_file(
void **out, const git_diff_file *f, const char *path, void *p)
{
@@ -369,7 +347,7 @@ static int insert_delete_side_of_split(
git_diff *diff, git_vector *onto, const git_diff_delta *delta)
{
/* make new record for DELETED side of split */
- git_diff_delta *deleted = diff_delta__dup(delta, &diff->pool);
+ git_diff_delta *deleted = git_diff__delta_dup(delta, &diff->pool);
GITERR_CHECK_ALLOC(deleted);
deleted->status = GIT_DELTA_DELETED;
diff --git a/src/index.c b/src/index.c
index 1fb3c48f3..5ce5522f8 100644
--- a/src/index.c
+++ b/src/index.c
@@ -688,20 +688,59 @@ int git_index__changed_relative_to(
return !!git_oid_cmp(&index->checksum, checksum);
}
+static bool is_racy_timestamp(git_time_t stamp, git_index_entry *entry)
+{
+ /* Git special-cases submodules in the check */
+ if (S_ISGITLINK(entry->mode))
+ return false;
+
+ /* If we never read the index, we can't have this race either */
+ if (stamp == 0)
+ return false;
+
+ /* If the timestamp is the same or newer than the index, it's racy */
+ return ((int32_t) stamp) <= entry->mtime.seconds;
+}
+
/*
* Force the next diff to take a look at those entries which have the
* same timestamp as the current index.
*/
-static void truncate_racily_clean(git_index *index)
+static int truncate_racily_clean(git_index *index)
{
size_t i;
+ int error;
git_index_entry *entry;
git_time_t ts = index->stamp.mtime;
+ git_diff_options diff_opts = GIT_DIFF_OPTIONS_INIT;
+ git_diff *diff;
+ /* Nothing to do if there's no repo to talk about */
+ if (!INDEX_OWNER(index))
+ return 0;
+
+ /* If there's no workdir, we can't know where to even check */
+ if (!git_repository_workdir(INDEX_OWNER(index)))
+ return 0;
+
+ diff_opts.flags |= GIT_DIFF_INCLUDE_TYPECHANGE | GIT_DIFF_IGNORE_SUBMODULES | GIT_DIFF_DISABLE_PATHSPEC_MATCH;
git_vector_foreach(&index->entries, i, entry) {
- if (entry->mtime.seconds == ts || ts == 0)
+ if (!is_racy_timestamp(ts, entry))
+ continue;
+
+ diff_opts.pathspec.count = 1;
+ diff_opts.pathspec.strings = (char **) &entry->path;
+
+ if ((error = git_diff_index_to_workdir(&diff, INDEX_OWNER(index), index, &diff_opts)) < 0)
+ return error;
+
+ if (git_diff_num_deltas(diff) > 0)
entry->file_size = 0;
+
+ git_diff_free(diff);
}
+
+ return 0;
}
int git_index_write(git_index *index)
diff --git a/src/iterator.c b/src/iterator.c
index 7807a1636..d5f7eec34 100644
--- a/src/iterator.c
+++ b/src/iterator.c
@@ -1762,6 +1762,18 @@ int git_iterator_current_workdir_path(git_buf **path, git_iterator *iter)
return 0;
}
+int git_iterator_index(git_index **out, git_iterator *iter)
+{
+ workdir_iterator *wi = (workdir_iterator *)iter;
+
+ if (iter->type != GIT_ITERATOR_TYPE_WORKDIR)
+ *out = NULL;
+
+ *out = wi->index;
+
+ return 0;
+}
+
int git_iterator_advance_over_with_status(
const git_index_entry **entryptr,
git_iterator_status_t *status,
diff --git a/src/iterator.h b/src/iterator.h
index db1f325a7..57f82416a 100644
--- a/src/iterator.h
+++ b/src/iterator.h
@@ -11,6 +11,7 @@
#include "git2/index.h"
#include "vector.h"
#include "buffer.h"
+#include "ignore.h"
typedef struct git_iterator git_iterator;
@@ -286,4 +287,11 @@ typedef enum {
extern int git_iterator_advance_over_with_status(
const git_index_entry **entry, git_iterator_status_t *status, git_iterator *iter);
+/**
+ * Retrieve the index stored in the iterator.
+ *
+ * Only implemented for the workdir iterator
+ */
+extern int git_iterator_index(git_index **out, git_iterator *iter);
+
#endif
diff --git a/src/openssl_stream.c b/src/openssl_stream.c
index 9b2d5951c..412dee739 100644
--- a/src/openssl_stream.c
+++ b/src/openssl_stream.c
@@ -16,6 +16,10 @@
#include "netops.h"
#include "git2/transport.h"
+#ifdef GIT_CURL
+# include "curl_stream.h"
+#endif
+
#ifndef GIT_WIN32
# include <sys/types.h>
# include <sys/socket.h>
@@ -25,6 +29,79 @@
#include <openssl/ssl.h>
#include <openssl/err.h>
#include <openssl/x509v3.h>
+#include <openssl/bio.h>
+
+static int bio_create(BIO *b)
+{
+ b->init = 1;
+ b->num = 0;
+ b->ptr = NULL;
+ b->flags = 0;
+
+ return 1;
+}
+
+static int bio_destroy(BIO *b)
+{
+ if (!b)
+ return 0;
+
+ b->init = 0;
+ b->num = 0;
+ b->ptr = NULL;
+ b->flags = 0;
+
+ return 1;
+}
+
+static int bio_read(BIO *b, char *buf, int len)
+{
+ git_stream *io = (git_stream *) b->ptr;
+ return (int) git_stream_read(io, buf, len);
+}
+
+static int bio_write(BIO *b, const char *buf, int len)
+{
+ git_stream *io = (git_stream *) b->ptr;
+ return (int) git_stream_write(io, buf, len, 0);
+}
+
+static long bio_ctrl(BIO *b, int cmd, long num, void *ptr)
+{
+ GIT_UNUSED(b);
+ GIT_UNUSED(num);
+ GIT_UNUSED(ptr);
+
+ if (cmd == BIO_CTRL_FLUSH)
+ return 1;
+
+ return 0;
+}
+
+static int bio_gets(BIO *b, char *buf, int len)
+{
+ GIT_UNUSED(b);
+ GIT_UNUSED(buf);
+ GIT_UNUSED(len);
+ return -1;
+}
+
+static int bio_puts(BIO *b, const char *str)
+{
+ return bio_write(b, str, strlen(str));
+}
+
+static BIO_METHOD git_stream_bio_method = {
+ BIO_TYPE_SOURCE_SINK,
+ "git_stream",
+ bio_write,
+ bio_read,
+ bio_puts,
+ bio_gets,
+ bio_ctrl,
+ bio_create,
+ bio_destroy
+};
static int ssl_set_error(SSL *ssl, int error)
{
@@ -224,7 +301,8 @@ cert_fail_name:
typedef struct {
git_stream parent;
- git_socket_stream *socket;
+ git_stream *io;
+ char *host;
SSL *ssl;
git_cert_x509 cert_info;
} openssl_stream;
@@ -234,23 +312,24 @@ int openssl_close(git_stream *stream);
int openssl_connect(git_stream *stream)
{
int ret;
+ BIO *bio;
openssl_stream *st = (openssl_stream *) stream;
- if ((ret = git_stream_connect((git_stream *)st->socket)) < 0)
+ if ((ret = git_stream_connect(st->io)) < 0)
return ret;
- if ((ret = SSL_set_fd(st->ssl, st->socket->s)) <= 0) {
- openssl_close((git_stream *) st);
- return ssl_set_error(st->ssl, ret);
- }
+ bio = BIO_new(&git_stream_bio_method);
+ GITERR_CHECK_ALLOC(bio);
+ bio->ptr = st->io;
+ SSL_set_bio(st->ssl, bio, bio);
/* specify the host in case SNI is needed */
- SSL_set_tlsext_host_name(st->ssl, st->socket->host);
+ SSL_set_tlsext_host_name(st->ssl, st->host);
if ((ret = SSL_connect(st->ssl)) <= 0)
return ssl_set_error(st->ssl, ret);
- return verify_server_cert(st->ssl, st->socket->host);
+ return verify_server_cert(st->ssl, st->host);
}
int openssl_certificate(git_cert **out, git_stream *stream)
@@ -287,6 +366,13 @@ int openssl_certificate(git_cert **out, git_stream *stream)
return 0;
}
+static int openssl_set_proxy(git_stream *stream, const char *proxy_url)
+{
+ openssl_stream *st = (openssl_stream *) stream;
+
+ return git_stream_set_proxy(st->io, proxy_url);
+}
+
ssize_t openssl_write(git_stream *stream, const char *data, size_t len, int flags)
{
openssl_stream *st = (openssl_stream *) stream;
@@ -320,7 +406,7 @@ int openssl_close(git_stream *stream)
if ((ret = ssl_teardown(st->ssl)) < 0)
return -1;
- return git_stream_close((git_stream *)st->socket);
+ return git_stream_close(st->io);
}
void openssl_free(git_stream *stream)
@@ -328,19 +414,26 @@ void openssl_free(git_stream *stream)
openssl_stream *st = (openssl_stream *) stream;
git__free(st->cert_info.data);
- git_stream_free((git_stream *) st->socket);
+ git_stream_free(st->io);
git__free(st);
}
int git_openssl_stream_new(git_stream **out, const char *host, const char *port)
{
+ int error;
openssl_stream *st;
st = git__calloc(1, sizeof(openssl_stream));
GITERR_CHECK_ALLOC(st);
- if (git_socket_stream_new((git_stream **) &st->socket, host, port))
- return -1;
+#ifdef GIT_CURL
+ error = git_curl_stream_new(&st->io, host, port);
+#else
+ error = git_socket_stream_new(&st->io, host, port)
+#endif
+
+ if (error < 0)
+ return error;
st->ssl = SSL_new(git__ssl_ctx);
if (st->ssl == NULL) {
@@ -348,10 +441,15 @@ int git_openssl_stream_new(git_stream **out, const char *host, const char *port)
return -1;
}
+ st->host = git__strdup(host);
+ GITERR_CHECK_ALLOC(st->host);
+
st->parent.version = GIT_STREAM_VERSION;
st->parent.encrypted = 1;
+ st->parent.proxy_support = git_stream_supports_proxy(st->io);
st->parent.connect = openssl_connect;
st->parent.certificate = openssl_certificate;
+ st->parent.set_proxy = openssl_set_proxy;
st->parent.read = openssl_read;
st->parent.write = openssl_write;
st->parent.close = openssl_close;
diff --git a/src/repository.c b/src/repository.c
index 85c86716e..82d998124 100644
--- a/src/repository.c
+++ b/src/repository.c
@@ -32,6 +32,8 @@
# include "win32/w32_util.h"
#endif
+static int check_repositoryformatversion(git_config *config);
+
#define GIT_FILE_CONTENT_PREFIX "gitdir:"
#define GIT_BRANCH_MASTER "master"
@@ -488,6 +490,7 @@ int git_repository_open_ext(
git_buf path = GIT_BUF_INIT, parent = GIT_BUF_INIT,
link_path = GIT_BUF_INIT;
git_repository *repo;
+ git_config *config = NULL;
if (repo_ptr)
*repo_ptr = NULL;
@@ -509,22 +512,36 @@ int git_repository_open_ext(
GITERR_CHECK_ALLOC(repo->path_gitlink);
}
+ /*
+ * We'd like to have the config, but git doesn't particularly
+ * care if it's not there, so we need to deal with that.
+ */
+
+ error = git_repository_config_snapshot(&config, repo);
+ if (error < 0 && error != GIT_ENOTFOUND)
+ goto cleanup;
+
+ if (config && (error = check_repositoryformatversion(config)) < 0)
+ goto cleanup;
+
if ((flags & GIT_REPOSITORY_OPEN_BARE) != 0)
repo->is_bare = 1;
else {
- git_config *config = NULL;
- if ((error = git_repository_config_snapshot(&config, repo)) < 0 ||
- (error = load_config_data(repo, config)) < 0 ||
- (error = load_workdir(repo, config, &parent)) < 0)
- git_repository_free(repo);
-
- git_config_free(config);
+ if (config &&
+ ((error = load_config_data(repo, config)) < 0 ||
+ (error = load_workdir(repo, config, &parent)) < 0))
+ goto cleanup;
}
- if (!error)
- *repo_ptr = repo;
+cleanup:
git_buf_free(&parent);
+ git_config_free(config);
+
+ if (error < 0)
+ git_repository_free(repo);
+ else
+ *repo_ptr = repo;
return error;
}
@@ -930,9 +947,14 @@ bool git_repository__reserved_names(
static int check_repositoryformatversion(git_config *config)
{
- int version;
+ int version, error;
- if (git_config_get_int32(&version, config, "core.repositoryformatversion") < 0)
+ error = git_config_get_int32(&version, config, "core.repositoryformatversion");
+ /* git ignores this if the config variable isn't there */
+ if (error == GIT_ENOTFOUND)
+ return 0;
+
+ if (error < 0)
return -1;
if (GIT_REPO_VERSION < version) {
diff --git a/src/stash.c b/src/stash.c
index 8f512d4ad..9010c476d 100644
--- a/src/stash.c
+++ b/src/stash.c
@@ -22,6 +22,7 @@
#include "signature.h"
#include "iterator.h"
#include "merge.h"
+#include "diff.h"
static int create_error(int error, const char *msg)
{
@@ -292,6 +293,25 @@ cleanup:
return error;
}
+static git_diff_delta *stash_delta_merge(
+ const git_diff_delta *a,
+ const git_diff_delta *b,
+ git_pool *pool)
+{
+ /* Special case for stash: if a file is deleted in the index, but exists
+ * in the working tree, we need to stash the workdir copy for the workdir.
+ */
+ if (a->status == GIT_DELTA_DELETED && b->status == GIT_DELTA_UNTRACKED) {
+ git_diff_delta *dup = git_diff__delta_dup(b, pool);
+
+ if (dup)
+ dup->status = GIT_DELTA_MODIFIED;
+ return dup;
+ }
+
+ return git_diff__merge_like_cgit(a, b, pool);
+}
+
static int build_workdir_tree(
git_tree **tree_out,
git_index *index,
@@ -299,17 +319,19 @@ static int build_workdir_tree(
{
git_repository *repo = git_index_owner(index);
git_tree *b_tree = NULL;
- git_diff *diff = NULL;
+ git_diff *diff = NULL, *idx_to_wd = NULL;
git_diff_options opts = GIT_DIFF_OPTIONS_INIT;
struct stash_update_rules data = {0};
int error;
- opts.flags = GIT_DIFF_IGNORE_SUBMODULES;
+ opts.flags = GIT_DIFF_IGNORE_SUBMODULES | GIT_DIFF_INCLUDE_UNTRACKED;
if ((error = git_commit_tree(&b_tree, b_commit)) < 0)
goto cleanup;
- if ((error = git_diff_tree_to_workdir(&diff, repo, b_tree, &opts)) < 0)
+ if ((error = git_diff_tree_to_index(&diff, repo, b_tree, index, &opts)) < 0 ||
+ (error = git_diff_index_to_workdir(&idx_to_wd, repo, index, &opts)) < 0 ||
+ (error = git_diff__merge(diff, idx_to_wd, stash_delta_merge)) < 0)
goto cleanup;
data.include_changed = true;
@@ -320,6 +342,7 @@ static int build_workdir_tree(
error = build_tree_from_index(tree_out, index);
cleanup:
+ git_diff_free(idx_to_wd);
git_diff_free(diff);
git_tree_free(b_tree);
diff --git a/src/stransport_stream.c b/src/stransport_stream.c
index 34c38b22d..bbc2d32d6 100644
--- a/src/stransport_stream.c
+++ b/src/stransport_stream.c
@@ -14,6 +14,7 @@
#include "git2/transport.h"
#include "socket_stream.h"
+#include "curl_stream.h"
int stransport_error(OSStatus ret)
{
@@ -115,6 +116,13 @@ int stransport_certificate(git_cert **out, git_stream *stream)
return 0;
}
+int stransport_set_proxy(git_stream *stream, const char *proxy)
+{
+ stransport_stream *st = (stransport_stream *) stream;
+
+ return git_stream_set_proxy(st->io, proxy);
+}
+
/*
* Contrary to typical network IO callbacks, Secure Transport write callback is
* expected to write *all* passed data, not just as much as it can, and any
@@ -233,7 +241,13 @@ int git_stransport_stream_new(git_stream **out, const char *host, const char *po
st = git__calloc(1, sizeof(stransport_stream));
GITERR_CHECK_ALLOC(st);
- if ((error = git_socket_stream_new(&st->io, host, port)) < 0){
+#ifdef GIT_CURL
+ error = git_curl_stream_new(&st->io, host, port);
+#else
+ error = git_socket_stream_new(&st->io, host, port)
+#endif
+
+ if (error < 0){
git__free(st);
return error;
}
@@ -256,8 +270,10 @@ int git_stransport_stream_new(git_stream **out, const char *host, const char *po
st->parent.version = GIT_STREAM_VERSION;
st->parent.encrypted = 1;
+ st->parent.proxy_support = git_stream_supports_proxy(st->io);
st->parent.connect = stransport_connect;
st->parent.certificate = stransport_certificate;
+ st->parent.set_proxy = stransport_set_proxy;
st->parent.read = stransport_read;
st->parent.write = stransport_write;
st->parent.close = stransport_close;
diff --git a/src/stream.h b/src/stream.h
index d810e704d..43fcc3045 100644
--- a/src/stream.h
+++ b/src/stream.h
@@ -30,6 +30,21 @@ GIT_INLINE(int) git_stream_certificate(git_cert **out, git_stream *st)
return st->certificate(out, st);
}
+GIT_INLINE(int) git_stream_supports_proxy(git_stream *st)
+{
+ return st->proxy_support;
+}
+
+GIT_INLINE(int) git_stream_set_proxy(git_stream *st, const char *proxy_url)
+{
+ if (!st->proxy_support) {
+ giterr_set(GITERR_INVALID, "proxy not supported on this stream");
+ return -1;
+ }
+
+ return st->set_proxy(st, proxy_url);
+}
+
GIT_INLINE(ssize_t) git_stream_read(git_stream *st, void *data, size_t len)
{
return st->read(st, data, len);
diff --git a/src/transports/http.c b/src/transports/http.c
index 4aca2755b..bae2a328d 100644
--- a/src/transports/http.c
+++ b/src/transports/http.c
@@ -10,11 +10,13 @@
#include "http_parser.h"
#include "buffer.h"
#include "netops.h"
+#include "remote.h"
#include "smart.h"
#include "auth.h"
#include "auth_negotiate.h"
#include "tls_stream.h"
#include "socket_stream.h"
+#include "curl_stream.h"
git_http_auth_scheme auth_schemes[] = {
{ GIT_AUTHTYPE_NEGOTIATE, "Negotiate", GIT_CREDTYPE_DEFAULT, git_http_auth_negotiate },
@@ -532,6 +534,7 @@ static int write_chunk(git_stream *io, const char *buffer, size_t len)
static int http_connect(http_subtransport *t)
{
int error;
+ char *proxy_url;
if (t->connected &&
http_should_keep_alive(&t->parser) &&
@@ -547,7 +550,11 @@ static int http_connect(http_subtransport *t)
if (t->connection_data.use_ssl) {
error = git_tls_stream_new(&t->io, t->connection_data.host, t->connection_data.port);
} else {
+#ifdef GIT_CURL
+ error = git_curl_stream_new(&t->io, t->connection_data.host, t->connection_data.port);
+#else
error = git_socket_stream_new(&t->io, t->connection_data.host, t->connection_data.port);
+#endif
}
if (error < 0)
@@ -555,9 +562,18 @@ static int http_connect(http_subtransport *t)
GITERR_CHECK_VERSION(t->io, GIT_STREAM_VERSION, "git_stream");
+ if (git_stream_supports_proxy(t->io) &&
+ !git_remote__get_http_proxy(t->owner->owner, !!t->connection_data.use_ssl, &proxy_url)) {
+ error = git_stream_set_proxy(t->io, proxy_url);
+ git__free(proxy_url);
+
+ if (error < 0)
+ return error;
+ }
+
error = git_stream_connect(t->io);
-#if defined(GIT_OPENSSL) || defined(GIT_SECURE_TRANSPORT)
+#if defined(GIT_OPENSSL) || defined(GIT_SECURE_TRANSPORT) || defined(GIT_CURL)
if ((!error || error == GIT_ECERTIFICATE) && t->owner->certificate_check_cb != NULL &&
git_stream_is_encrypted(t->io)) {
git_cert *cert;
diff --git a/tests/checkout/crlf.c b/tests/checkout/crlf.c
index 61459b3a4..2cf3af364 100644
--- a/tests/checkout/crlf.c
+++ b/tests/checkout/crlf.c
@@ -1,6 +1,7 @@
#include "clar_libgit2.h"
#include "checkout_helpers.h"
#include "../filter/crlf.h"
+#include "fileops.h"
#include "git2/checkout.h"
#include "repository.h"
@@ -9,94 +10,208 @@
static git_repository *g_repo;
+static const char *systype;
+static git_buf expected_fixture = GIT_BUF_INIT;
+
void test_checkout_crlf__initialize(void)
{
g_repo = cl_git_sandbox_init("crlf");
+
+ if (GIT_EOL_NATIVE == GIT_EOL_CRLF)
+ systype = "windows";
+ else
+ systype = "posix";
}
void test_checkout_crlf__cleanup(void)
{
cl_git_sandbox_cleanup();
+
+ if (expected_fixture.size) {
+ cl_fixture_cleanup(expected_fixture.ptr);
+ git_buf_free(&expected_fixture);
+ }
}
-void test_checkout_crlf__detect_crlf_autocrlf_false(void)
+struct compare_data
{
- git_checkout_options opts = GIT_CHECKOUT_OPTIONS_INIT;
- opts.checkout_strategy = GIT_CHECKOUT_FORCE;
+ const char *dirname;
+ const char *autocrlf;
+ const char *attrs;
+};
- cl_repo_set_bool(g_repo, "core.autocrlf", false);
+static int compare_file(void *payload, git_buf *actual_path)
+{
+ git_buf expected_path = GIT_BUF_INIT;
+ git_buf actual_contents = GIT_BUF_INIT;
+ git_buf expected_contents = GIT_BUF_INIT;
+ struct compare_data *cd = payload;
+ bool failed = true;
+
+ if (strcmp(git_path_basename(actual_path->ptr), ".git") == 0 ||
+ strcmp(git_path_basename(actual_path->ptr), ".gitattributes") == 0) {
+ failed = false;
+ goto done;
+ }
- git_checkout_head(g_repo, &opts);
+ cl_git_pass(git_buf_joinpath(&expected_path, cd->dirname,
+ git_path_basename(actual_path->ptr)));
- check_file_contents("./crlf/all-lf", ALL_LF_TEXT_RAW);
- check_file_contents("./crlf/all-crlf", ALL_CRLF_TEXT_RAW);
-}
+ if (!git_path_isfile(expected_path.ptr) ||
+ !git_path_isfile(actual_path->ptr))
+ goto done;
-void test_checkout_crlf__autocrlf_false_index_size_is_unfiltered_size(void)
-{
- git_index *index;
- const git_index_entry *entry;
- git_checkout_options opts = GIT_CHECKOUT_OPTIONS_INIT;
- opts.checkout_strategy = GIT_CHECKOUT_FORCE;
+ if (git_futils_readbuffer(&actual_contents, actual_path->ptr) < 0 ||
+ git_futils_readbuffer(&expected_contents, expected_path.ptr) < 0)
+ goto done;
- cl_repo_set_bool(g_repo, "core.autocrlf", false);
+ if (actual_contents.size != expected_contents.size)
+ goto done;
- git_repository_index(&index, g_repo);
- tick_index(index);
+ if (memcmp(actual_contents.ptr, expected_contents.ptr, expected_contents.size) != 0)
+ goto done;
- git_checkout_head(g_repo, &opts);
+ failed = false;
- cl_assert((entry = git_index_get_bypath(index, "all-lf", 0)) != NULL);
- cl_assert(entry->file_size == strlen(ALL_LF_TEXT_RAW));
+done:
+ if (failed) {
+ git_buf details = GIT_BUF_INIT;
+ git_buf_printf(&details, "filename=%s, system=%s, autocrlf=%s, attrs={%s}",
+ git_path_basename(actual_path->ptr), systype, cd->autocrlf, cd->attrs);
+ clar__fail(__FILE__, __LINE__,
+ "checked out contents did not match expected", details.ptr, 0);
+ git_buf_free(&details);
+ }
- cl_assert((entry = git_index_get_bypath(index, "all-crlf", 0)) != NULL);
- cl_assert(entry->file_size == strlen(ALL_CRLF_TEXT_RAW));
+ git_buf_free(&expected_contents);
+ git_buf_free(&actual_contents);
+ git_buf_free(&expected_path);
- git_index_free(index);
+ return 0;
}
-void test_checkout_crlf__detect_crlf_autocrlf_true(void)
+static void test_checkout(const char *autocrlf, const char *attrs)
{
+ git_buf attrbuf = GIT_BUF_INIT;
+ git_buf expected_dirname = GIT_BUF_INIT;
+ git_buf sandboxname = GIT_BUF_INIT;
+ git_buf reponame = GIT_BUF_INIT;
git_checkout_options opts = GIT_CHECKOUT_OPTIONS_INIT;
- opts.checkout_strategy = GIT_CHECKOUT_FORCE;
+ struct compare_data compare_data = { NULL, autocrlf, attrs };
+ const char *c;
- cl_repo_set_bool(g_repo, "core.autocrlf", true);
+ git_buf_puts(&reponame, "crlf");
+
+ git_buf_puts(&sandboxname, "autocrlf_");
+ git_buf_puts(&sandboxname, autocrlf);
+ if (*attrs) {
+ git_buf_puts(&sandboxname, ",");
+
+ for (c = attrs; *c; c++) {
+ if (*c == ' ')
+ git_buf_putc(&sandboxname, ',');
+ else if (*c == '=')
+ git_buf_putc(&sandboxname, '_');
+ else
+ git_buf_putc(&sandboxname, *c);
+ }
+
+ git_buf_printf(&attrbuf, "* %s\n", attrs);
+ cl_git_mkfile("crlf/.gitattributes", attrbuf.ptr);
+ }
+
+ cl_repo_set_string(g_repo, "core.autocrlf", autocrlf);
+
+ git_buf_joinpath(&expected_dirname, systype, sandboxname.ptr);
+ git_buf_joinpath(&expected_fixture, "crlf_data", expected_dirname.ptr);
+ cl_fixture_sandbox(expected_fixture.ptr);
+
+ opts.checkout_strategy = GIT_CHECKOUT_FORCE;
git_checkout_head(g_repo, &opts);
- if (GIT_EOL_NATIVE == GIT_EOL_LF)
- check_file_contents("./crlf/all-lf", ALL_LF_TEXT_RAW);
- else
- check_file_contents("./crlf/all-lf", ALL_LF_TEXT_AS_CRLF);
+ compare_data.dirname = sandboxname.ptr;
+ cl_git_pass(git_path_direach(&reponame, 0, compare_file, &compare_data));
- check_file_contents("./crlf/all-crlf", ALL_CRLF_TEXT_RAW);
+ cl_fixture_cleanup(expected_fixture.ptr);
+ git_buf_free(&expected_fixture);
+
+ git_buf_free(&attrbuf);
+ git_buf_free(&expected_fixture);
+ git_buf_free(&expected_dirname);
+ git_buf_free(&sandboxname);
+ git_buf_free(&reponame);
}
-void test_checkout_crlf__more_lf_autocrlf_true(void)
+static void empty_workdir(const char *name)
+{
+ git_vector contents = GIT_VECTOR_INIT;
+ size_t i;
+ const char *fn;
+
+ git_path_dirload(&contents, name, 0, 0);
+ git_vector_foreach(&contents, i, fn) {
+ if (strncasecmp(git_path_basename(fn), ".git", 4) == 0)
+ continue;
+ p_unlink(fn);
+ }
+ git_vector_free_deep(&contents);
+}
+
+void test_checkout_crlf__matches_core_git(void)
+{
+ const char *autocrlf[] = { "true", "false", "input", NULL };
+ const char *attrs[] = { "", "-crlf", "-text", "eol=crlf", "eol=lf",
+ "text", "text eol=crlf", "text eol=lf",
+ "text=auto", "text=auto eol=crlf", "text=auto eol=lf",
+ NULL };
+ const char **a, **b;
+
+ for (a = autocrlf; *a; a++) {
+ for (b = attrs; *b; b++) {
+ empty_workdir("crlf");
+ test_checkout(*a, *b);
+ }
+ }
+}
+
+void test_checkout_crlf__detect_crlf_autocrlf_false(void)
{
git_checkout_options opts = GIT_CHECKOUT_OPTIONS_INIT;
opts.checkout_strategy = GIT_CHECKOUT_FORCE;
- cl_repo_set_bool(g_repo, "core.autocrlf", true);
+ cl_repo_set_bool(g_repo, "core.autocrlf", false);
git_checkout_head(g_repo, &opts);
- check_file_contents("./crlf/more-lf", MORE_LF_TEXT_RAW);
+ check_file_contents("./crlf/all-lf", ALL_LF_TEXT_RAW);
+ check_file_contents("./crlf/all-crlf", ALL_CRLF_TEXT_RAW);
}
-void test_checkout_crlf__more_crlf_autocrlf_true(void)
+void test_checkout_crlf__autocrlf_false_index_size_is_unfiltered_size(void)
{
+ git_index *index;
+ const git_index_entry *entry;
git_checkout_options opts = GIT_CHECKOUT_OPTIONS_INIT;
opts.checkout_strategy = GIT_CHECKOUT_FORCE;
- cl_repo_set_bool(g_repo, "core.autocrlf", true);
+ cl_repo_set_bool(g_repo, "core.autocrlf", false);
+
+ git_repository_index(&index, g_repo);
+ tick_index(index);
git_checkout_head(g_repo, &opts);
- check_file_contents("./crlf/more-crlf", MORE_CRLF_TEXT_RAW);
+ cl_assert((entry = git_index_get_bypath(index, "all-lf", 0)) != NULL);
+ cl_assert(entry->file_size == strlen(ALL_LF_TEXT_RAW));
+
+ cl_assert((entry = git_index_get_bypath(index, "all-crlf", 0)) != NULL);
+ cl_assert(entry->file_size == strlen(ALL_CRLF_TEXT_RAW));
+
+ git_index_free(index);
}
-void test_checkout_crlf__all_crlf_autocrlf_true(void)
+void test_checkout_crlf__detect_crlf_autocrlf_true(void)
{
git_checkout_options opts = GIT_CHECKOUT_OPTIONS_INIT;
opts.checkout_strategy = GIT_CHECKOUT_FORCE;
@@ -105,6 +220,7 @@ void test_checkout_crlf__all_crlf_autocrlf_true(void)
git_checkout_head(g_repo, &opts);
+ check_file_contents("./crlf/all-lf", ALL_LF_TEXT_AS_CRLF);
check_file_contents("./crlf/all-crlf", ALL_CRLF_TEXT_RAW);
}
@@ -115,22 +231,14 @@ void test_checkout_crlf__detect_crlf_autocrlf_true_utf8(void)
cl_repo_set_bool(g_repo, "core.autocrlf", true);
- git_repository_set_head(g_repo, "refs/heads/utf8");
+ git_repository_set_head(g_repo, "refs/heads/master");
git_checkout_head(g_repo, &opts);
- if (GIT_EOL_NATIVE == GIT_EOL_LF)
- {
- check_file_contents("./crlf/few-utf8-chars-lf.txt", FEW_UTF8_LF_RAW);
- check_file_contents("./crlf/many-utf8-chars-lf.txt", MANY_UTF8_LF_RAW);
- }
- else
- {
- check_file_contents("./crlf/few-utf8-chars-lf.txt", FEW_UTF8_CRLF_RAW);
- check_file_contents("./crlf/many-utf8-chars-lf.txt", MANY_UTF8_CRLF_RAW);
- }
+ check_file_contents("./crlf/few-utf8-chars-lf", FEW_UTF8_CRLF_RAW);
+ check_file_contents("./crlf/many-utf8-chars-lf", MANY_UTF8_CRLF_RAW);
- check_file_contents("./crlf/few-utf8-chars-crlf.txt", FEW_UTF8_CRLF_RAW);
- check_file_contents("./crlf/many-utf8-chars-crlf.txt", MANY_UTF8_CRLF_RAW);
+ check_file_contents("./crlf/few-utf8-chars-crlf", FEW_UTF8_CRLF_RAW);
+ check_file_contents("./crlf/many-utf8-chars-crlf", MANY_UTF8_CRLF_RAW);
}
void test_checkout_crlf__autocrlf_true_index_size_is_filtered_size(void)
@@ -149,10 +257,7 @@ void test_checkout_crlf__autocrlf_true_index_size_is_filtered_size(void)
cl_assert((entry = git_index_get_bypath(index, "all-lf", 0)) != NULL);
- if (GIT_EOL_NATIVE == GIT_EOL_LF)
- cl_assert_equal_sz(strlen(ALL_LF_TEXT_RAW), entry->file_size);
- else
- cl_assert_equal_sz(strlen(ALL_LF_TEXT_AS_CRLF), entry->file_size);
+ cl_assert_equal_sz(strlen(ALL_LF_TEXT_AS_CRLF), entry->file_size);
cl_assert((entry = git_index_get_bypath(index, "all-crlf", 0)) != NULL);
cl_assert_equal_sz(strlen(ALL_CRLF_TEXT_RAW), entry->file_size);
@@ -221,25 +326,14 @@ void test_checkout_crlf__with_ident(void)
git_checkout_head(g_repo, &opts);
- if (GIT_EOL_NATIVE == GIT_EOL_LF) {
- cl_assert_equal_file(
- ALL_LF_TEXT_RAW
- "\n$Id: fcf6d4d9c212dc66563b1171b1cd99953c756467 $\n",
- 0, "crlf/lf.ident");
- cl_assert_equal_file(
- ALL_CRLF_TEXT_AS_LF
- "\n$Id: f2c66ad9b2b5a734d9bf00d5000cc10a62b8a857 $\n\n",
- 0, "crlf/crlf.ident");
- } else {
- cl_assert_equal_file(
- ALL_LF_TEXT_AS_CRLF
- "\r\n$Id: fcf6d4d9c212dc66563b1171b1cd99953c756467 $\r\n",
- 0, "crlf/lf.ident");
- cl_assert_equal_file(
- ALL_CRLF_TEXT_RAW
- "\r\n$Id: f2c66ad9b2b5a734d9bf00d5000cc10a62b8a857 $\r\n\r\n",
- 0, "crlf/crlf.ident");
- }
+ cl_assert_equal_file(
+ ALL_LF_TEXT_AS_CRLF
+ "\r\n$Id: fcf6d4d9c212dc66563b1171b1cd99953c756467 $\r\n",
+ 0, "crlf/lf.ident");
+ cl_assert_equal_file(
+ ALL_CRLF_TEXT_RAW
+ "\r\n$Id: f2c66ad9b2b5a734d9bf00d5000cc10a62b8a857 $\r\n\r\n",
+ 0, "crlf/crlf.ident");
cl_assert_equal_file(
"$Id: f7830382dac1f1583422be5530fdfbd26289431b $\n"
@@ -274,13 +368,8 @@ void test_checkout_crlf__autocrlf_true_no_attrs(void)
git_checkout_head(g_repo, &opts);
- if (GIT_EOL_NATIVE == GIT_EOL_CRLF) {
- check_file_contents("./crlf/all-lf", ALL_LF_TEXT_AS_CRLF);
- check_file_contents("./crlf/all-crlf", ALL_CRLF_TEXT_AS_CRLF);
- } else {
- check_file_contents("./crlf/all-lf", ALL_LF_TEXT_RAW);
- check_file_contents("./crlf/all-crlf", ALL_CRLF_TEXT_RAW);
- }
+ check_file_contents("./crlf/all-lf", ALL_LF_TEXT_AS_CRLF);
+ check_file_contents("./crlf/all-crlf", ALL_CRLF_TEXT_AS_CRLF);
}
void test_checkout_crlf__autocrlf_input_no_attrs(void)
@@ -327,13 +416,8 @@ void test_checkout_crlf__autocrlf_true_text_auto_attr(void)
git_checkout_head(g_repo, &opts);
- if (GIT_EOL_NATIVE == GIT_EOL_CRLF) {
- check_file_contents("./crlf/all-lf", ALL_LF_TEXT_AS_CRLF);
- check_file_contents("./crlf/all-crlf", ALL_CRLF_TEXT_AS_CRLF);
- } else {
- check_file_contents("./crlf/all-lf", ALL_LF_TEXT_RAW);
- check_file_contents("./crlf/all-crlf", ALL_CRLF_TEXT_RAW);
- }
+ check_file_contents("./crlf/all-lf", ALL_LF_TEXT_AS_CRLF);
+ check_file_contents("./crlf/all-crlf", ALL_CRLF_TEXT_AS_CRLF);
}
void test_checkout_crlf__autocrlf_input_text_auto_attr(void)
@@ -363,10 +447,7 @@ void test_checkout_crlf__can_write_empty_file(void)
check_file_contents("./crlf/test1.txt", "");
- if (GIT_EOL_NATIVE == GIT_EOL_LF)
- check_file_contents("./crlf/test2.txt", "test2.txt's content\n");
- else
- check_file_contents("./crlf/test2.txt", "test2.txt's content\r\n");
+ check_file_contents("./crlf/test2.txt", "test2.txt's content\r\n");
check_file_contents("./crlf/test3.txt", "");
}
diff --git a/tests/clar/fixtures.h b/tests/clar/fixtures.h
index 264cd7f4f..f7b8d96af 100644
--- a/tests/clar/fixtures.h
+++ b/tests/clar/fixtures.h
@@ -20,6 +20,19 @@ fixture_path(const char *base, const char *fixture_name)
return _path;
}
+static const char *
+fixture_basename(const char *fixture_name)
+{
+ const char *p;
+
+ for (p = fixture_name; *p; p++) {
+ if (p[0] == '/' && p[1] && p[1] != '/')
+ fixture_name = p+1;
+ }
+
+ return fixture_name;
+}
+
#ifdef CLAR_FIXTURE_PATH
const char *cl_fixture(const char *fixture_name)
{
@@ -33,6 +46,6 @@ void cl_fixture_sandbox(const char *fixture_name)
void cl_fixture_cleanup(const char *fixture_name)
{
- fs_rm(fixture_path(_clar_path, fixture_name));
+ fs_rm(fixture_path(_clar_path, fixture_basename(fixture_name)));
}
#endif
diff --git a/tests/commit/parse.c b/tests/commit/parse.c
index fa079f470..388da078a 100644
--- a/tests/commit/parse.c
+++ b/tests/commit/parse.c
@@ -418,3 +418,41 @@ committer Vicent Marti <tanoku@gmail.com> 1273848544 +0200\n\
cl_assert_equal_s(raw_message, git_commit_message_raw(commit));
git_commit__free(commit);
}
+
+void test_commit_parse__arbitrary_field(void)
+{
+ git_commit *commit;
+ git_buf buf = GIT_BUF_INIT;
+ const char *gpgsig = "-----BEGIN PGP SIGNATURE-----\n\
+Version: GnuPG v1.4.12 (Darwin)\n\
+\n\
+iQIcBAABAgAGBQJQ+FMIAAoJEH+LfPdZDSs1e3EQAJMjhqjWF+WkGLHju7pTw2al\n\
+o6IoMAhv0Z/LHlWhzBd9e7JeCnanRt12bAU7yvYp9+Z+z+dbwqLwDoFp8LVuigl8\n\
+JGLcnwiUW3rSvhjdCp9irdb4+bhKUnKUzSdsR2CK4/hC0N2i/HOvMYX+BRsvqweq\n\
+AsAkA6dAWh+gAfedrBUkCTGhlNYoetjdakWqlGL1TiKAefEZrtA1TpPkGn92vbLq\n\
+SphFRUY9hVn1ZBWrT3hEpvAIcZag3rTOiRVT1X1flj8B2vGCEr3RrcwOIZikpdaW\n\
+who/X3xh/DGbI2RbuxmmJpxxP/8dsVchRJJzBwG+yhwU/iN3MlV2c5D69tls/Dok\n\
+6VbyU4lm/ae0y3yR83D9dUlkycOnmmlBAHKIZ9qUts9X7mWJf0+yy2QxJVpjaTGG\n\
+cmnQKKPeNIhGJk2ENnnnzjEve7L7YJQF6itbx5VCOcsGh3Ocb3YR7DMdWjt7f8pu\n\
+c6j+q1rP7EpE2afUN/geSlp5i3x8aXZPDj67jImbVCE/Q1X9voCtyzGJH7MXR0N9\n\
+ZpRF8yzveRfMH8bwAJjSOGAFF5XkcR/RNY95o+J+QcgBLdX48h+ZdNmUf6jqlu3J\n\
+7KmTXXQcOVpN6dD3CmRFsbjq+x6RHwa8u1iGn+oIkX908r97ckfB/kHKH7ZdXIJc\n\
+cpxtDQQMGYFpXK/71stq\n\
+=ozeK\n\
+-----END PGP SIGNATURE-----";
+
+ cl_git_pass(parse_commit(&commit, passing_commit_cases[4]));
+
+ cl_git_pass(git_commit_header_field(&buf, commit, "parent"));
+ cl_assert_equal_s("34734e478d6cf50c27c9d69026d93974d052c454", buf.ptr);
+ git_buf_clear(&buf);
+
+ cl_git_pass(git_commit_header_field(&buf, commit, "gpgsig"));
+ cl_assert_equal_s(gpgsig, buf.ptr);
+
+ cl_git_fail_with(GIT_ENOTFOUND, git_commit_header_field(&buf, commit, "awesomeness"));
+ cl_git_fail_with(GIT_ENOTFOUND, git_commit_header_field(&buf, commit, "par"));
+
+ git_buf_free(&buf);
+ git_commit__free(commit);
+}
diff --git a/tests/core/buffer.c b/tests/core/buffer.c
index d28aa218f..fef37f8f7 100644
--- a/tests/core/buffer.c
+++ b/tests/core/buffer.c
@@ -1054,14 +1054,20 @@ void test_core_buffer__lf_and_crlf_conversions(void)
git_buf_sets(&src, "crlf\r\ncrlf\r\ncrlf\r\ncrlf\r\n");
- cl_git_fail_with(GIT_PASSTHROUGH, git_buf_text_lf_to_crlf(&tgt, &src));
+ cl_git_pass(git_buf_text_lf_to_crlf(&tgt, &src));
+ check_buf("crlf\r\ncrlf\r\ncrlf\r\ncrlf\r\n", tgt);
+
+ git_buf_sets(&src, "crlf\r\ncrlf\r\ncrlf\r\ncrlf\r\n");
cl_git_pass(git_buf_text_crlf_to_lf(&tgt, &src));
check_buf("crlf\ncrlf\ncrlf\ncrlf\n", tgt);
git_buf_sets(&src, "\r\ncrlf\r\ncrlf\r\ncrlf\r\ncrlf\r\ncrlf");
- cl_git_fail_with(GIT_PASSTHROUGH, git_buf_text_lf_to_crlf(&tgt, &src));
+ cl_git_pass(git_buf_text_lf_to_crlf(&tgt, &src));
+ check_buf("\r\ncrlf\r\ncrlf\r\ncrlf\r\ncrlf\r\ncrlf", tgt);
+
+ git_buf_sets(&src, "\r\ncrlf\r\ncrlf\r\ncrlf\r\ncrlf\r\ncrlf");
cl_git_pass(git_buf_text_crlf_to_lf(&tgt, &src));
check_buf("\ncrlf\ncrlf\ncrlf\ncrlf\ncrlf", tgt);
@@ -1070,7 +1076,11 @@ void test_core_buffer__lf_and_crlf_conversions(void)
git_buf_sets(&src, "\nlf\nlf\ncrlf\r\nlf\nlf\ncrlf\r\n");
- cl_git_fail_with(GIT_PASSTHROUGH, git_buf_text_lf_to_crlf(&tgt, &src));
+ cl_git_pass(git_buf_text_lf_to_crlf(&tgt, &src));
+ check_buf("\r\nlf\r\nlf\r\ncrlf\r\nlf\r\nlf\r\ncrlf\r\n", tgt);
+
+ git_buf_sets(&src, "\nlf\nlf\ncrlf\r\nlf\nlf\ncrlf\r\n");
+
cl_git_pass(git_buf_text_crlf_to_lf(&tgt, &src));
check_buf("\nlf\nlf\ncrlf\nlf\nlf\ncrlf\n", tgt);
@@ -1078,7 +1088,9 @@ void test_core_buffer__lf_and_crlf_conversions(void)
git_buf_sets(&src, "\ncrlf\r\ncrlf\r\nlf\ncrlf\r\ncrlf");
- cl_git_fail_with(GIT_PASSTHROUGH, git_buf_text_lf_to_crlf(&tgt, &src));
+ cl_git_pass(git_buf_text_lf_to_crlf(&tgt, &src));
+ check_buf("\r\ncrlf\r\ncrlf\r\nlf\r\ncrlf\r\ncrlf", tgt);
+
cl_git_pass(git_buf_text_crlf_to_lf(&tgt, &src));
check_buf("\ncrlf\ncrlf\nlf\ncrlf\ncrlf", tgt);
@@ -1086,7 +1098,11 @@ void test_core_buffer__lf_and_crlf_conversions(void)
git_buf_sets(&src, "\rcrlf\r\nlf\nlf\ncr\rcrlf\r\nlf\ncr\r");
- cl_git_fail_with(GIT_PASSTHROUGH, git_buf_text_lf_to_crlf(&tgt, &src));
+ cl_git_pass(git_buf_text_lf_to_crlf(&tgt, &src));
+ check_buf("\rcrlf\r\nlf\r\nlf\r\ncr\rcrlf\r\nlf\r\ncr\r", tgt);
+
+ git_buf_sets(&src, "\rcrlf\r\nlf\nlf\ncr\rcrlf\r\nlf\ncr\r");
+
cl_git_pass(git_buf_text_crlf_to_lf(&tgt, &src));
check_buf("\rcrlf\nlf\nlf\ncr\rcrlf\nlf\ncr\r", tgt);
@@ -1102,7 +1118,9 @@ void test_core_buffer__lf_and_crlf_conversions(void)
/* blob correspondence tests */
git_buf_sets(&src, ALL_CRLF_TEXT_RAW);
- cl_git_fail_with(GIT_PASSTHROUGH, git_buf_text_lf_to_crlf(&tgt, &src));
+ cl_git_pass(git_buf_text_lf_to_crlf(&tgt, &src));
+ check_buf(ALL_CRLF_TEXT_AS_CRLF, tgt);
+ git_buf_sets(&src, ALL_CRLF_TEXT_RAW);
cl_git_pass(git_buf_text_crlf_to_lf(&tgt, &src));
check_buf(ALL_CRLF_TEXT_AS_LF, tgt);
git_buf_free(&src);
@@ -1111,20 +1129,25 @@ void test_core_buffer__lf_and_crlf_conversions(void)
git_buf_sets(&src, ALL_LF_TEXT_RAW);
cl_git_pass(git_buf_text_lf_to_crlf(&tgt, &src));
check_buf(ALL_LF_TEXT_AS_CRLF, tgt);
+ git_buf_sets(&src, ALL_LF_TEXT_RAW);
cl_git_pass(git_buf_text_crlf_to_lf(&tgt, &src));
check_buf(ALL_LF_TEXT_AS_LF, tgt);
git_buf_free(&src);
git_buf_free(&tgt);
git_buf_sets(&src, MORE_CRLF_TEXT_RAW);
- cl_git_fail_with(GIT_PASSTHROUGH, git_buf_text_lf_to_crlf(&tgt, &src));
+ cl_git_pass(git_buf_text_lf_to_crlf(&tgt, &src));
+ check_buf(MORE_CRLF_TEXT_AS_CRLF, tgt);
+ git_buf_sets(&src, MORE_CRLF_TEXT_RAW);
cl_git_pass(git_buf_text_crlf_to_lf(&tgt, &src));
check_buf(MORE_CRLF_TEXT_AS_LF, tgt);
git_buf_free(&src);
git_buf_free(&tgt);
git_buf_sets(&src, MORE_LF_TEXT_RAW);
- cl_git_fail_with(GIT_PASSTHROUGH, git_buf_text_lf_to_crlf(&tgt, &src));
+ cl_git_pass(git_buf_text_lf_to_crlf(&tgt, &src));
+ check_buf(MORE_LF_TEXT_AS_CRLF, tgt);
+ git_buf_sets(&src, MORE_LF_TEXT_RAW);
cl_git_pass(git_buf_text_crlf_to_lf(&tgt, &src));
check_buf(MORE_LF_TEXT_AS_LF, tgt);
git_buf_free(&src);
diff --git a/tests/diff/binary.c b/tests/diff/binary.c
index 424a53e5f..6a5f3907b 100644
--- a/tests/diff/binary.c
+++ b/tests/diff/binary.c
@@ -1,5 +1,7 @@
#include "clar_libgit2.h"
+#include "git2/sys/diff.h"
+
#include "buffer.h"
#include "filebuf.h"
@@ -49,6 +51,11 @@ void test_patch(
cl_assert_equal_s(expected, actual.ptr);
+ git_buf_clear(&actual);
+ cl_git_pass(git_diff_print(diff, GIT_DIFF_FORMAT_PATCH, git_diff_print_callback__to_buf, &actual));
+
+ cl_assert_equal_s(expected, actual.ptr);
+
git_buf_free(&actual);
git_patch_free(patch);
git_diff_free(diff);
@@ -262,6 +269,36 @@ void test_diff_binary__delta_append(void)
git_index_free(index);
}
+void test_diff_binary__empty_for_no_diff(void)
+{
+ git_diff_options opts = GIT_DIFF_OPTIONS_INIT;
+ git_oid id;
+ git_commit *commit;
+ git_tree *tree;
+ git_diff *diff;
+ git_buf actual = GIT_BUF_INIT;
+ const char *expected = "";
+
+ opts.flags = GIT_DIFF_SHOW_BINARY | GIT_DIFF_FORCE_BINARY;
+ opts.id_abbrev = GIT_OID_HEXSZ;
+
+ repo = cl_git_sandbox_init("renames");
+
+ cl_git_pass(git_oid_fromstr(&id, "19dd32dfb1520a64e5bbaae8dce6ef423dfa2f13"));
+ cl_git_pass(git_commit_lookup(&commit, repo, &id));
+ cl_git_pass(git_commit_tree(&tree, commit));
+
+ cl_git_pass(git_diff_tree_to_tree(&diff, repo, tree, tree, &opts));
+ cl_git_pass(git_diff_print(diff, GIT_DIFF_FORMAT_PATCH, git_diff_print_callback__to_buf, &actual));
+
+ cl_assert_equal_s("", actual.ptr);
+
+ git_buf_free(&actual);
+ git_diff_free(diff);
+ git_commit_free(commit);
+ git_tree_free(tree);
+}
+
void test_diff_binary__index_to_workdir(void)
{
git_index *index;
diff --git a/tests/diff/index.c b/tests/diff/index.c
index 242fb0046..f702568bf 100644
--- a/tests/diff/index.c
+++ b/tests/diff/index.c
@@ -183,7 +183,7 @@ static void do_conflicted_diff(diff_expects *exp, unsigned long flags)
cl_git_pass(git_repository_index(&index, g_repo));
ancestor.path = ours.path = theirs.path = "staged_changes";
- ancestor.mode = ours.mode = theirs.mode = 0100644;
+ ancestor.mode = ours.mode = theirs.mode = GIT_FILEMODE_BLOB;
git_oid_fromstr(&ancestor.id, "deadbeefdeadbeefdeadbeefdeadbeefdeadbeef");
git_oid_fromstr(&ours.id, "deadbeefdeadbeefdeadbeefdeadbeefdeadbeef");
@@ -239,3 +239,32 @@ void test_diff_index__reports_conflicts_when_reversed(void)
cl_assert_equal_i(2, exp.line_adds);
cl_assert_equal_i(5, exp.line_dels);
}
+
+void test_diff_index__not_in_head_conflicted(void)
+{
+ const char *a_commit = "26a125ee1bf"; /* the current HEAD */
+ git_index_entry theirs = {{0}};
+ git_index *index;
+ git_diff *diff;
+ const git_diff_delta *delta;
+
+ git_tree *a = resolve_commit_oid_to_tree(g_repo, a_commit);
+
+ cl_git_pass(git_repository_index(&index, g_repo));
+ cl_git_pass(git_index_read_tree(index, a));
+
+ theirs.path = "file_not_in_head";
+ theirs.mode = GIT_FILEMODE_BLOB;
+ git_oid_fromstr(&theirs.id, "deadbeefdeadbeefdeadbeefdeadbeefdeadbeef");
+ cl_git_pass(git_index_conflict_add(index, NULL, NULL, &theirs));
+
+ cl_git_pass(git_diff_tree_to_index(&diff, g_repo, a, index, NULL));
+
+ cl_assert_equal_i(git_diff_num_deltas(diff), 1);
+ delta = git_diff_get_delta(diff, 0);
+ cl_assert_equal_i(delta->status, GIT_DELTA_CONFLICTED);
+
+ git_diff_free(diff);
+ git_index_free(index);
+ git_tree_free(a);
+}
diff --git a/tests/diff/racy.c b/tests/diff/racy.c
deleted file mode 100644
index a109f8c3b..000000000
--- a/tests/diff/racy.c
+++ /dev/null
@@ -1,39 +0,0 @@
-#include "clar_libgit2.h"
-
-#include "buffer.h"
-
-static git_repository *g_repo;
-
-void test_diff_racy__initialize(void)
-{
- cl_git_pass(git_repository_init(&g_repo, "diff_racy", false));
-}
-
-void test_diff_racy__cleanup(void)
-{
- cl_git_sandbox_cleanup();
-}
-
-void test_diff_racy__diff(void)
-{
- git_index *index;
- git_diff *diff;
- git_buf path = GIT_BUF_INIT;
-
- cl_git_pass(git_buf_joinpath(&path, git_repository_workdir(g_repo), "A"));
- cl_git_mkfile(path.ptr, "A");
-
- /* Put 'A' into the index */
- cl_git_pass(git_repository_index(&index, g_repo));
- cl_git_pass(git_index_add_bypath(index, "A"));
- cl_git_pass(git_index_write(index));
-
- cl_git_pass(git_diff_index_to_workdir(&diff, g_repo, index, NULL));
- cl_assert_equal_i(0, git_diff_num_deltas(diff));
-
- /* Change its contents quickly, so we get the same timestamp */
- cl_git_mkfile(path.ptr, "B");
-
- cl_git_pass(git_diff_index_to_workdir(&diff, g_repo, index, NULL));
- cl_assert_equal_i(1, git_diff_num_deltas(diff));
-}
diff --git a/tests/diff/workdir.c b/tests/diff/workdir.c
index 6b72f3286..13de6a98b 100644
--- a/tests/diff/workdir.c
+++ b/tests/diff/workdir.c
@@ -1623,6 +1623,8 @@ void test_diff_workdir__can_update_index(void)
/* now if we do it again, we should see fewer OID calculations */
+ /* tick again as the index updating from the previous diff might have reset the timestamp */
+ tick_index(index);
basic_diff_status(&diff, &opts);
cl_git_pass(git_diff_get_perfdata(&perf, diff));
@@ -1745,3 +1747,39 @@ void test_diff_workdir__binary_detection(void)
git_index_free(idx);
git_buf_free(&b);
}
+
+void test_diff_workdir__to_index_conflicted(void) {
+ const char *a_commit = "26a125ee1bf"; /* the current HEAD */
+ git_index_entry ancestor = {{0}}, ours = {{0}}, theirs = {{0}};
+ git_tree *a;
+ git_index *index;
+ git_diff *diff1, *diff2;
+ const git_diff_delta *delta;
+
+ g_repo = cl_git_sandbox_init("status");
+ a = resolve_commit_oid_to_tree(g_repo, a_commit);
+
+ cl_git_pass(git_repository_index(&index, g_repo));
+
+ ancestor.path = ours.path = theirs.path = "_file";
+ ancestor.mode = ours.mode = theirs.mode = 0100644;
+ git_oid_fromstr(&ancestor.id, "deadbeefdeadbeefdeadbeefdeadbeefdeadbeef");
+ git_oid_fromstr(&ours.id, "deadbeefdeadbeefdeadbeefdeadbeefdeadbeef");
+ git_oid_fromstr(&theirs.id, "deadbeefdeadbeefdeadbeefdeadbeefdeadbeef");
+ cl_git_pass(git_index_conflict_add(index, &ancestor, &ours, &theirs));
+
+ cl_git_pass(git_diff_tree_to_index(&diff1, g_repo, a, index, NULL));
+ cl_git_pass(git_diff_index_to_workdir(&diff2, g_repo, index, NULL));
+ cl_git_pass(git_diff_merge(diff1, diff2));
+
+ cl_assert_equal_i(git_diff_num_deltas(diff1), 12);
+ delta = git_diff_get_delta(diff1, 0);
+ cl_assert_equal_s(delta->old_file.path, "_file");
+ cl_assert_equal_i(delta->nfiles, 1);
+ cl_assert_equal_i(delta->status, GIT_DELTA_CONFLICTED);
+
+ git_diff_free(diff2);
+ git_diff_free(diff1);
+ git_index_free(index);
+ git_tree_free(a);
+}
diff --git a/tests/filter/crlf.c b/tests/filter/crlf.c
index 406d3b6b0..a8ebd949f 100644
--- a/tests/filter/crlf.c
+++ b/tests/filter/crlf.c
@@ -38,11 +38,7 @@ void test_filter_crlf__to_worktree(void)
cl_git_pass(git_filter_list_apply_to_data(&out, fl, &in));
-#ifdef GIT_WIN32
cl_assert_equal_s("Some text\r\nRight here\r\n", out.ptr);
-#else
- cl_assert_equal_s("Some text\nRight here\n", out.ptr);
-#endif
git_filter_list_free(fl);
git_buf_free(&out);
diff --git a/tests/generate_crlf.sh b/tests/generate_crlf.sh
new file mode 100644
index 000000000..d3fd1bb9a
--- /dev/null
+++ b/tests/generate_crlf.sh
@@ -0,0 +1,73 @@
+#!/usr/bin/env bash
+
+set -e
+
+if [ "$1" == "" -o "$2" == "" ]; then
+ echo "usage: $0 crlfrepo directory [tempdir]"
+ exit 1
+fi
+
+input=$1
+output=$2
+tempdir=$3
+
+set -u
+
+create_repo() {
+ local input=$1
+ local output=$2
+ local tempdir=$3
+ local systype=$4
+ local autocrlf=$5
+ local attr=$6
+
+ local worktree="${output}/${systype}/autocrlf_${autocrlf}"
+
+ if [ "$attr" != "" ]; then
+ local attrdir=`echo $attr | sed -e "s/ /,/g" | sed -e "s/=/_/g"`
+ worktree="${worktree},${attrdir}"
+ fi
+
+ if [ "$tempdir" = "" ]; then
+ local gitdir="${worktree}/.git"
+ else
+ local gitdir="${tempdir}/generate_crlf_${RANDOM}"
+ fi
+
+ echo "Creating ${worktree}"
+ mkdir -p "${worktree}"
+
+ git clone --no-checkout --quiet --bare "${input}/.gitted" "${gitdir}"
+ git --work-tree="${worktree}" --git-dir="${gitdir}" config core.autocrlf ${autocrlf}
+
+ if [ "$attr" != "" ]; then
+ echo "* ${attr}" >> "${worktree}/.gitattributes"
+ fi
+
+ git --work-tree="${worktree}" --git-dir="${gitdir}" checkout HEAD
+
+ if [ "$attr" != "" ]; then
+ rm "${worktree}/.gitattributes"
+ fi
+
+ if [ "$tempdir" != "" ]; then
+ rm -rf "${gitdir}"
+ fi
+}
+
+if [[ `uname -s` == MINGW* ]]; then
+ systype="windows"
+else
+ systype="posix"
+fi
+
+for autocrlf in true false input; do
+ for attr in "" text text=auto -text crlf -crlf eol=lf eol=crlf \
+ "text eol=lf" "text eol=crlf" \
+ "text=auto eol=lf" "text=auto eol=crlf"; do
+
+ create_repo "${input}" "${output}" "${tempdir}" \
+ "${systype}" "${autocrlf}" "${attr}"
+ done
+done
+
diff --git a/tests/index/racy.c b/tests/index/racy.c
new file mode 100644
index 000000000..3a4bc439e
--- /dev/null
+++ b/tests/index/racy.c
@@ -0,0 +1,143 @@
+#include "clar_libgit2.h"
+#include "../checkout/checkout_helpers.h"
+
+#include "buffer.h"
+#include "index.h"
+
+static git_repository *g_repo;
+
+void test_index_racy__initialize(void)
+{
+ cl_git_pass(git_repository_init(&g_repo, "diff_racy", false));
+}
+
+void test_index_racy__cleanup(void)
+{
+ git_repository_free(g_repo);
+ g_repo = NULL;
+
+ cl_fixture_cleanup("diff_racy");
+}
+
+void test_index_racy__diff(void)
+{
+ git_index *index;
+ git_diff *diff;
+ git_buf path = GIT_BUF_INIT;
+
+ cl_git_pass(git_buf_joinpath(&path, git_repository_workdir(g_repo), "A"));
+ cl_git_mkfile(path.ptr, "A");
+
+ /* Put 'A' into the index */
+ cl_git_pass(git_repository_index(&index, g_repo));
+ cl_git_pass(git_index_add_bypath(index, "A"));
+ cl_git_pass(git_index_write(index));
+
+ cl_git_pass(git_diff_index_to_workdir(&diff, g_repo, index, NULL));
+ cl_assert_equal_i(0, git_diff_num_deltas(diff));
+ git_diff_free(diff);
+
+ /* Change its contents quickly, so we get the same timestamp */
+ cl_git_mkfile(path.ptr, "B");
+
+ cl_git_pass(git_diff_index_to_workdir(&diff, g_repo, index, NULL));
+ cl_assert_equal_i(1, git_diff_num_deltas(diff));
+
+ git_index_free(index);
+ git_diff_free(diff);
+ git_buf_free(&path);
+}
+
+void test_index_racy__write_index_just_after_file(void)
+{
+ git_index *index;
+ git_diff *diff;
+ git_buf path = GIT_BUF_INIT;
+ struct timeval times[2];
+
+ /* Make sure we do have a timestamp */
+ cl_git_pass(git_repository_index(&index, g_repo));
+ cl_git_pass(git_index_write(index));
+
+ cl_git_pass(git_buf_joinpath(&path, git_repository_workdir(g_repo), "A"));
+ cl_git_mkfile(path.ptr, "A");
+ /* Force the file's timestamp to be a second after we wrote the index */
+ times[0].tv_sec = index->stamp.mtime + 1;
+ times[0].tv_usec = 0;
+ times[1].tv_sec = index->stamp.mtime + 1;
+ times[1].tv_usec = 0;
+ cl_git_pass(p_utimes(path.ptr, times));
+
+ /*
+ * Put 'A' into the index, the size field will be filled,
+ * because the index' on-disk timestamp does not match the
+ * file's timestamp.
+ */
+ cl_git_pass(git_index_add_bypath(index, "A"));
+ cl_git_pass(git_index_write(index));
+
+ cl_git_mkfile(path.ptr, "B");
+ /*
+ * Pretend this index' modification happend a second after the
+ * file update, and rewrite the file in that same second.
+ */
+ times[0].tv_sec = index->stamp.mtime + 2;
+ times[0].tv_usec = 0;
+ times[1].tv_sec = index->stamp.mtime + 2;
+ times[0].tv_usec = 0;
+
+ cl_git_pass(p_utimes(git_index_path(index), times));
+ cl_git_pass(p_utimes(path.ptr, times));
+
+ cl_git_pass(git_index_read(index, true));
+
+ cl_git_pass(git_diff_index_to_workdir(&diff, g_repo, index, NULL));
+ cl_assert_equal_i(1, git_diff_num_deltas(diff));
+
+ git_buf_free(&path);
+ git_diff_free(diff);
+ git_index_free(index);
+}
+
+void test_index_racy__empty_file_after_smudge(void)
+{
+ git_index *index;
+ git_diff *diff;
+ git_buf path = GIT_BUF_INIT;
+ int i, found_race = 0;
+ const git_index_entry *entry;
+
+ /* Make sure we do have a timestamp */
+ cl_git_pass(git_repository_index(&index, g_repo));
+ cl_git_pass(git_index_write(index));
+
+ cl_git_pass(git_buf_joinpath(&path, git_repository_workdir(g_repo), "A"));
+
+ /* Make sure writing the file, adding and rewriting happen in the same second */
+ for (i = 0; i < 10; i++) {
+ struct stat st;
+ cl_git_mkfile(path.ptr, "A");
+
+ cl_git_pass(git_index_add_bypath(index, "A"));
+ cl_git_mkfile(path.ptr, "B");
+ cl_git_pass(git_index_write(index));
+
+ cl_git_mkfile(path.ptr, "");
+
+ cl_git_pass(p_stat(path.ptr, &st));
+ cl_assert(entry = git_index_get_bypath(index, "A", 0));
+ if (entry->mtime.seconds == (int32_t) st.st_mtime) {
+ found_race = 1;
+ break;
+ }
+
+ }
+
+ if (!found_race)
+ cl_fail("failed to find race after 10 attempts");
+
+ cl_assert_equal_i(0, entry->file_size);
+
+ cl_git_pass(git_diff_index_to_workdir(&diff, g_repo, index, NULL));
+ cl_assert_equal_i(1, git_diff_num_deltas(diff));
+}
diff --git a/tests/merge/workdir/dirty.c b/tests/merge/workdir/dirty.c
index 30c404b70..4bf984c23 100644
--- a/tests/merge/workdir/dirty.c
+++ b/tests/merge/workdir/dirty.c
@@ -133,12 +133,25 @@ static void hack_index(char *files[])
struct stat statbuf;
git_buf path = GIT_BUF_INIT;
git_index_entry *entry;
+ struct timeval times[2];
+ time_t now;
size_t i;
/* Update the index to suggest that checkout placed these files on
* disk, keeping the object id but updating the cache, which will
* emulate a Git implementation's different filter.
+ *
+ * We set the file's timestamp to before now to pretend that
+ * it was an old checkout so we don't trigger the racy
+ * protections would would check the content.
*/
+
+ now = time(NULL);
+ times[0].tv_sec = now - 5;
+ times[0].tv_usec = 0;
+ times[1].tv_sec = now - 5;
+ times[1].tv_usec = 0;
+
for (i = 0, filename = files[i]; filename; filename = files[++i]) {
git_buf_clear(&path);
@@ -146,6 +159,7 @@ static void hack_index(char *files[])
git_index_get_bypath(repo_index, filename, 0));
cl_git_pass(git_buf_printf(&path, "%s/%s", TEST_REPO_PATH, filename));
+ cl_git_pass(p_utimes(path.ptr, times));
cl_git_pass(p_stat(path.ptr, &statbuf));
entry->ctime.seconds = (git_time_t)statbuf.st_ctime;
@@ -245,7 +259,6 @@ static int merge_differently_filtered_files(char *files[])
write_files(files);
hack_index(files);
- repo_index->stamp.mtime = time(NULL) + 1;
cl_git_pass(git_index_write(repo_index));
error = merge_branch();
diff --git a/tests/repo/open.c b/tests/repo/open.c
index 637c785d5..eb459e51d 100644
--- a/tests/repo/open.c
+++ b/tests/repo/open.c
@@ -20,6 +20,23 @@ void test_repo_open__bare_empty_repo(void)
cl_assert(git_repository_workdir(repo) == NULL);
}
+void test_repo_open__format_version_1(void)
+{
+ git_repository *repo;
+ git_config *config;
+
+ repo = cl_git_sandbox_init("empty_bare.git");
+
+ cl_git_pass(git_repository_open(&repo, "empty_bare.git"));
+ cl_git_pass(git_repository_config(&config, repo));
+
+ cl_git_pass(git_config_set_int32(config, "core.repositoryformatversion", 1));
+
+ git_config_free(config);
+ git_repository_free(repo);
+ cl_git_fail(git_repository_open(&repo, "empty_bare.git"));
+}
+
void test_repo_open__standard_empty_repo_through_gitdir(void)
{
git_repository *repo;
diff --git a/tests/resources/crlf/.gitted/index b/tests/resources/crlf/.gitted/index
index aadd35e72..e8d43e97e 100644
--- a/tests/resources/crlf/.gitted/index
+++ b/tests/resources/crlf/.gitted/index
Binary files differ
diff --git a/tests/resources/crlf/.gitted/objects/09/7722be9b67b48dfe3b19396d02fd535300ee46 b/tests/resources/crlf/.gitted/objects/09/7722be9b67b48dfe3b19396d02fd535300ee46
new file mode 100644
index 000000000..5c5c24cd5
--- /dev/null
+++ b/tests/resources/crlf/.gitted/objects/09/7722be9b67b48dfe3b19396d02fd535300ee46
Binary files differ
diff --git a/tests/resources/crlf/.gitted/objects/16/78031ee023a23bd3515e4e1693b661a69f0a73 b/tests/resources/crlf/.gitted/objects/16/78031ee023a23bd3515e4e1693b661a69f0a73
new file mode 100644
index 000000000..4aa4ffb1d
--- /dev/null
+++ b/tests/resources/crlf/.gitted/objects/16/78031ee023a23bd3515e4e1693b661a69f0a73
Binary files differ
diff --git a/tests/resources/crlf/.gitted/objects/18/c637c5d9aba6eed226ee1840cd1ca2e6c4e4c5 b/tests/resources/crlf/.gitted/objects/18/c637c5d9aba6eed226ee1840cd1ca2e6c4e4c5
new file mode 100644
index 000000000..790eb1324
--- /dev/null
+++ b/tests/resources/crlf/.gitted/objects/18/c637c5d9aba6eed226ee1840cd1ca2e6c4e4c5
Binary files differ
diff --git a/tests/resources/crlf/.gitted/objects/20/3555c5676d75cd80d69b50beb1f4b588c59ceb b/tests/resources/crlf/.gitted/objects/20/3555c5676d75cd80d69b50beb1f4b588c59ceb
new file mode 100644
index 000000000..8038a9b10
--- /dev/null
+++ b/tests/resources/crlf/.gitted/objects/20/3555c5676d75cd80d69b50beb1f4b588c59ceb
Binary files differ
diff --git a/tests/resources/crlf/.gitted/objects/23/f4582779e60bfa7f14750ad507399a58876611 b/tests/resources/crlf/.gitted/objects/23/f4582779e60bfa7f14750ad507399a58876611
new file mode 100644
index 000000000..4a4e4dc9e
--- /dev/null
+++ b/tests/resources/crlf/.gitted/objects/23/f4582779e60bfa7f14750ad507399a58876611
Binary files differ
diff --git a/tests/resources/crlf/.gitted/objects/2a/d3df895f68f4dda6a0a815c620b909bdd27c05 b/tests/resources/crlf/.gitted/objects/2a/d3df895f68f4dda6a0a815c620b909bdd27c05
new file mode 100644
index 000000000..f5421cf6a
--- /dev/null
+++ b/tests/resources/crlf/.gitted/objects/2a/d3df895f68f4dda6a0a815c620b909bdd27c05
Binary files differ
diff --git a/tests/resources/crlf/.gitted/objects/2b/d9d81b51a867352bab307b89cbb5b4a69adfe1 b/tests/resources/crlf/.gitted/objects/2b/d9d81b51a867352bab307b89cbb5b4a69adfe1
new file mode 100644
index 000000000..96d952e85
--- /dev/null
+++ b/tests/resources/crlf/.gitted/objects/2b/d9d81b51a867352bab307b89cbb5b4a69adfe1
Binary files differ
diff --git a/tests/resources/crlf/.gitted/objects/2c/03f9f407b576eae80327864bab572e282a33ea b/tests/resources/crlf/.gitted/objects/2c/03f9f407b576eae80327864bab572e282a33ea
new file mode 100644
index 000000000..0e4afbbba
--- /dev/null
+++ b/tests/resources/crlf/.gitted/objects/2c/03f9f407b576eae80327864bab572e282a33ea
Binary files differ
diff --git a/tests/resources/crlf/.gitted/objects/33/cdead44e1c3ec178e39a4a69085280dbacf01b b/tests/resources/crlf/.gitted/objects/33/cdead44e1c3ec178e39a4a69085280dbacf01b
new file mode 100644
index 000000000..72dc780a0
--- /dev/null
+++ b/tests/resources/crlf/.gitted/objects/33/cdead44e1c3ec178e39a4a69085280dbacf01b
Binary files differ
diff --git a/tests/resources/crlf/.gitted/objects/41/7786fc35b3c71aa546e3f95eb5da3c8dad8c41 b/tests/resources/crlf/.gitted/objects/41/7786fc35b3c71aa546e3f95eb5da3c8dad8c41
new file mode 100644
index 000000000..ec57bdeba
--- /dev/null
+++ b/tests/resources/crlf/.gitted/objects/41/7786fc35b3c71aa546e3f95eb5da3c8dad8c41
Binary files differ
diff --git a/tests/resources/crlf/.gitted/objects/5a/fb6a14a864e30787857dd92af837e8cdd2cb1b b/tests/resources/crlf/.gitted/objects/5a/fb6a14a864e30787857dd92af837e8cdd2cb1b
new file mode 100644
index 000000000..11a25c581
--- /dev/null
+++ b/tests/resources/crlf/.gitted/objects/5a/fb6a14a864e30787857dd92af837e8cdd2cb1b
Binary files differ
diff --git a/tests/resources/crlf/.gitted/objects/68/03c385642cebc8103fddd526ef395d75678a7e b/tests/resources/crlf/.gitted/objects/68/03c385642cebc8103fddd526ef395d75678a7e
new file mode 100644
index 000000000..f8d489fcb
--- /dev/null
+++ b/tests/resources/crlf/.gitted/objects/68/03c385642cebc8103fddd526ef395d75678a7e
@@ -0,0 +1,2 @@
+xKj0Ьu}, !d &hZ0QvgWuz9OAHv Bh9!EM}cf52v%m` /=ZË MoeV3
+fr1pѓj8.[_ K^@kѡYj \ No newline at end of file
diff --git a/tests/resources/crlf/.gitted/objects/69/597764abeaa1a403ebf589d2ea579c6a8f877e b/tests/resources/crlf/.gitted/objects/69/597764abeaa1a403ebf589d2ea579c6a8f877e
new file mode 100644
index 000000000..ee4f4273d
--- /dev/null
+++ b/tests/resources/crlf/.gitted/objects/69/597764abeaa1a403ebf589d2ea579c6a8f877e
@@ -0,0 +1 @@
+xэ0 a3Owr&%`NĎ-J!1|si`ݸkUȢr.*{zgr>ɱcbn\ui c.x"D,N,VuՒ.umgzL=@[kIǦismbY>!nJL \ No newline at end of file
diff --git a/tests/resources/crlf/.gitted/objects/6c/589757f65a970a6cc07c71c3f3d2528c611cbc b/tests/resources/crlf/.gitted/objects/6c/589757f65a970a6cc07c71c3f3d2528c611cbc
new file mode 100644
index 000000000..fe4da8ce0
--- /dev/null
+++ b/tests/resources/crlf/.gitted/objects/6c/589757f65a970a6cc07c71c3f3d2528c611cbc
@@ -0,0 +1,2 @@
+x-KN0Y;PYpr5j#ǀ=nnF3iUUp$dKbN)OL)`Pf'VpCVY$SճcqVI:W
+oZ^tvӁGW9gL2<kM+Ko |\ʺ;Nݱ>$81ÛeUe r}.Q \ No newline at end of file
diff --git a/tests/resources/crlf/.gitted/objects/77/afe26d93c49279ca90604c125496920753fede b/tests/resources/crlf/.gitted/objects/77/afe26d93c49279ca90604c125496920753fede
new file mode 100644
index 000000000..a377cb04d
--- /dev/null
+++ b/tests/resources/crlf/.gitted/objects/77/afe26d93c49279ca90604c125496920753fede
Binary files differ
diff --git a/tests/resources/crlf/.gitted/objects/85/340755cfe5e28c2835781978bb1cece91b3d0f b/tests/resources/crlf/.gitted/objects/85/340755cfe5e28c2835781978bb1cece91b3d0f
new file mode 100644
index 000000000..e83fbc290
--- /dev/null
+++ b/tests/resources/crlf/.gitted/objects/85/340755cfe5e28c2835781978bb1cece91b3d0f
Binary files differ
diff --git a/tests/resources/crlf/.gitted/objects/92/0e90a663bea5d740989d5f935f6dfb473a0c5d b/tests/resources/crlf/.gitted/objects/92/0e90a663bea5d740989d5f935f6dfb473a0c5d
new file mode 100644
index 000000000..f872be6e9
--- /dev/null
+++ b/tests/resources/crlf/.gitted/objects/92/0e90a663bea5d740989d5f935f6dfb473a0c5d
Binary files differ
diff --git a/tests/resources/crlf/.gitted/objects/9d/29b5bb165bf65637ffcb5ededb82ddd7c3fd13 b/tests/resources/crlf/.gitted/objects/9d/29b5bb165bf65637ffcb5ededb82ddd7c3fd13
new file mode 100644
index 000000000..106332d55
--- /dev/null
+++ b/tests/resources/crlf/.gitted/objects/9d/29b5bb165bf65637ffcb5ededb82ddd7c3fd13
Binary files differ
diff --git a/tests/resources/crlf/.gitted/objects/aa/f083a9cb53dac3669dcfa0e48921580d629ec7 b/tests/resources/crlf/.gitted/objects/aa/f083a9cb53dac3669dcfa0e48921580d629ec7
new file mode 100644
index 000000000..38775d005
--- /dev/null
+++ b/tests/resources/crlf/.gitted/objects/aa/f083a9cb53dac3669dcfa0e48921580d629ec7
Binary files differ
diff --git a/tests/resources/crlf/.gitted/objects/af/6fcf6da196f615d7cda269b55b5c4ecfb4a5b3 b/tests/resources/crlf/.gitted/objects/af/6fcf6da196f615d7cda269b55b5c4ecfb4a5b3
new file mode 100644
index 000000000..0acc9744e
--- /dev/null
+++ b/tests/resources/crlf/.gitted/objects/af/6fcf6da196f615d7cda269b55b5c4ecfb4a5b3
Binary files differ
diff --git a/tests/resources/crlf/.gitted/objects/bb/29a7b46b5d4ba3ea17b238ae561b81d59dc818 b/tests/resources/crlf/.gitted/objects/bb/29a7b46b5d4ba3ea17b238ae561b81d59dc818
new file mode 100644
index 000000000..a08789b54
--- /dev/null
+++ b/tests/resources/crlf/.gitted/objects/bb/29a7b46b5d4ba3ea17b238ae561b81d59dc818
Binary files differ
diff --git a/tests/resources/crlf/.gitted/objects/c8/d0b1ebcaccdd8f968c4aae3c2175e7fed651fe b/tests/resources/crlf/.gitted/objects/c8/d0b1ebcaccdd8f968c4aae3c2175e7fed651fe
new file mode 100644
index 000000000..21e2ce093
--- /dev/null
+++ b/tests/resources/crlf/.gitted/objects/c8/d0b1ebcaccdd8f968c4aae3c2175e7fed651fe
@@ -0,0 +1,2 @@
+x-Kn0C)f8od (t4#؈e9~;$RKI1*1;tf9Edb&1LʈPyk 0#*FeYtٱ{7opkuI^ec3Z? NRI)c
+[^}|+?wTX #ވ,L!5C^V>=R~ \ No newline at end of file
diff --git a/tests/resources/crlf/.gitted/objects/cd/d3dacc5c0501d5ea57bbdf90e3d80176606139 b/tests/resources/crlf/.gitted/objects/cd/d3dacc5c0501d5ea57bbdf90e3d80176606139
new file mode 100644
index 000000000..72cf3b0fd
--- /dev/null
+++ b/tests/resources/crlf/.gitted/objects/cd/d3dacc5c0501d5ea57bbdf90e3d80176606139
Binary files differ
diff --git a/tests/resources/crlf/.gitted/objects/d1/1e7ef63ba7db1db3b1b99cdbafc57a8549f8a4 b/tests/resources/crlf/.gitted/objects/d1/1e7ef63ba7db1db3b1b99cdbafc57a8549f8a4
new file mode 100644
index 000000000..05d88fc86
--- /dev/null
+++ b/tests/resources/crlf/.gitted/objects/d1/1e7ef63ba7db1db3b1b99cdbafc57a8549f8a4
Binary files differ
diff --git a/tests/resources/crlf/.gitted/objects/de/5bfa165999d9d6c6dbafad2a7e709f93ec30fd b/tests/resources/crlf/.gitted/objects/de/5bfa165999d9d6c6dbafad2a7e709f93ec30fd
new file mode 100644
index 000000000..e288b975f
--- /dev/null
+++ b/tests/resources/crlf/.gitted/objects/de/5bfa165999d9d6c6dbafad2a7e709f93ec30fd
Binary files differ
diff --git a/tests/resources/crlf/.gitted/objects/e5/062da7d7802cf492975eda580f09ac4876bd88 b/tests/resources/crlf/.gitted/objects/e5/062da7d7802cf492975eda580f09ac4876bd88
new file mode 100644
index 000000000..62835b9e1
--- /dev/null
+++ b/tests/resources/crlf/.gitted/objects/e5/062da7d7802cf492975eda580f09ac4876bd88
@@ -0,0 +1 @@
+xQ1D)j'd2")xN,3x^AQj)UD`iJֻ>Fc:D&Rr.1#DǓ,HPϖ}9rPGŏ6 ~ a/ }IDx$kj&_֨GZכ›| ǸU \ No newline at end of file
diff --git a/tests/resources/crlf/.gitted/objects/f2/b745d7f47d114a3a6b31a7b628e61e804d1a58 b/tests/resources/crlf/.gitted/objects/f2/b745d7f47d114a3a6b31a7b628e61e804d1a58
new file mode 100644
index 000000000..7b2e7a116
--- /dev/null
+++ b/tests/resources/crlf/.gitted/objects/f2/b745d7f47d114a3a6b31a7b628e61e804d1a58
Binary files differ
diff --git a/tests/resources/crlf/.gitted/objects/fe/ab3713c4659bb22700042b3c55b8d60d0a952b b/tests/resources/crlf/.gitted/objects/fe/ab3713c4659bb22700042b3c55b8d60d0a952b
new file mode 100644
index 000000000..8552c7bf7
--- /dev/null
+++ b/tests/resources/crlf/.gitted/objects/fe/ab3713c4659bb22700042b3c55b8d60d0a952b
Binary files differ
diff --git a/tests/resources/crlf/.gitted/refs/heads/master b/tests/resources/crlf/.gitted/refs/heads/master
index c150a9776..fe1d0aa03 100644
--- a/tests/resources/crlf/.gitted/refs/heads/master
+++ b/tests/resources/crlf/.gitted/refs/heads/master
@@ -1 +1 @@
-044bcd5c9bf5ebdd51e514a9a36457018f06f6e1
+5afb6a14a864e30787857dd92af837e8cdd2cb1b
diff --git a/tests/resources/crlf/.gitted/refs/heads/utf8 b/tests/resources/crlf/.gitted/refs/heads/utf8
deleted file mode 100644
index 30ab61cd3..000000000
--- a/tests/resources/crlf/.gitted/refs/heads/utf8
+++ /dev/null
@@ -1 +0,0 @@
-a234455d62297f1856c4603686150c59fcb0aafe
diff --git a/tests/resources/crlf_data/.gitattributes b/tests/resources/crlf_data/.gitattributes
new file mode 100644
index 000000000..23d9bdb29
--- /dev/null
+++ b/tests/resources/crlf_data/.gitattributes
@@ -0,0 +1 @@
+* binary
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,-crlf/all-crlf b/tests/resources/crlf_data/posix/autocrlf_false,-crlf/all-crlf
new file mode 100644
index 000000000..a9a2e8913
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,-crlf/all-crlf
@@ -0,0 +1,4 @@
+crlf
+crlf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,-crlf/all-crlf-utf8bom b/tests/resources/crlf_data/posix/autocrlf_false,-crlf/all-crlf-utf8bom
new file mode 100644
index 000000000..0aa76e474
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,-crlf/all-crlf-utf8bom
@@ -0,0 +1,4 @@
+crlf
+crlf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,-crlf/all-lf b/tests/resources/crlf_data/posix/autocrlf_false,-crlf/all-lf
new file mode 100644
index 000000000..799770d1c
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,-crlf/all-lf
@@ -0,0 +1,5 @@
+lf
+lf
+lf
+lf
+lf
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,-crlf/all-lf-utf8bom b/tests/resources/crlf_data/posix/autocrlf_false,-crlf/all-lf-utf8bom
new file mode 100644
index 000000000..7cce67e58
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,-crlf/all-lf-utf8bom
@@ -0,0 +1,5 @@
+lf
+lf
+lf
+lf
+lf
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,-crlf/binary-all-crlf b/tests/resources/crlf_data/posix/autocrlf_false,-crlf/binary-all-crlf
new file mode 100644
index 000000000..85340755c
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,-crlf/binary-all-crlf
@@ -0,0 +1,4 @@
+one
+two
+three
+four
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,-crlf/binary-all-lf b/tests/resources/crlf_data/posix/autocrlf_false,-crlf/binary-all-lf
new file mode 100644
index 000000000..af6fcf6da
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,-crlf/binary-all-lf
@@ -0,0 +1,4 @@
+one
+two
+three
+four
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,-crlf/binary-mixed-lf-cr b/tests/resources/crlf_data/posix/autocrlf_false,-crlf/binary-mixed-lf-cr
new file mode 100644
index 000000000..203555c56
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,-crlf/binary-mixed-lf-cr
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,-crlf/binary-mixed-lf-cr-crlf b/tests/resources/crlf_data/posix/autocrlf_false,-crlf/binary-mixed-lf-cr-crlf
new file mode 100644
index 000000000..aaf083a9c
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,-crlf/binary-mixed-lf-cr-crlf
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,-crlf/few-utf8-chars-crlf b/tests/resources/crlf_data/posix/autocrlf_false,-crlf/few-utf8-chars-crlf
new file mode 100644
index 000000000..0e0528888
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,-crlf/few-utf8-chars-crlf
@@ -0,0 +1,22 @@
+⚽The rest is ASCII01.
+The rest is ASCII02.
+The rest is ASCII03.
+The rest is ASCII04.
+The rest is ASCII05.
+The rest is ASCII06.
+The rest is ASCII07.
+The rest is ASCII08.
+The rest is ASCII09.
+The rest is ASCII10.
+The rest is ASCII11.
+The rest is ASCII12.
+The rest is ASCII13.
+The rest is ASCII14.
+The rest is ASCII15.
+The rest is ASCII16.
+The rest is ASCII17.
+The rest is ASCII18.
+The rest is ASCII19.
+The rest is ASCII20.
+The rest is ASCII21.
+The rest is ASCII22.
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,-crlf/few-utf8-chars-lf b/tests/resources/crlf_data/posix/autocrlf_false,-crlf/few-utf8-chars-lf
new file mode 100644
index 000000000..f4d25b796
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,-crlf/few-utf8-chars-lf
@@ -0,0 +1,22 @@
+⚽The rest is ASCII01.
+The rest is ASCII02.
+The rest is ASCII03.
+The rest is ASCII04.
+The rest is ASCII05.
+The rest is ASCII06.
+The rest is ASCII07.
+The rest is ASCII08.
+The rest is ASCII09.
+The rest is ASCII10.
+The rest is ASCII11.
+The rest is ASCII12.
+The rest is ASCII13.
+The rest is ASCII14.
+The rest is ASCII15.
+The rest is ASCII16.
+The rest is ASCII17.
+The rest is ASCII18.
+The rest is ASCII19.
+The rest is ASCII20.
+The rest is ASCII21.
+The rest is ASCII22.
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,-crlf/many-utf8-chars-crlf b/tests/resources/crlf_data/posix/autocrlf_false,-crlf/many-utf8-chars-crlf
new file mode 100644
index 000000000..cd574f5a2
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,-crlf/many-utf8-chars-crlf
@@ -0,0 +1,4 @@
+Lets sing!
+♫♪♬♩
+Eat food
+🍅🍕
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,-crlf/many-utf8-chars-lf b/tests/resources/crlf_data/posix/autocrlf_false,-crlf/many-utf8-chars-lf
new file mode 100644
index 000000000..9a6c3533f
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,-crlf/many-utf8-chars-lf
@@ -0,0 +1,4 @@
+Lets sing!
+♫♪♬♩
+Eat food
+🍅🍕
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,-crlf/mixed-lf-cr b/tests/resources/crlf_data/posix/autocrlf_false,-crlf/mixed-lf-cr
new file mode 100644
index 000000000..d11e7ef63
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,-crlf/mixed-lf-cr
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,-crlf/mixed-lf-cr-crlf b/tests/resources/crlf_data/posix/autocrlf_false,-crlf/mixed-lf-cr-crlf
new file mode 100644
index 000000000..417786fc3
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,-crlf/mixed-lf-cr-crlf
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,-crlf/more-crlf b/tests/resources/crlf_data/posix/autocrlf_false,-crlf/more-crlf
new file mode 100644
index 000000000..0ff5a53f1
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,-crlf/more-crlf
@@ -0,0 +1,5 @@
+crlf
+crlf
+lf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,-crlf/more-crlf-utf8bom b/tests/resources/crlf_data/posix/autocrlf_false,-crlf/more-crlf-utf8bom
new file mode 100644
index 000000000..ea030d3c6
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,-crlf/more-crlf-utf8bom
@@ -0,0 +1,5 @@
+crlf
+crlf
+lf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,-crlf/more-lf b/tests/resources/crlf_data/posix/autocrlf_false,-crlf/more-lf
new file mode 100644
index 000000000..04de00b35
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,-crlf/more-lf
@@ -0,0 +1,5 @@
+lf
+lf
+crlf
+lf
+lf
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,-crlf/more-lf-utf8bom b/tests/resources/crlf_data/posix/autocrlf_false,-crlf/more-lf-utf8bom
new file mode 100644
index 000000000..dc88e3b91
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,-crlf/more-lf-utf8bom
@@ -0,0 +1,5 @@
+lf
+lf
+crlf
+lf
+lf
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,-crlf/zero-byte b/tests/resources/crlf_data/posix/autocrlf_false,-crlf/zero-byte
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,-crlf/zero-byte
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,-text/all-crlf b/tests/resources/crlf_data/posix/autocrlf_false,-text/all-crlf
new file mode 100644
index 000000000..a9a2e8913
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,-text/all-crlf
@@ -0,0 +1,4 @@
+crlf
+crlf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,-text/all-crlf-utf8bom b/tests/resources/crlf_data/posix/autocrlf_false,-text/all-crlf-utf8bom
new file mode 100644
index 000000000..0aa76e474
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,-text/all-crlf-utf8bom
@@ -0,0 +1,4 @@
+crlf
+crlf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,-text/all-lf b/tests/resources/crlf_data/posix/autocrlf_false,-text/all-lf
new file mode 100644
index 000000000..799770d1c
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,-text/all-lf
@@ -0,0 +1,5 @@
+lf
+lf
+lf
+lf
+lf
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,-text/all-lf-utf8bom b/tests/resources/crlf_data/posix/autocrlf_false,-text/all-lf-utf8bom
new file mode 100644
index 000000000..7cce67e58
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,-text/all-lf-utf8bom
@@ -0,0 +1,5 @@
+lf
+lf
+lf
+lf
+lf
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,-text/binary-all-crlf b/tests/resources/crlf_data/posix/autocrlf_false,-text/binary-all-crlf
new file mode 100644
index 000000000..85340755c
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,-text/binary-all-crlf
@@ -0,0 +1,4 @@
+one
+two
+three
+four
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,-text/binary-all-lf b/tests/resources/crlf_data/posix/autocrlf_false,-text/binary-all-lf
new file mode 100644
index 000000000..af6fcf6da
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,-text/binary-all-lf
@@ -0,0 +1,4 @@
+one
+two
+three
+four
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,-text/binary-mixed-lf-cr b/tests/resources/crlf_data/posix/autocrlf_false,-text/binary-mixed-lf-cr
new file mode 100644
index 000000000..203555c56
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,-text/binary-mixed-lf-cr
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,-text/binary-mixed-lf-cr-crlf b/tests/resources/crlf_data/posix/autocrlf_false,-text/binary-mixed-lf-cr-crlf
new file mode 100644
index 000000000..aaf083a9c
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,-text/binary-mixed-lf-cr-crlf
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,-text/few-utf8-chars-crlf b/tests/resources/crlf_data/posix/autocrlf_false,-text/few-utf8-chars-crlf
new file mode 100644
index 000000000..0e0528888
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,-text/few-utf8-chars-crlf
@@ -0,0 +1,22 @@
+⚽The rest is ASCII01.
+The rest is ASCII02.
+The rest is ASCII03.
+The rest is ASCII04.
+The rest is ASCII05.
+The rest is ASCII06.
+The rest is ASCII07.
+The rest is ASCII08.
+The rest is ASCII09.
+The rest is ASCII10.
+The rest is ASCII11.
+The rest is ASCII12.
+The rest is ASCII13.
+The rest is ASCII14.
+The rest is ASCII15.
+The rest is ASCII16.
+The rest is ASCII17.
+The rest is ASCII18.
+The rest is ASCII19.
+The rest is ASCII20.
+The rest is ASCII21.
+The rest is ASCII22.
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,-text/few-utf8-chars-lf b/tests/resources/crlf_data/posix/autocrlf_false,-text/few-utf8-chars-lf
new file mode 100644
index 000000000..f4d25b796
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,-text/few-utf8-chars-lf
@@ -0,0 +1,22 @@
+⚽The rest is ASCII01.
+The rest is ASCII02.
+The rest is ASCII03.
+The rest is ASCII04.
+The rest is ASCII05.
+The rest is ASCII06.
+The rest is ASCII07.
+The rest is ASCII08.
+The rest is ASCII09.
+The rest is ASCII10.
+The rest is ASCII11.
+The rest is ASCII12.
+The rest is ASCII13.
+The rest is ASCII14.
+The rest is ASCII15.
+The rest is ASCII16.
+The rest is ASCII17.
+The rest is ASCII18.
+The rest is ASCII19.
+The rest is ASCII20.
+The rest is ASCII21.
+The rest is ASCII22.
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,-text/many-utf8-chars-crlf b/tests/resources/crlf_data/posix/autocrlf_false,-text/many-utf8-chars-crlf
new file mode 100644
index 000000000..cd574f5a2
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,-text/many-utf8-chars-crlf
@@ -0,0 +1,4 @@
+Lets sing!
+♫♪♬♩
+Eat food
+🍅🍕
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,-text/many-utf8-chars-lf b/tests/resources/crlf_data/posix/autocrlf_false,-text/many-utf8-chars-lf
new file mode 100644
index 000000000..9a6c3533f
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,-text/many-utf8-chars-lf
@@ -0,0 +1,4 @@
+Lets sing!
+♫♪♬♩
+Eat food
+🍅🍕
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,-text/mixed-lf-cr b/tests/resources/crlf_data/posix/autocrlf_false,-text/mixed-lf-cr
new file mode 100644
index 000000000..d11e7ef63
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,-text/mixed-lf-cr
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,-text/mixed-lf-cr-crlf b/tests/resources/crlf_data/posix/autocrlf_false,-text/mixed-lf-cr-crlf
new file mode 100644
index 000000000..417786fc3
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,-text/mixed-lf-cr-crlf
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,-text/more-crlf b/tests/resources/crlf_data/posix/autocrlf_false,-text/more-crlf
new file mode 100644
index 000000000..0ff5a53f1
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,-text/more-crlf
@@ -0,0 +1,5 @@
+crlf
+crlf
+lf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,-text/more-crlf-utf8bom b/tests/resources/crlf_data/posix/autocrlf_false,-text/more-crlf-utf8bom
new file mode 100644
index 000000000..ea030d3c6
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,-text/more-crlf-utf8bom
@@ -0,0 +1,5 @@
+crlf
+crlf
+lf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,-text/more-lf b/tests/resources/crlf_data/posix/autocrlf_false,-text/more-lf
new file mode 100644
index 000000000..04de00b35
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,-text/more-lf
@@ -0,0 +1,5 @@
+lf
+lf
+crlf
+lf
+lf
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,-text/more-lf-utf8bom b/tests/resources/crlf_data/posix/autocrlf_false,-text/more-lf-utf8bom
new file mode 100644
index 000000000..dc88e3b91
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,-text/more-lf-utf8bom
@@ -0,0 +1,5 @@
+lf
+lf
+crlf
+lf
+lf
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,-text/zero-byte b/tests/resources/crlf_data/posix/autocrlf_false,-text/zero-byte
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,-text/zero-byte
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,crlf/all-crlf b/tests/resources/crlf_data/posix/autocrlf_false,crlf/all-crlf
new file mode 100644
index 000000000..a9a2e8913
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,crlf/all-crlf
@@ -0,0 +1,4 @@
+crlf
+crlf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,crlf/all-crlf-utf8bom b/tests/resources/crlf_data/posix/autocrlf_false,crlf/all-crlf-utf8bom
new file mode 100644
index 000000000..0aa76e474
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,crlf/all-crlf-utf8bom
@@ -0,0 +1,4 @@
+crlf
+crlf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,crlf/all-lf b/tests/resources/crlf_data/posix/autocrlf_false,crlf/all-lf
new file mode 100644
index 000000000..799770d1c
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,crlf/all-lf
@@ -0,0 +1,5 @@
+lf
+lf
+lf
+lf
+lf
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,crlf/all-lf-utf8bom b/tests/resources/crlf_data/posix/autocrlf_false,crlf/all-lf-utf8bom
new file mode 100644
index 000000000..7cce67e58
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,crlf/all-lf-utf8bom
@@ -0,0 +1,5 @@
+lf
+lf
+lf
+lf
+lf
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,crlf/binary-all-crlf b/tests/resources/crlf_data/posix/autocrlf_false,crlf/binary-all-crlf
new file mode 100644
index 000000000..85340755c
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,crlf/binary-all-crlf
@@ -0,0 +1,4 @@
+one
+two
+three
+four
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,crlf/binary-all-lf b/tests/resources/crlf_data/posix/autocrlf_false,crlf/binary-all-lf
new file mode 100644
index 000000000..af6fcf6da
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,crlf/binary-all-lf
@@ -0,0 +1,4 @@
+one
+two
+three
+four
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,crlf/binary-mixed-lf-cr b/tests/resources/crlf_data/posix/autocrlf_false,crlf/binary-mixed-lf-cr
new file mode 100644
index 000000000..203555c56
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,crlf/binary-mixed-lf-cr
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,crlf/binary-mixed-lf-cr-crlf b/tests/resources/crlf_data/posix/autocrlf_false,crlf/binary-mixed-lf-cr-crlf
new file mode 100644
index 000000000..aaf083a9c
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,crlf/binary-mixed-lf-cr-crlf
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,crlf/few-utf8-chars-crlf b/tests/resources/crlf_data/posix/autocrlf_false,crlf/few-utf8-chars-crlf
new file mode 100644
index 000000000..0e0528888
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,crlf/few-utf8-chars-crlf
@@ -0,0 +1,22 @@
+⚽The rest is ASCII01.
+The rest is ASCII02.
+The rest is ASCII03.
+The rest is ASCII04.
+The rest is ASCII05.
+The rest is ASCII06.
+The rest is ASCII07.
+The rest is ASCII08.
+The rest is ASCII09.
+The rest is ASCII10.
+The rest is ASCII11.
+The rest is ASCII12.
+The rest is ASCII13.
+The rest is ASCII14.
+The rest is ASCII15.
+The rest is ASCII16.
+The rest is ASCII17.
+The rest is ASCII18.
+The rest is ASCII19.
+The rest is ASCII20.
+The rest is ASCII21.
+The rest is ASCII22.
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,crlf/few-utf8-chars-lf b/tests/resources/crlf_data/posix/autocrlf_false,crlf/few-utf8-chars-lf
new file mode 100644
index 000000000..f4d25b796
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,crlf/few-utf8-chars-lf
@@ -0,0 +1,22 @@
+⚽The rest is ASCII01.
+The rest is ASCII02.
+The rest is ASCII03.
+The rest is ASCII04.
+The rest is ASCII05.
+The rest is ASCII06.
+The rest is ASCII07.
+The rest is ASCII08.
+The rest is ASCII09.
+The rest is ASCII10.
+The rest is ASCII11.
+The rest is ASCII12.
+The rest is ASCII13.
+The rest is ASCII14.
+The rest is ASCII15.
+The rest is ASCII16.
+The rest is ASCII17.
+The rest is ASCII18.
+The rest is ASCII19.
+The rest is ASCII20.
+The rest is ASCII21.
+The rest is ASCII22.
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,crlf/many-utf8-chars-crlf b/tests/resources/crlf_data/posix/autocrlf_false,crlf/many-utf8-chars-crlf
new file mode 100644
index 000000000..cd574f5a2
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,crlf/many-utf8-chars-crlf
@@ -0,0 +1,4 @@
+Lets sing!
+♫♪♬♩
+Eat food
+🍅🍕
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,crlf/many-utf8-chars-lf b/tests/resources/crlf_data/posix/autocrlf_false,crlf/many-utf8-chars-lf
new file mode 100644
index 000000000..9a6c3533f
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,crlf/many-utf8-chars-lf
@@ -0,0 +1,4 @@
+Lets sing!
+♫♪♬♩
+Eat food
+🍅🍕
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,crlf/mixed-lf-cr b/tests/resources/crlf_data/posix/autocrlf_false,crlf/mixed-lf-cr
new file mode 100644
index 000000000..d11e7ef63
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,crlf/mixed-lf-cr
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,crlf/mixed-lf-cr-crlf b/tests/resources/crlf_data/posix/autocrlf_false,crlf/mixed-lf-cr-crlf
new file mode 100644
index 000000000..417786fc3
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,crlf/mixed-lf-cr-crlf
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,crlf/more-crlf b/tests/resources/crlf_data/posix/autocrlf_false,crlf/more-crlf
new file mode 100644
index 000000000..0ff5a53f1
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,crlf/more-crlf
@@ -0,0 +1,5 @@
+crlf
+crlf
+lf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,crlf/more-crlf-utf8bom b/tests/resources/crlf_data/posix/autocrlf_false,crlf/more-crlf-utf8bom
new file mode 100644
index 000000000..ea030d3c6
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,crlf/more-crlf-utf8bom
@@ -0,0 +1,5 @@
+crlf
+crlf
+lf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,crlf/more-lf b/tests/resources/crlf_data/posix/autocrlf_false,crlf/more-lf
new file mode 100644
index 000000000..04de00b35
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,crlf/more-lf
@@ -0,0 +1,5 @@
+lf
+lf
+crlf
+lf
+lf
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,crlf/more-lf-utf8bom b/tests/resources/crlf_data/posix/autocrlf_false,crlf/more-lf-utf8bom
new file mode 100644
index 000000000..dc88e3b91
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,crlf/more-lf-utf8bom
@@ -0,0 +1,5 @@
+lf
+lf
+crlf
+lf
+lf
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,crlf/zero-byte b/tests/resources/crlf_data/posix/autocrlf_false,crlf/zero-byte
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,crlf/zero-byte
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,eol_crlf/all-crlf b/tests/resources/crlf_data/posix/autocrlf_false,eol_crlf/all-crlf
new file mode 100644
index 000000000..a9a2e8913
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,eol_crlf/all-crlf
@@ -0,0 +1,4 @@
+crlf
+crlf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,eol_crlf/all-crlf-utf8bom b/tests/resources/crlf_data/posix/autocrlf_false,eol_crlf/all-crlf-utf8bom
new file mode 100644
index 000000000..0aa76e474
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,eol_crlf/all-crlf-utf8bom
@@ -0,0 +1,4 @@
+crlf
+crlf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,eol_crlf/all-lf b/tests/resources/crlf_data/posix/autocrlf_false,eol_crlf/all-lf
new file mode 100644
index 000000000..f557a02d8
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,eol_crlf/all-lf
@@ -0,0 +1,5 @@
+lf
+lf
+lf
+lf
+lf
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,eol_crlf/all-lf-utf8bom b/tests/resources/crlf_data/posix/autocrlf_false,eol_crlf/all-lf-utf8bom
new file mode 100644
index 000000000..381cfe630
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,eol_crlf/all-lf-utf8bom
@@ -0,0 +1,5 @@
+lf
+lf
+lf
+lf
+lf
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,eol_crlf/binary-all-crlf b/tests/resources/crlf_data/posix/autocrlf_false,eol_crlf/binary-all-crlf
new file mode 100644
index 000000000..85340755c
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,eol_crlf/binary-all-crlf
@@ -0,0 +1,4 @@
+one
+two
+three
+four
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,eol_crlf/binary-all-lf b/tests/resources/crlf_data/posix/autocrlf_false,eol_crlf/binary-all-lf
new file mode 100644
index 000000000..85340755c
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,eol_crlf/binary-all-lf
@@ -0,0 +1,4 @@
+one
+two
+three
+four
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,eol_crlf/binary-mixed-lf-cr b/tests/resources/crlf_data/posix/autocrlf_false,eol_crlf/binary-mixed-lf-cr
new file mode 100644
index 000000000..fd2abfa9d
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,eol_crlf/binary-mixed-lf-cr
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,eol_crlf/binary-mixed-lf-cr-crlf b/tests/resources/crlf_data/posix/autocrlf_false,eol_crlf/binary-mixed-lf-cr-crlf
new file mode 100644
index 000000000..fd2abfa9d
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,eol_crlf/binary-mixed-lf-cr-crlf
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,eol_crlf/few-utf8-chars-crlf b/tests/resources/crlf_data/posix/autocrlf_false,eol_crlf/few-utf8-chars-crlf
new file mode 100644
index 000000000..0e0528888
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,eol_crlf/few-utf8-chars-crlf
@@ -0,0 +1,22 @@
+⚽The rest is ASCII01.
+The rest is ASCII02.
+The rest is ASCII03.
+The rest is ASCII04.
+The rest is ASCII05.
+The rest is ASCII06.
+The rest is ASCII07.
+The rest is ASCII08.
+The rest is ASCII09.
+The rest is ASCII10.
+The rest is ASCII11.
+The rest is ASCII12.
+The rest is ASCII13.
+The rest is ASCII14.
+The rest is ASCII15.
+The rest is ASCII16.
+The rest is ASCII17.
+The rest is ASCII18.
+The rest is ASCII19.
+The rest is ASCII20.
+The rest is ASCII21.
+The rest is ASCII22.
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,eol_crlf/few-utf8-chars-lf b/tests/resources/crlf_data/posix/autocrlf_false,eol_crlf/few-utf8-chars-lf
new file mode 100644
index 000000000..0e0528888
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,eol_crlf/few-utf8-chars-lf
@@ -0,0 +1,22 @@
+⚽The rest is ASCII01.
+The rest is ASCII02.
+The rest is ASCII03.
+The rest is ASCII04.
+The rest is ASCII05.
+The rest is ASCII06.
+The rest is ASCII07.
+The rest is ASCII08.
+The rest is ASCII09.
+The rest is ASCII10.
+The rest is ASCII11.
+The rest is ASCII12.
+The rest is ASCII13.
+The rest is ASCII14.
+The rest is ASCII15.
+The rest is ASCII16.
+The rest is ASCII17.
+The rest is ASCII18.
+The rest is ASCII19.
+The rest is ASCII20.
+The rest is ASCII21.
+The rest is ASCII22.
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,eol_crlf/many-utf8-chars-crlf b/tests/resources/crlf_data/posix/autocrlf_false,eol_crlf/many-utf8-chars-crlf
new file mode 100644
index 000000000..cd574f5a2
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,eol_crlf/many-utf8-chars-crlf
@@ -0,0 +1,4 @@
+Lets sing!
+♫♪♬♩
+Eat food
+🍅🍕
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,eol_crlf/many-utf8-chars-lf b/tests/resources/crlf_data/posix/autocrlf_false,eol_crlf/many-utf8-chars-lf
new file mode 100644
index 000000000..cd574f5a2
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,eol_crlf/many-utf8-chars-lf
@@ -0,0 +1,4 @@
+Lets sing!
+♫♪♬♩
+Eat food
+🍅🍕
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,eol_crlf/mixed-lf-cr b/tests/resources/crlf_data/posix/autocrlf_false,eol_crlf/mixed-lf-cr
new file mode 100644
index 000000000..df8c0f680
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,eol_crlf/mixed-lf-cr
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,eol_crlf/mixed-lf-cr-crlf b/tests/resources/crlf_data/posix/autocrlf_false,eol_crlf/mixed-lf-cr-crlf
new file mode 100644
index 000000000..df8c0f680
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,eol_crlf/mixed-lf-cr-crlf
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,eol_crlf/more-crlf b/tests/resources/crlf_data/posix/autocrlf_false,eol_crlf/more-crlf
new file mode 100644
index 000000000..e682c3077
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,eol_crlf/more-crlf
@@ -0,0 +1,5 @@
+crlf
+crlf
+lf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,eol_crlf/more-crlf-utf8bom b/tests/resources/crlf_data/posix/autocrlf_false,eol_crlf/more-crlf-utf8bom
new file mode 100644
index 000000000..2e1220cbb
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,eol_crlf/more-crlf-utf8bom
@@ -0,0 +1,5 @@
+crlf
+crlf
+lf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,eol_crlf/more-lf b/tests/resources/crlf_data/posix/autocrlf_false,eol_crlf/more-lf
new file mode 100644
index 000000000..6da5b0c7e
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,eol_crlf/more-lf
@@ -0,0 +1,5 @@
+lf
+lf
+crlf
+lf
+lf
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,eol_crlf/more-lf-utf8bom b/tests/resources/crlf_data/posix/autocrlf_false,eol_crlf/more-lf-utf8bom
new file mode 100644
index 000000000..3fa59c809
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,eol_crlf/more-lf-utf8bom
@@ -0,0 +1,5 @@
+lf
+lf
+crlf
+lf
+lf
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,eol_crlf/zero-byte b/tests/resources/crlf_data/posix/autocrlf_false,eol_crlf/zero-byte
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,eol_crlf/zero-byte
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,eol_lf/all-crlf b/tests/resources/crlf_data/posix/autocrlf_false,eol_lf/all-crlf
new file mode 100644
index 000000000..a9a2e8913
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,eol_lf/all-crlf
@@ -0,0 +1,4 @@
+crlf
+crlf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,eol_lf/all-crlf-utf8bom b/tests/resources/crlf_data/posix/autocrlf_false,eol_lf/all-crlf-utf8bom
new file mode 100644
index 000000000..0aa76e474
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,eol_lf/all-crlf-utf8bom
@@ -0,0 +1,4 @@
+crlf
+crlf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,eol_lf/all-lf b/tests/resources/crlf_data/posix/autocrlf_false,eol_lf/all-lf
new file mode 100644
index 000000000..799770d1c
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,eol_lf/all-lf
@@ -0,0 +1,5 @@
+lf
+lf
+lf
+lf
+lf
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,eol_lf/all-lf-utf8bom b/tests/resources/crlf_data/posix/autocrlf_false,eol_lf/all-lf-utf8bom
new file mode 100644
index 000000000..7cce67e58
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,eol_lf/all-lf-utf8bom
@@ -0,0 +1,5 @@
+lf
+lf
+lf
+lf
+lf
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,eol_lf/binary-all-crlf b/tests/resources/crlf_data/posix/autocrlf_false,eol_lf/binary-all-crlf
new file mode 100644
index 000000000..85340755c
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,eol_lf/binary-all-crlf
@@ -0,0 +1,4 @@
+one
+two
+three
+four
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,eol_lf/binary-all-lf b/tests/resources/crlf_data/posix/autocrlf_false,eol_lf/binary-all-lf
new file mode 100644
index 000000000..af6fcf6da
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,eol_lf/binary-all-lf
@@ -0,0 +1,4 @@
+one
+two
+three
+four
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,eol_lf/binary-mixed-lf-cr b/tests/resources/crlf_data/posix/autocrlf_false,eol_lf/binary-mixed-lf-cr
new file mode 100644
index 000000000..203555c56
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,eol_lf/binary-mixed-lf-cr
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,eol_lf/binary-mixed-lf-cr-crlf b/tests/resources/crlf_data/posix/autocrlf_false,eol_lf/binary-mixed-lf-cr-crlf
new file mode 100644
index 000000000..aaf083a9c
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,eol_lf/binary-mixed-lf-cr-crlf
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,eol_lf/few-utf8-chars-crlf b/tests/resources/crlf_data/posix/autocrlf_false,eol_lf/few-utf8-chars-crlf
new file mode 100644
index 000000000..0e0528888
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,eol_lf/few-utf8-chars-crlf
@@ -0,0 +1,22 @@
+⚽The rest is ASCII01.
+The rest is ASCII02.
+The rest is ASCII03.
+The rest is ASCII04.
+The rest is ASCII05.
+The rest is ASCII06.
+The rest is ASCII07.
+The rest is ASCII08.
+The rest is ASCII09.
+The rest is ASCII10.
+The rest is ASCII11.
+The rest is ASCII12.
+The rest is ASCII13.
+The rest is ASCII14.
+The rest is ASCII15.
+The rest is ASCII16.
+The rest is ASCII17.
+The rest is ASCII18.
+The rest is ASCII19.
+The rest is ASCII20.
+The rest is ASCII21.
+The rest is ASCII22.
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,eol_lf/few-utf8-chars-lf b/tests/resources/crlf_data/posix/autocrlf_false,eol_lf/few-utf8-chars-lf
new file mode 100644
index 000000000..f4d25b796
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,eol_lf/few-utf8-chars-lf
@@ -0,0 +1,22 @@
+⚽The rest is ASCII01.
+The rest is ASCII02.
+The rest is ASCII03.
+The rest is ASCII04.
+The rest is ASCII05.
+The rest is ASCII06.
+The rest is ASCII07.
+The rest is ASCII08.
+The rest is ASCII09.
+The rest is ASCII10.
+The rest is ASCII11.
+The rest is ASCII12.
+The rest is ASCII13.
+The rest is ASCII14.
+The rest is ASCII15.
+The rest is ASCII16.
+The rest is ASCII17.
+The rest is ASCII18.
+The rest is ASCII19.
+The rest is ASCII20.
+The rest is ASCII21.
+The rest is ASCII22.
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,eol_lf/many-utf8-chars-crlf b/tests/resources/crlf_data/posix/autocrlf_false,eol_lf/many-utf8-chars-crlf
new file mode 100644
index 000000000..cd574f5a2
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,eol_lf/many-utf8-chars-crlf
@@ -0,0 +1,4 @@
+Lets sing!
+♫♪♬♩
+Eat food
+🍅🍕
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,eol_lf/many-utf8-chars-lf b/tests/resources/crlf_data/posix/autocrlf_false,eol_lf/many-utf8-chars-lf
new file mode 100644
index 000000000..9a6c3533f
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,eol_lf/many-utf8-chars-lf
@@ -0,0 +1,4 @@
+Lets sing!
+♫♪♬♩
+Eat food
+🍅🍕
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,eol_lf/mixed-lf-cr b/tests/resources/crlf_data/posix/autocrlf_false,eol_lf/mixed-lf-cr
new file mode 100644
index 000000000..d11e7ef63
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,eol_lf/mixed-lf-cr
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,eol_lf/mixed-lf-cr-crlf b/tests/resources/crlf_data/posix/autocrlf_false,eol_lf/mixed-lf-cr-crlf
new file mode 100644
index 000000000..417786fc3
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,eol_lf/mixed-lf-cr-crlf
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,eol_lf/more-crlf b/tests/resources/crlf_data/posix/autocrlf_false,eol_lf/more-crlf
new file mode 100644
index 000000000..0ff5a53f1
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,eol_lf/more-crlf
@@ -0,0 +1,5 @@
+crlf
+crlf
+lf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,eol_lf/more-crlf-utf8bom b/tests/resources/crlf_data/posix/autocrlf_false,eol_lf/more-crlf-utf8bom
new file mode 100644
index 000000000..ea030d3c6
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,eol_lf/more-crlf-utf8bom
@@ -0,0 +1,5 @@
+crlf
+crlf
+lf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,eol_lf/more-lf b/tests/resources/crlf_data/posix/autocrlf_false,eol_lf/more-lf
new file mode 100644
index 000000000..04de00b35
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,eol_lf/more-lf
@@ -0,0 +1,5 @@
+lf
+lf
+crlf
+lf
+lf
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,eol_lf/more-lf-utf8bom b/tests/resources/crlf_data/posix/autocrlf_false,eol_lf/more-lf-utf8bom
new file mode 100644
index 000000000..dc88e3b91
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,eol_lf/more-lf-utf8bom
@@ -0,0 +1,5 @@
+lf
+lf
+crlf
+lf
+lf
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,eol_lf/zero-byte b/tests/resources/crlf_data/posix/autocrlf_false,eol_lf/zero-byte
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,eol_lf/zero-byte
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,text,eol_crlf/all-crlf b/tests/resources/crlf_data/posix/autocrlf_false,text,eol_crlf/all-crlf
new file mode 100644
index 000000000..a9a2e8913
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,text,eol_crlf/all-crlf
@@ -0,0 +1,4 @@
+crlf
+crlf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,text,eol_crlf/all-crlf-utf8bom b/tests/resources/crlf_data/posix/autocrlf_false,text,eol_crlf/all-crlf-utf8bom
new file mode 100644
index 000000000..0aa76e474
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,text,eol_crlf/all-crlf-utf8bom
@@ -0,0 +1,4 @@
+crlf
+crlf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,text,eol_crlf/all-lf b/tests/resources/crlf_data/posix/autocrlf_false,text,eol_crlf/all-lf
new file mode 100644
index 000000000..f557a02d8
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,text,eol_crlf/all-lf
@@ -0,0 +1,5 @@
+lf
+lf
+lf
+lf
+lf
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,text,eol_crlf/all-lf-utf8bom b/tests/resources/crlf_data/posix/autocrlf_false,text,eol_crlf/all-lf-utf8bom
new file mode 100644
index 000000000..381cfe630
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,text,eol_crlf/all-lf-utf8bom
@@ -0,0 +1,5 @@
+lf
+lf
+lf
+lf
+lf
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,text,eol_crlf/binary-all-crlf b/tests/resources/crlf_data/posix/autocrlf_false,text,eol_crlf/binary-all-crlf
new file mode 100644
index 000000000..85340755c
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,text,eol_crlf/binary-all-crlf
@@ -0,0 +1,4 @@
+one
+two
+three
+four
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,text,eol_crlf/binary-all-lf b/tests/resources/crlf_data/posix/autocrlf_false,text,eol_crlf/binary-all-lf
new file mode 100644
index 000000000..85340755c
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,text,eol_crlf/binary-all-lf
@@ -0,0 +1,4 @@
+one
+two
+three
+four
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,text,eol_crlf/binary-mixed-lf-cr b/tests/resources/crlf_data/posix/autocrlf_false,text,eol_crlf/binary-mixed-lf-cr
new file mode 100644
index 000000000..fd2abfa9d
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,text,eol_crlf/binary-mixed-lf-cr
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,text,eol_crlf/binary-mixed-lf-cr-crlf b/tests/resources/crlf_data/posix/autocrlf_false,text,eol_crlf/binary-mixed-lf-cr-crlf
new file mode 100644
index 000000000..fd2abfa9d
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,text,eol_crlf/binary-mixed-lf-cr-crlf
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,text,eol_crlf/few-utf8-chars-crlf b/tests/resources/crlf_data/posix/autocrlf_false,text,eol_crlf/few-utf8-chars-crlf
new file mode 100644
index 000000000..0e0528888
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,text,eol_crlf/few-utf8-chars-crlf
@@ -0,0 +1,22 @@
+⚽The rest is ASCII01.
+The rest is ASCII02.
+The rest is ASCII03.
+The rest is ASCII04.
+The rest is ASCII05.
+The rest is ASCII06.
+The rest is ASCII07.
+The rest is ASCII08.
+The rest is ASCII09.
+The rest is ASCII10.
+The rest is ASCII11.
+The rest is ASCII12.
+The rest is ASCII13.
+The rest is ASCII14.
+The rest is ASCII15.
+The rest is ASCII16.
+The rest is ASCII17.
+The rest is ASCII18.
+The rest is ASCII19.
+The rest is ASCII20.
+The rest is ASCII21.
+The rest is ASCII22.
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,text,eol_crlf/few-utf8-chars-lf b/tests/resources/crlf_data/posix/autocrlf_false,text,eol_crlf/few-utf8-chars-lf
new file mode 100644
index 000000000..0e0528888
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,text,eol_crlf/few-utf8-chars-lf
@@ -0,0 +1,22 @@
+⚽The rest is ASCII01.
+The rest is ASCII02.
+The rest is ASCII03.
+The rest is ASCII04.
+The rest is ASCII05.
+The rest is ASCII06.
+The rest is ASCII07.
+The rest is ASCII08.
+The rest is ASCII09.
+The rest is ASCII10.
+The rest is ASCII11.
+The rest is ASCII12.
+The rest is ASCII13.
+The rest is ASCII14.
+The rest is ASCII15.
+The rest is ASCII16.
+The rest is ASCII17.
+The rest is ASCII18.
+The rest is ASCII19.
+The rest is ASCII20.
+The rest is ASCII21.
+The rest is ASCII22.
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,text,eol_crlf/many-utf8-chars-crlf b/tests/resources/crlf_data/posix/autocrlf_false,text,eol_crlf/many-utf8-chars-crlf
new file mode 100644
index 000000000..cd574f5a2
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,text,eol_crlf/many-utf8-chars-crlf
@@ -0,0 +1,4 @@
+Lets sing!
+♫♪♬♩
+Eat food
+🍅🍕
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,text,eol_crlf/many-utf8-chars-lf b/tests/resources/crlf_data/posix/autocrlf_false,text,eol_crlf/many-utf8-chars-lf
new file mode 100644
index 000000000..cd574f5a2
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,text,eol_crlf/many-utf8-chars-lf
@@ -0,0 +1,4 @@
+Lets sing!
+♫♪♬♩
+Eat food
+🍅🍕
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,text,eol_crlf/mixed-lf-cr b/tests/resources/crlf_data/posix/autocrlf_false,text,eol_crlf/mixed-lf-cr
new file mode 100644
index 000000000..df8c0f680
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,text,eol_crlf/mixed-lf-cr
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,text,eol_crlf/mixed-lf-cr-crlf b/tests/resources/crlf_data/posix/autocrlf_false,text,eol_crlf/mixed-lf-cr-crlf
new file mode 100644
index 000000000..df8c0f680
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,text,eol_crlf/mixed-lf-cr-crlf
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,text,eol_crlf/more-crlf b/tests/resources/crlf_data/posix/autocrlf_false,text,eol_crlf/more-crlf
new file mode 100644
index 000000000..e682c3077
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,text,eol_crlf/more-crlf
@@ -0,0 +1,5 @@
+crlf
+crlf
+lf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,text,eol_crlf/more-crlf-utf8bom b/tests/resources/crlf_data/posix/autocrlf_false,text,eol_crlf/more-crlf-utf8bom
new file mode 100644
index 000000000..2e1220cbb
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,text,eol_crlf/more-crlf-utf8bom
@@ -0,0 +1,5 @@
+crlf
+crlf
+lf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,text,eol_crlf/more-lf b/tests/resources/crlf_data/posix/autocrlf_false,text,eol_crlf/more-lf
new file mode 100644
index 000000000..6da5b0c7e
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,text,eol_crlf/more-lf
@@ -0,0 +1,5 @@
+lf
+lf
+crlf
+lf
+lf
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,text,eol_crlf/more-lf-utf8bom b/tests/resources/crlf_data/posix/autocrlf_false,text,eol_crlf/more-lf-utf8bom
new file mode 100644
index 000000000..3fa59c809
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,text,eol_crlf/more-lf-utf8bom
@@ -0,0 +1,5 @@
+lf
+lf
+crlf
+lf
+lf
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,text,eol_crlf/zero-byte b/tests/resources/crlf_data/posix/autocrlf_false,text,eol_crlf/zero-byte
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,text,eol_crlf/zero-byte
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,text,eol_lf/all-crlf b/tests/resources/crlf_data/posix/autocrlf_false,text,eol_lf/all-crlf
new file mode 100644
index 000000000..a9a2e8913
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,text,eol_lf/all-crlf
@@ -0,0 +1,4 @@
+crlf
+crlf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,text,eol_lf/all-crlf-utf8bom b/tests/resources/crlf_data/posix/autocrlf_false,text,eol_lf/all-crlf-utf8bom
new file mode 100644
index 000000000..0aa76e474
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,text,eol_lf/all-crlf-utf8bom
@@ -0,0 +1,4 @@
+crlf
+crlf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,text,eol_lf/all-lf b/tests/resources/crlf_data/posix/autocrlf_false,text,eol_lf/all-lf
new file mode 100644
index 000000000..799770d1c
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,text,eol_lf/all-lf
@@ -0,0 +1,5 @@
+lf
+lf
+lf
+lf
+lf
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,text,eol_lf/all-lf-utf8bom b/tests/resources/crlf_data/posix/autocrlf_false,text,eol_lf/all-lf-utf8bom
new file mode 100644
index 000000000..7cce67e58
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,text,eol_lf/all-lf-utf8bom
@@ -0,0 +1,5 @@
+lf
+lf
+lf
+lf
+lf
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,text,eol_lf/binary-all-crlf b/tests/resources/crlf_data/posix/autocrlf_false,text,eol_lf/binary-all-crlf
new file mode 100644
index 000000000..85340755c
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,text,eol_lf/binary-all-crlf
@@ -0,0 +1,4 @@
+one
+two
+three
+four
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,text,eol_lf/binary-all-lf b/tests/resources/crlf_data/posix/autocrlf_false,text,eol_lf/binary-all-lf
new file mode 100644
index 000000000..af6fcf6da
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,text,eol_lf/binary-all-lf
@@ -0,0 +1,4 @@
+one
+two
+three
+four
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,text,eol_lf/binary-mixed-lf-cr b/tests/resources/crlf_data/posix/autocrlf_false,text,eol_lf/binary-mixed-lf-cr
new file mode 100644
index 000000000..203555c56
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,text,eol_lf/binary-mixed-lf-cr
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,text,eol_lf/binary-mixed-lf-cr-crlf b/tests/resources/crlf_data/posix/autocrlf_false,text,eol_lf/binary-mixed-lf-cr-crlf
new file mode 100644
index 000000000..aaf083a9c
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,text,eol_lf/binary-mixed-lf-cr-crlf
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,text,eol_lf/few-utf8-chars-crlf b/tests/resources/crlf_data/posix/autocrlf_false,text,eol_lf/few-utf8-chars-crlf
new file mode 100644
index 000000000..0e0528888
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,text,eol_lf/few-utf8-chars-crlf
@@ -0,0 +1,22 @@
+⚽The rest is ASCII01.
+The rest is ASCII02.
+The rest is ASCII03.
+The rest is ASCII04.
+The rest is ASCII05.
+The rest is ASCII06.
+The rest is ASCII07.
+The rest is ASCII08.
+The rest is ASCII09.
+The rest is ASCII10.
+The rest is ASCII11.
+The rest is ASCII12.
+The rest is ASCII13.
+The rest is ASCII14.
+The rest is ASCII15.
+The rest is ASCII16.
+The rest is ASCII17.
+The rest is ASCII18.
+The rest is ASCII19.
+The rest is ASCII20.
+The rest is ASCII21.
+The rest is ASCII22.
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,text,eol_lf/few-utf8-chars-lf b/tests/resources/crlf_data/posix/autocrlf_false,text,eol_lf/few-utf8-chars-lf
new file mode 100644
index 000000000..f4d25b796
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,text,eol_lf/few-utf8-chars-lf
@@ -0,0 +1,22 @@
+⚽The rest is ASCII01.
+The rest is ASCII02.
+The rest is ASCII03.
+The rest is ASCII04.
+The rest is ASCII05.
+The rest is ASCII06.
+The rest is ASCII07.
+The rest is ASCII08.
+The rest is ASCII09.
+The rest is ASCII10.
+The rest is ASCII11.
+The rest is ASCII12.
+The rest is ASCII13.
+The rest is ASCII14.
+The rest is ASCII15.
+The rest is ASCII16.
+The rest is ASCII17.
+The rest is ASCII18.
+The rest is ASCII19.
+The rest is ASCII20.
+The rest is ASCII21.
+The rest is ASCII22.
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,text,eol_lf/many-utf8-chars-crlf b/tests/resources/crlf_data/posix/autocrlf_false,text,eol_lf/many-utf8-chars-crlf
new file mode 100644
index 000000000..cd574f5a2
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,text,eol_lf/many-utf8-chars-crlf
@@ -0,0 +1,4 @@
+Lets sing!
+♫♪♬♩
+Eat food
+🍅🍕
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,text,eol_lf/many-utf8-chars-lf b/tests/resources/crlf_data/posix/autocrlf_false,text,eol_lf/many-utf8-chars-lf
new file mode 100644
index 000000000..9a6c3533f
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,text,eol_lf/many-utf8-chars-lf
@@ -0,0 +1,4 @@
+Lets sing!
+♫♪♬♩
+Eat food
+🍅🍕
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,text,eol_lf/mixed-lf-cr b/tests/resources/crlf_data/posix/autocrlf_false,text,eol_lf/mixed-lf-cr
new file mode 100644
index 000000000..d11e7ef63
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,text,eol_lf/mixed-lf-cr
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,text,eol_lf/mixed-lf-cr-crlf b/tests/resources/crlf_data/posix/autocrlf_false,text,eol_lf/mixed-lf-cr-crlf
new file mode 100644
index 000000000..417786fc3
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,text,eol_lf/mixed-lf-cr-crlf
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,text,eol_lf/more-crlf b/tests/resources/crlf_data/posix/autocrlf_false,text,eol_lf/more-crlf
new file mode 100644
index 000000000..0ff5a53f1
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,text,eol_lf/more-crlf
@@ -0,0 +1,5 @@
+crlf
+crlf
+lf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,text,eol_lf/more-crlf-utf8bom b/tests/resources/crlf_data/posix/autocrlf_false,text,eol_lf/more-crlf-utf8bom
new file mode 100644
index 000000000..ea030d3c6
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,text,eol_lf/more-crlf-utf8bom
@@ -0,0 +1,5 @@
+crlf
+crlf
+lf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,text,eol_lf/more-lf b/tests/resources/crlf_data/posix/autocrlf_false,text,eol_lf/more-lf
new file mode 100644
index 000000000..04de00b35
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,text,eol_lf/more-lf
@@ -0,0 +1,5 @@
+lf
+lf
+crlf
+lf
+lf
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,text,eol_lf/more-lf-utf8bom b/tests/resources/crlf_data/posix/autocrlf_false,text,eol_lf/more-lf-utf8bom
new file mode 100644
index 000000000..dc88e3b91
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,text,eol_lf/more-lf-utf8bom
@@ -0,0 +1,5 @@
+lf
+lf
+crlf
+lf
+lf
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,text,eol_lf/zero-byte b/tests/resources/crlf_data/posix/autocrlf_false,text,eol_lf/zero-byte
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,text,eol_lf/zero-byte
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,text/all-crlf b/tests/resources/crlf_data/posix/autocrlf_false,text/all-crlf
new file mode 100644
index 000000000..a9a2e8913
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,text/all-crlf
@@ -0,0 +1,4 @@
+crlf
+crlf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,text/all-crlf-utf8bom b/tests/resources/crlf_data/posix/autocrlf_false,text/all-crlf-utf8bom
new file mode 100644
index 000000000..0aa76e474
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,text/all-crlf-utf8bom
@@ -0,0 +1,4 @@
+crlf
+crlf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,text/all-lf b/tests/resources/crlf_data/posix/autocrlf_false,text/all-lf
new file mode 100644
index 000000000..799770d1c
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,text/all-lf
@@ -0,0 +1,5 @@
+lf
+lf
+lf
+lf
+lf
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,text/all-lf-utf8bom b/tests/resources/crlf_data/posix/autocrlf_false,text/all-lf-utf8bom
new file mode 100644
index 000000000..7cce67e58
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,text/all-lf-utf8bom
@@ -0,0 +1,5 @@
+lf
+lf
+lf
+lf
+lf
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,text/binary-all-crlf b/tests/resources/crlf_data/posix/autocrlf_false,text/binary-all-crlf
new file mode 100644
index 000000000..85340755c
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,text/binary-all-crlf
@@ -0,0 +1,4 @@
+one
+two
+three
+four
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,text/binary-all-lf b/tests/resources/crlf_data/posix/autocrlf_false,text/binary-all-lf
new file mode 100644
index 000000000..af6fcf6da
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,text/binary-all-lf
@@ -0,0 +1,4 @@
+one
+two
+three
+four
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,text/binary-mixed-lf-cr b/tests/resources/crlf_data/posix/autocrlf_false,text/binary-mixed-lf-cr
new file mode 100644
index 000000000..203555c56
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,text/binary-mixed-lf-cr
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,text/binary-mixed-lf-cr-crlf b/tests/resources/crlf_data/posix/autocrlf_false,text/binary-mixed-lf-cr-crlf
new file mode 100644
index 000000000..aaf083a9c
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,text/binary-mixed-lf-cr-crlf
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,text/few-utf8-chars-crlf b/tests/resources/crlf_data/posix/autocrlf_false,text/few-utf8-chars-crlf
new file mode 100644
index 000000000..0e0528888
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,text/few-utf8-chars-crlf
@@ -0,0 +1,22 @@
+⚽The rest is ASCII01.
+The rest is ASCII02.
+The rest is ASCII03.
+The rest is ASCII04.
+The rest is ASCII05.
+The rest is ASCII06.
+The rest is ASCII07.
+The rest is ASCII08.
+The rest is ASCII09.
+The rest is ASCII10.
+The rest is ASCII11.
+The rest is ASCII12.
+The rest is ASCII13.
+The rest is ASCII14.
+The rest is ASCII15.
+The rest is ASCII16.
+The rest is ASCII17.
+The rest is ASCII18.
+The rest is ASCII19.
+The rest is ASCII20.
+The rest is ASCII21.
+The rest is ASCII22.
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,text/few-utf8-chars-lf b/tests/resources/crlf_data/posix/autocrlf_false,text/few-utf8-chars-lf
new file mode 100644
index 000000000..f4d25b796
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,text/few-utf8-chars-lf
@@ -0,0 +1,22 @@
+⚽The rest is ASCII01.
+The rest is ASCII02.
+The rest is ASCII03.
+The rest is ASCII04.
+The rest is ASCII05.
+The rest is ASCII06.
+The rest is ASCII07.
+The rest is ASCII08.
+The rest is ASCII09.
+The rest is ASCII10.
+The rest is ASCII11.
+The rest is ASCII12.
+The rest is ASCII13.
+The rest is ASCII14.
+The rest is ASCII15.
+The rest is ASCII16.
+The rest is ASCII17.
+The rest is ASCII18.
+The rest is ASCII19.
+The rest is ASCII20.
+The rest is ASCII21.
+The rest is ASCII22.
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,text/many-utf8-chars-crlf b/tests/resources/crlf_data/posix/autocrlf_false,text/many-utf8-chars-crlf
new file mode 100644
index 000000000..cd574f5a2
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,text/many-utf8-chars-crlf
@@ -0,0 +1,4 @@
+Lets sing!
+♫♪♬♩
+Eat food
+🍅🍕
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,text/many-utf8-chars-lf b/tests/resources/crlf_data/posix/autocrlf_false,text/many-utf8-chars-lf
new file mode 100644
index 000000000..9a6c3533f
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,text/many-utf8-chars-lf
@@ -0,0 +1,4 @@
+Lets sing!
+♫♪♬♩
+Eat food
+🍅🍕
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,text/mixed-lf-cr b/tests/resources/crlf_data/posix/autocrlf_false,text/mixed-lf-cr
new file mode 100644
index 000000000..d11e7ef63
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,text/mixed-lf-cr
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,text/mixed-lf-cr-crlf b/tests/resources/crlf_data/posix/autocrlf_false,text/mixed-lf-cr-crlf
new file mode 100644
index 000000000..417786fc3
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,text/mixed-lf-cr-crlf
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,text/more-crlf b/tests/resources/crlf_data/posix/autocrlf_false,text/more-crlf
new file mode 100644
index 000000000..0ff5a53f1
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,text/more-crlf
@@ -0,0 +1,5 @@
+crlf
+crlf
+lf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,text/more-crlf-utf8bom b/tests/resources/crlf_data/posix/autocrlf_false,text/more-crlf-utf8bom
new file mode 100644
index 000000000..ea030d3c6
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,text/more-crlf-utf8bom
@@ -0,0 +1,5 @@
+crlf
+crlf
+lf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,text/more-lf b/tests/resources/crlf_data/posix/autocrlf_false,text/more-lf
new file mode 100644
index 000000000..04de00b35
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,text/more-lf
@@ -0,0 +1,5 @@
+lf
+lf
+crlf
+lf
+lf
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,text/more-lf-utf8bom b/tests/resources/crlf_data/posix/autocrlf_false,text/more-lf-utf8bom
new file mode 100644
index 000000000..dc88e3b91
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,text/more-lf-utf8bom
@@ -0,0 +1,5 @@
+lf
+lf
+crlf
+lf
+lf
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,text/zero-byte b/tests/resources/crlf_data/posix/autocrlf_false,text/zero-byte
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,text/zero-byte
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,text_auto,eol_crlf/all-crlf b/tests/resources/crlf_data/posix/autocrlf_false,text_auto,eol_crlf/all-crlf
new file mode 100644
index 000000000..a9a2e8913
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,text_auto,eol_crlf/all-crlf
@@ -0,0 +1,4 @@
+crlf
+crlf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,text_auto,eol_crlf/all-crlf-utf8bom b/tests/resources/crlf_data/posix/autocrlf_false,text_auto,eol_crlf/all-crlf-utf8bom
new file mode 100644
index 000000000..0aa76e474
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,text_auto,eol_crlf/all-crlf-utf8bom
@@ -0,0 +1,4 @@
+crlf
+crlf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,text_auto,eol_crlf/all-lf b/tests/resources/crlf_data/posix/autocrlf_false,text_auto,eol_crlf/all-lf
new file mode 100644
index 000000000..f557a02d8
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,text_auto,eol_crlf/all-lf
@@ -0,0 +1,5 @@
+lf
+lf
+lf
+lf
+lf
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,text_auto,eol_crlf/all-lf-utf8bom b/tests/resources/crlf_data/posix/autocrlf_false,text_auto,eol_crlf/all-lf-utf8bom
new file mode 100644
index 000000000..381cfe630
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,text_auto,eol_crlf/all-lf-utf8bom
@@ -0,0 +1,5 @@
+lf
+lf
+lf
+lf
+lf
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,text_auto,eol_crlf/binary-all-crlf b/tests/resources/crlf_data/posix/autocrlf_false,text_auto,eol_crlf/binary-all-crlf
new file mode 100644
index 000000000..85340755c
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,text_auto,eol_crlf/binary-all-crlf
@@ -0,0 +1,4 @@
+one
+two
+three
+four
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,text_auto,eol_crlf/binary-all-lf b/tests/resources/crlf_data/posix/autocrlf_false,text_auto,eol_crlf/binary-all-lf
new file mode 100644
index 000000000..85340755c
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,text_auto,eol_crlf/binary-all-lf
@@ -0,0 +1,4 @@
+one
+two
+three
+four
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,text_auto,eol_crlf/binary-mixed-lf-cr b/tests/resources/crlf_data/posix/autocrlf_false,text_auto,eol_crlf/binary-mixed-lf-cr
new file mode 100644
index 000000000..fd2abfa9d
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,text_auto,eol_crlf/binary-mixed-lf-cr
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,text_auto,eol_crlf/binary-mixed-lf-cr-crlf b/tests/resources/crlf_data/posix/autocrlf_false,text_auto,eol_crlf/binary-mixed-lf-cr-crlf
new file mode 100644
index 000000000..fd2abfa9d
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,text_auto,eol_crlf/binary-mixed-lf-cr-crlf
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,text_auto,eol_crlf/few-utf8-chars-crlf b/tests/resources/crlf_data/posix/autocrlf_false,text_auto,eol_crlf/few-utf8-chars-crlf
new file mode 100644
index 000000000..0e0528888
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,text_auto,eol_crlf/few-utf8-chars-crlf
@@ -0,0 +1,22 @@
+⚽The rest is ASCII01.
+The rest is ASCII02.
+The rest is ASCII03.
+The rest is ASCII04.
+The rest is ASCII05.
+The rest is ASCII06.
+The rest is ASCII07.
+The rest is ASCII08.
+The rest is ASCII09.
+The rest is ASCII10.
+The rest is ASCII11.
+The rest is ASCII12.
+The rest is ASCII13.
+The rest is ASCII14.
+The rest is ASCII15.
+The rest is ASCII16.
+The rest is ASCII17.
+The rest is ASCII18.
+The rest is ASCII19.
+The rest is ASCII20.
+The rest is ASCII21.
+The rest is ASCII22.
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,text_auto,eol_crlf/few-utf8-chars-lf b/tests/resources/crlf_data/posix/autocrlf_false,text_auto,eol_crlf/few-utf8-chars-lf
new file mode 100644
index 000000000..0e0528888
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,text_auto,eol_crlf/few-utf8-chars-lf
@@ -0,0 +1,22 @@
+⚽The rest is ASCII01.
+The rest is ASCII02.
+The rest is ASCII03.
+The rest is ASCII04.
+The rest is ASCII05.
+The rest is ASCII06.
+The rest is ASCII07.
+The rest is ASCII08.
+The rest is ASCII09.
+The rest is ASCII10.
+The rest is ASCII11.
+The rest is ASCII12.
+The rest is ASCII13.
+The rest is ASCII14.
+The rest is ASCII15.
+The rest is ASCII16.
+The rest is ASCII17.
+The rest is ASCII18.
+The rest is ASCII19.
+The rest is ASCII20.
+The rest is ASCII21.
+The rest is ASCII22.
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,text_auto,eol_crlf/many-utf8-chars-crlf b/tests/resources/crlf_data/posix/autocrlf_false,text_auto,eol_crlf/many-utf8-chars-crlf
new file mode 100644
index 000000000..cd574f5a2
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,text_auto,eol_crlf/many-utf8-chars-crlf
@@ -0,0 +1,4 @@
+Lets sing!
+♫♪♬♩
+Eat food
+🍅🍕
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,text_auto,eol_crlf/many-utf8-chars-lf b/tests/resources/crlf_data/posix/autocrlf_false,text_auto,eol_crlf/many-utf8-chars-lf
new file mode 100644
index 000000000..cd574f5a2
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,text_auto,eol_crlf/many-utf8-chars-lf
@@ -0,0 +1,4 @@
+Lets sing!
+♫♪♬♩
+Eat food
+🍅🍕
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,text_auto,eol_crlf/mixed-lf-cr b/tests/resources/crlf_data/posix/autocrlf_false,text_auto,eol_crlf/mixed-lf-cr
new file mode 100644
index 000000000..df8c0f680
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,text_auto,eol_crlf/mixed-lf-cr
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,text_auto,eol_crlf/mixed-lf-cr-crlf b/tests/resources/crlf_data/posix/autocrlf_false,text_auto,eol_crlf/mixed-lf-cr-crlf
new file mode 100644
index 000000000..df8c0f680
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,text_auto,eol_crlf/mixed-lf-cr-crlf
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,text_auto,eol_crlf/more-crlf b/tests/resources/crlf_data/posix/autocrlf_false,text_auto,eol_crlf/more-crlf
new file mode 100644
index 000000000..e682c3077
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,text_auto,eol_crlf/more-crlf
@@ -0,0 +1,5 @@
+crlf
+crlf
+lf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,text_auto,eol_crlf/more-crlf-utf8bom b/tests/resources/crlf_data/posix/autocrlf_false,text_auto,eol_crlf/more-crlf-utf8bom
new file mode 100644
index 000000000..2e1220cbb
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,text_auto,eol_crlf/more-crlf-utf8bom
@@ -0,0 +1,5 @@
+crlf
+crlf
+lf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,text_auto,eol_crlf/more-lf b/tests/resources/crlf_data/posix/autocrlf_false,text_auto,eol_crlf/more-lf
new file mode 100644
index 000000000..6da5b0c7e
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,text_auto,eol_crlf/more-lf
@@ -0,0 +1,5 @@
+lf
+lf
+crlf
+lf
+lf
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,text_auto,eol_crlf/more-lf-utf8bom b/tests/resources/crlf_data/posix/autocrlf_false,text_auto,eol_crlf/more-lf-utf8bom
new file mode 100644
index 000000000..3fa59c809
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,text_auto,eol_crlf/more-lf-utf8bom
@@ -0,0 +1,5 @@
+lf
+lf
+crlf
+lf
+lf
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,text_auto,eol_crlf/zero-byte b/tests/resources/crlf_data/posix/autocrlf_false,text_auto,eol_crlf/zero-byte
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,text_auto,eol_crlf/zero-byte
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,text_auto,eol_lf/all-crlf b/tests/resources/crlf_data/posix/autocrlf_false,text_auto,eol_lf/all-crlf
new file mode 100644
index 000000000..a9a2e8913
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,text_auto,eol_lf/all-crlf
@@ -0,0 +1,4 @@
+crlf
+crlf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,text_auto,eol_lf/all-crlf-utf8bom b/tests/resources/crlf_data/posix/autocrlf_false,text_auto,eol_lf/all-crlf-utf8bom
new file mode 100644
index 000000000..0aa76e474
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,text_auto,eol_lf/all-crlf-utf8bom
@@ -0,0 +1,4 @@
+crlf
+crlf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,text_auto,eol_lf/all-lf b/tests/resources/crlf_data/posix/autocrlf_false,text_auto,eol_lf/all-lf
new file mode 100644
index 000000000..799770d1c
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,text_auto,eol_lf/all-lf
@@ -0,0 +1,5 @@
+lf
+lf
+lf
+lf
+lf
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,text_auto,eol_lf/all-lf-utf8bom b/tests/resources/crlf_data/posix/autocrlf_false,text_auto,eol_lf/all-lf-utf8bom
new file mode 100644
index 000000000..7cce67e58
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,text_auto,eol_lf/all-lf-utf8bom
@@ -0,0 +1,5 @@
+lf
+lf
+lf
+lf
+lf
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,text_auto,eol_lf/binary-all-crlf b/tests/resources/crlf_data/posix/autocrlf_false,text_auto,eol_lf/binary-all-crlf
new file mode 100644
index 000000000..85340755c
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,text_auto,eol_lf/binary-all-crlf
@@ -0,0 +1,4 @@
+one
+two
+three
+four
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,text_auto,eol_lf/binary-all-lf b/tests/resources/crlf_data/posix/autocrlf_false,text_auto,eol_lf/binary-all-lf
new file mode 100644
index 000000000..af6fcf6da
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,text_auto,eol_lf/binary-all-lf
@@ -0,0 +1,4 @@
+one
+two
+three
+four
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,text_auto,eol_lf/binary-mixed-lf-cr b/tests/resources/crlf_data/posix/autocrlf_false,text_auto,eol_lf/binary-mixed-lf-cr
new file mode 100644
index 000000000..203555c56
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,text_auto,eol_lf/binary-mixed-lf-cr
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,text_auto,eol_lf/binary-mixed-lf-cr-crlf b/tests/resources/crlf_data/posix/autocrlf_false,text_auto,eol_lf/binary-mixed-lf-cr-crlf
new file mode 100644
index 000000000..aaf083a9c
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,text_auto,eol_lf/binary-mixed-lf-cr-crlf
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,text_auto,eol_lf/few-utf8-chars-crlf b/tests/resources/crlf_data/posix/autocrlf_false,text_auto,eol_lf/few-utf8-chars-crlf
new file mode 100644
index 000000000..0e0528888
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,text_auto,eol_lf/few-utf8-chars-crlf
@@ -0,0 +1,22 @@
+⚽The rest is ASCII01.
+The rest is ASCII02.
+The rest is ASCII03.
+The rest is ASCII04.
+The rest is ASCII05.
+The rest is ASCII06.
+The rest is ASCII07.
+The rest is ASCII08.
+The rest is ASCII09.
+The rest is ASCII10.
+The rest is ASCII11.
+The rest is ASCII12.
+The rest is ASCII13.
+The rest is ASCII14.
+The rest is ASCII15.
+The rest is ASCII16.
+The rest is ASCII17.
+The rest is ASCII18.
+The rest is ASCII19.
+The rest is ASCII20.
+The rest is ASCII21.
+The rest is ASCII22.
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,text_auto,eol_lf/few-utf8-chars-lf b/tests/resources/crlf_data/posix/autocrlf_false,text_auto,eol_lf/few-utf8-chars-lf
new file mode 100644
index 000000000..f4d25b796
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,text_auto,eol_lf/few-utf8-chars-lf
@@ -0,0 +1,22 @@
+⚽The rest is ASCII01.
+The rest is ASCII02.
+The rest is ASCII03.
+The rest is ASCII04.
+The rest is ASCII05.
+The rest is ASCII06.
+The rest is ASCII07.
+The rest is ASCII08.
+The rest is ASCII09.
+The rest is ASCII10.
+The rest is ASCII11.
+The rest is ASCII12.
+The rest is ASCII13.
+The rest is ASCII14.
+The rest is ASCII15.
+The rest is ASCII16.
+The rest is ASCII17.
+The rest is ASCII18.
+The rest is ASCII19.
+The rest is ASCII20.
+The rest is ASCII21.
+The rest is ASCII22.
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,text_auto,eol_lf/many-utf8-chars-crlf b/tests/resources/crlf_data/posix/autocrlf_false,text_auto,eol_lf/many-utf8-chars-crlf
new file mode 100644
index 000000000..cd574f5a2
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,text_auto,eol_lf/many-utf8-chars-crlf
@@ -0,0 +1,4 @@
+Lets sing!
+♫♪♬♩
+Eat food
+🍅🍕
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,text_auto,eol_lf/many-utf8-chars-lf b/tests/resources/crlf_data/posix/autocrlf_false,text_auto,eol_lf/many-utf8-chars-lf
new file mode 100644
index 000000000..9a6c3533f
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,text_auto,eol_lf/many-utf8-chars-lf
@@ -0,0 +1,4 @@
+Lets sing!
+♫♪♬♩
+Eat food
+🍅🍕
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,text_auto,eol_lf/mixed-lf-cr b/tests/resources/crlf_data/posix/autocrlf_false,text_auto,eol_lf/mixed-lf-cr
new file mode 100644
index 000000000..d11e7ef63
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,text_auto,eol_lf/mixed-lf-cr
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,text_auto,eol_lf/mixed-lf-cr-crlf b/tests/resources/crlf_data/posix/autocrlf_false,text_auto,eol_lf/mixed-lf-cr-crlf
new file mode 100644
index 000000000..417786fc3
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,text_auto,eol_lf/mixed-lf-cr-crlf
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,text_auto,eol_lf/more-crlf b/tests/resources/crlf_data/posix/autocrlf_false,text_auto,eol_lf/more-crlf
new file mode 100644
index 000000000..0ff5a53f1
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,text_auto,eol_lf/more-crlf
@@ -0,0 +1,5 @@
+crlf
+crlf
+lf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,text_auto,eol_lf/more-crlf-utf8bom b/tests/resources/crlf_data/posix/autocrlf_false,text_auto,eol_lf/more-crlf-utf8bom
new file mode 100644
index 000000000..ea030d3c6
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,text_auto,eol_lf/more-crlf-utf8bom
@@ -0,0 +1,5 @@
+crlf
+crlf
+lf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,text_auto,eol_lf/more-lf b/tests/resources/crlf_data/posix/autocrlf_false,text_auto,eol_lf/more-lf
new file mode 100644
index 000000000..04de00b35
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,text_auto,eol_lf/more-lf
@@ -0,0 +1,5 @@
+lf
+lf
+crlf
+lf
+lf
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,text_auto,eol_lf/more-lf-utf8bom b/tests/resources/crlf_data/posix/autocrlf_false,text_auto,eol_lf/more-lf-utf8bom
new file mode 100644
index 000000000..dc88e3b91
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,text_auto,eol_lf/more-lf-utf8bom
@@ -0,0 +1,5 @@
+lf
+lf
+crlf
+lf
+lf
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,text_auto,eol_lf/zero-byte b/tests/resources/crlf_data/posix/autocrlf_false,text_auto,eol_lf/zero-byte
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,text_auto,eol_lf/zero-byte
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,text_auto/all-crlf b/tests/resources/crlf_data/posix/autocrlf_false,text_auto/all-crlf
new file mode 100644
index 000000000..a9a2e8913
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,text_auto/all-crlf
@@ -0,0 +1,4 @@
+crlf
+crlf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,text_auto/all-crlf-utf8bom b/tests/resources/crlf_data/posix/autocrlf_false,text_auto/all-crlf-utf8bom
new file mode 100644
index 000000000..0aa76e474
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,text_auto/all-crlf-utf8bom
@@ -0,0 +1,4 @@
+crlf
+crlf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,text_auto/all-lf b/tests/resources/crlf_data/posix/autocrlf_false,text_auto/all-lf
new file mode 100644
index 000000000..799770d1c
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,text_auto/all-lf
@@ -0,0 +1,5 @@
+lf
+lf
+lf
+lf
+lf
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,text_auto/all-lf-utf8bom b/tests/resources/crlf_data/posix/autocrlf_false,text_auto/all-lf-utf8bom
new file mode 100644
index 000000000..7cce67e58
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,text_auto/all-lf-utf8bom
@@ -0,0 +1,5 @@
+lf
+lf
+lf
+lf
+lf
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,text_auto/binary-all-crlf b/tests/resources/crlf_data/posix/autocrlf_false,text_auto/binary-all-crlf
new file mode 100644
index 000000000..85340755c
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,text_auto/binary-all-crlf
@@ -0,0 +1,4 @@
+one
+two
+three
+four
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,text_auto/binary-all-lf b/tests/resources/crlf_data/posix/autocrlf_false,text_auto/binary-all-lf
new file mode 100644
index 000000000..af6fcf6da
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,text_auto/binary-all-lf
@@ -0,0 +1,4 @@
+one
+two
+three
+four
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,text_auto/binary-mixed-lf-cr b/tests/resources/crlf_data/posix/autocrlf_false,text_auto/binary-mixed-lf-cr
new file mode 100644
index 000000000..203555c56
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,text_auto/binary-mixed-lf-cr
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,text_auto/binary-mixed-lf-cr-crlf b/tests/resources/crlf_data/posix/autocrlf_false,text_auto/binary-mixed-lf-cr-crlf
new file mode 100644
index 000000000..aaf083a9c
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,text_auto/binary-mixed-lf-cr-crlf
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,text_auto/few-utf8-chars-crlf b/tests/resources/crlf_data/posix/autocrlf_false,text_auto/few-utf8-chars-crlf
new file mode 100644
index 000000000..0e0528888
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,text_auto/few-utf8-chars-crlf
@@ -0,0 +1,22 @@
+⚽The rest is ASCII01.
+The rest is ASCII02.
+The rest is ASCII03.
+The rest is ASCII04.
+The rest is ASCII05.
+The rest is ASCII06.
+The rest is ASCII07.
+The rest is ASCII08.
+The rest is ASCII09.
+The rest is ASCII10.
+The rest is ASCII11.
+The rest is ASCII12.
+The rest is ASCII13.
+The rest is ASCII14.
+The rest is ASCII15.
+The rest is ASCII16.
+The rest is ASCII17.
+The rest is ASCII18.
+The rest is ASCII19.
+The rest is ASCII20.
+The rest is ASCII21.
+The rest is ASCII22.
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,text_auto/few-utf8-chars-lf b/tests/resources/crlf_data/posix/autocrlf_false,text_auto/few-utf8-chars-lf
new file mode 100644
index 000000000..f4d25b796
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,text_auto/few-utf8-chars-lf
@@ -0,0 +1,22 @@
+⚽The rest is ASCII01.
+The rest is ASCII02.
+The rest is ASCII03.
+The rest is ASCII04.
+The rest is ASCII05.
+The rest is ASCII06.
+The rest is ASCII07.
+The rest is ASCII08.
+The rest is ASCII09.
+The rest is ASCII10.
+The rest is ASCII11.
+The rest is ASCII12.
+The rest is ASCII13.
+The rest is ASCII14.
+The rest is ASCII15.
+The rest is ASCII16.
+The rest is ASCII17.
+The rest is ASCII18.
+The rest is ASCII19.
+The rest is ASCII20.
+The rest is ASCII21.
+The rest is ASCII22.
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,text_auto/many-utf8-chars-crlf b/tests/resources/crlf_data/posix/autocrlf_false,text_auto/many-utf8-chars-crlf
new file mode 100644
index 000000000..cd574f5a2
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,text_auto/many-utf8-chars-crlf
@@ -0,0 +1,4 @@
+Lets sing!
+♫♪♬♩
+Eat food
+🍅🍕
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,text_auto/many-utf8-chars-lf b/tests/resources/crlf_data/posix/autocrlf_false,text_auto/many-utf8-chars-lf
new file mode 100644
index 000000000..9a6c3533f
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,text_auto/many-utf8-chars-lf
@@ -0,0 +1,4 @@
+Lets sing!
+♫♪♬♩
+Eat food
+🍅🍕
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,text_auto/mixed-lf-cr b/tests/resources/crlf_data/posix/autocrlf_false,text_auto/mixed-lf-cr
new file mode 100644
index 000000000..d11e7ef63
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,text_auto/mixed-lf-cr
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,text_auto/mixed-lf-cr-crlf b/tests/resources/crlf_data/posix/autocrlf_false,text_auto/mixed-lf-cr-crlf
new file mode 100644
index 000000000..417786fc3
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,text_auto/mixed-lf-cr-crlf
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,text_auto/more-crlf b/tests/resources/crlf_data/posix/autocrlf_false,text_auto/more-crlf
new file mode 100644
index 000000000..0ff5a53f1
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,text_auto/more-crlf
@@ -0,0 +1,5 @@
+crlf
+crlf
+lf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,text_auto/more-crlf-utf8bom b/tests/resources/crlf_data/posix/autocrlf_false,text_auto/more-crlf-utf8bom
new file mode 100644
index 000000000..ea030d3c6
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,text_auto/more-crlf-utf8bom
@@ -0,0 +1,5 @@
+crlf
+crlf
+lf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,text_auto/more-lf b/tests/resources/crlf_data/posix/autocrlf_false,text_auto/more-lf
new file mode 100644
index 000000000..04de00b35
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,text_auto/more-lf
@@ -0,0 +1,5 @@
+lf
+lf
+crlf
+lf
+lf
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,text_auto/more-lf-utf8bom b/tests/resources/crlf_data/posix/autocrlf_false,text_auto/more-lf-utf8bom
new file mode 100644
index 000000000..dc88e3b91
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,text_auto/more-lf-utf8bom
@@ -0,0 +1,5 @@
+lf
+lf
+crlf
+lf
+lf
diff --git a/tests/resources/crlf_data/posix/autocrlf_false,text_auto/zero-byte b/tests/resources/crlf_data/posix/autocrlf_false,text_auto/zero-byte
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false,text_auto/zero-byte
diff --git a/tests/resources/crlf_data/posix/autocrlf_false/all-crlf b/tests/resources/crlf_data/posix/autocrlf_false/all-crlf
new file mode 100644
index 000000000..a9a2e8913
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false/all-crlf
@@ -0,0 +1,4 @@
+crlf
+crlf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/posix/autocrlf_false/all-crlf-utf8bom b/tests/resources/crlf_data/posix/autocrlf_false/all-crlf-utf8bom
new file mode 100644
index 000000000..0aa76e474
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false/all-crlf-utf8bom
@@ -0,0 +1,4 @@
+crlf
+crlf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/posix/autocrlf_false/all-lf b/tests/resources/crlf_data/posix/autocrlf_false/all-lf
new file mode 100644
index 000000000..799770d1c
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false/all-lf
@@ -0,0 +1,5 @@
+lf
+lf
+lf
+lf
+lf
diff --git a/tests/resources/crlf_data/posix/autocrlf_false/all-lf-utf8bom b/tests/resources/crlf_data/posix/autocrlf_false/all-lf-utf8bom
new file mode 100644
index 000000000..7cce67e58
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false/all-lf-utf8bom
@@ -0,0 +1,5 @@
+lf
+lf
+lf
+lf
+lf
diff --git a/tests/resources/crlf_data/posix/autocrlf_false/binary-all-crlf b/tests/resources/crlf_data/posix/autocrlf_false/binary-all-crlf
new file mode 100644
index 000000000..85340755c
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false/binary-all-crlf
@@ -0,0 +1,4 @@
+one
+two
+three
+four
diff --git a/tests/resources/crlf_data/posix/autocrlf_false/binary-all-lf b/tests/resources/crlf_data/posix/autocrlf_false/binary-all-lf
new file mode 100644
index 000000000..af6fcf6da
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false/binary-all-lf
@@ -0,0 +1,4 @@
+one
+two
+three
+four
diff --git a/tests/resources/crlf_data/posix/autocrlf_false/binary-mixed-lf-cr b/tests/resources/crlf_data/posix/autocrlf_false/binary-mixed-lf-cr
new file mode 100644
index 000000000..203555c56
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false/binary-mixed-lf-cr
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/posix/autocrlf_false/binary-mixed-lf-cr-crlf b/tests/resources/crlf_data/posix/autocrlf_false/binary-mixed-lf-cr-crlf
new file mode 100644
index 000000000..aaf083a9c
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false/binary-mixed-lf-cr-crlf
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/posix/autocrlf_false/few-utf8-chars-crlf b/tests/resources/crlf_data/posix/autocrlf_false/few-utf8-chars-crlf
new file mode 100644
index 000000000..0e0528888
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false/few-utf8-chars-crlf
@@ -0,0 +1,22 @@
+⚽The rest is ASCII01.
+The rest is ASCII02.
+The rest is ASCII03.
+The rest is ASCII04.
+The rest is ASCII05.
+The rest is ASCII06.
+The rest is ASCII07.
+The rest is ASCII08.
+The rest is ASCII09.
+The rest is ASCII10.
+The rest is ASCII11.
+The rest is ASCII12.
+The rest is ASCII13.
+The rest is ASCII14.
+The rest is ASCII15.
+The rest is ASCII16.
+The rest is ASCII17.
+The rest is ASCII18.
+The rest is ASCII19.
+The rest is ASCII20.
+The rest is ASCII21.
+The rest is ASCII22.
diff --git a/tests/resources/crlf_data/posix/autocrlf_false/few-utf8-chars-lf b/tests/resources/crlf_data/posix/autocrlf_false/few-utf8-chars-lf
new file mode 100644
index 000000000..f4d25b796
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false/few-utf8-chars-lf
@@ -0,0 +1,22 @@
+⚽The rest is ASCII01.
+The rest is ASCII02.
+The rest is ASCII03.
+The rest is ASCII04.
+The rest is ASCII05.
+The rest is ASCII06.
+The rest is ASCII07.
+The rest is ASCII08.
+The rest is ASCII09.
+The rest is ASCII10.
+The rest is ASCII11.
+The rest is ASCII12.
+The rest is ASCII13.
+The rest is ASCII14.
+The rest is ASCII15.
+The rest is ASCII16.
+The rest is ASCII17.
+The rest is ASCII18.
+The rest is ASCII19.
+The rest is ASCII20.
+The rest is ASCII21.
+The rest is ASCII22.
diff --git a/tests/resources/crlf_data/posix/autocrlf_false/many-utf8-chars-crlf b/tests/resources/crlf_data/posix/autocrlf_false/many-utf8-chars-crlf
new file mode 100644
index 000000000..cd574f5a2
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false/many-utf8-chars-crlf
@@ -0,0 +1,4 @@
+Lets sing!
+♫♪♬♩
+Eat food
+🍅🍕
diff --git a/tests/resources/crlf_data/posix/autocrlf_false/many-utf8-chars-lf b/tests/resources/crlf_data/posix/autocrlf_false/many-utf8-chars-lf
new file mode 100644
index 000000000..9a6c3533f
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false/many-utf8-chars-lf
@@ -0,0 +1,4 @@
+Lets sing!
+♫♪♬♩
+Eat food
+🍅🍕
diff --git a/tests/resources/crlf_data/posix/autocrlf_false/mixed-lf-cr b/tests/resources/crlf_data/posix/autocrlf_false/mixed-lf-cr
new file mode 100644
index 000000000..d11e7ef63
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false/mixed-lf-cr
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/posix/autocrlf_false/mixed-lf-cr-crlf b/tests/resources/crlf_data/posix/autocrlf_false/mixed-lf-cr-crlf
new file mode 100644
index 000000000..417786fc3
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false/mixed-lf-cr-crlf
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/posix/autocrlf_false/more-crlf b/tests/resources/crlf_data/posix/autocrlf_false/more-crlf
new file mode 100644
index 000000000..0ff5a53f1
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false/more-crlf
@@ -0,0 +1,5 @@
+crlf
+crlf
+lf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/posix/autocrlf_false/more-crlf-utf8bom b/tests/resources/crlf_data/posix/autocrlf_false/more-crlf-utf8bom
new file mode 100644
index 000000000..ea030d3c6
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false/more-crlf-utf8bom
@@ -0,0 +1,5 @@
+crlf
+crlf
+lf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/posix/autocrlf_false/more-lf b/tests/resources/crlf_data/posix/autocrlf_false/more-lf
new file mode 100644
index 000000000..04de00b35
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false/more-lf
@@ -0,0 +1,5 @@
+lf
+lf
+crlf
+lf
+lf
diff --git a/tests/resources/crlf_data/posix/autocrlf_false/more-lf-utf8bom b/tests/resources/crlf_data/posix/autocrlf_false/more-lf-utf8bom
new file mode 100644
index 000000000..dc88e3b91
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false/more-lf-utf8bom
@@ -0,0 +1,5 @@
+lf
+lf
+crlf
+lf
+lf
diff --git a/tests/resources/crlf_data/posix/autocrlf_false/zero-byte b/tests/resources/crlf_data/posix/autocrlf_false/zero-byte
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_false/zero-byte
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,-crlf/all-crlf b/tests/resources/crlf_data/posix/autocrlf_input,-crlf/all-crlf
new file mode 100644
index 000000000..a9a2e8913
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,-crlf/all-crlf
@@ -0,0 +1,4 @@
+crlf
+crlf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,-crlf/all-crlf-utf8bom b/tests/resources/crlf_data/posix/autocrlf_input,-crlf/all-crlf-utf8bom
new file mode 100644
index 000000000..0aa76e474
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,-crlf/all-crlf-utf8bom
@@ -0,0 +1,4 @@
+crlf
+crlf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,-crlf/all-lf b/tests/resources/crlf_data/posix/autocrlf_input,-crlf/all-lf
new file mode 100644
index 000000000..799770d1c
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,-crlf/all-lf
@@ -0,0 +1,5 @@
+lf
+lf
+lf
+lf
+lf
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,-crlf/all-lf-utf8bom b/tests/resources/crlf_data/posix/autocrlf_input,-crlf/all-lf-utf8bom
new file mode 100644
index 000000000..7cce67e58
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,-crlf/all-lf-utf8bom
@@ -0,0 +1,5 @@
+lf
+lf
+lf
+lf
+lf
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,-crlf/binary-all-crlf b/tests/resources/crlf_data/posix/autocrlf_input,-crlf/binary-all-crlf
new file mode 100644
index 000000000..85340755c
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,-crlf/binary-all-crlf
@@ -0,0 +1,4 @@
+one
+two
+three
+four
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,-crlf/binary-all-lf b/tests/resources/crlf_data/posix/autocrlf_input,-crlf/binary-all-lf
new file mode 100644
index 000000000..af6fcf6da
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,-crlf/binary-all-lf
@@ -0,0 +1,4 @@
+one
+two
+three
+four
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,-crlf/binary-mixed-lf-cr b/tests/resources/crlf_data/posix/autocrlf_input,-crlf/binary-mixed-lf-cr
new file mode 100644
index 000000000..203555c56
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,-crlf/binary-mixed-lf-cr
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,-crlf/binary-mixed-lf-cr-crlf b/tests/resources/crlf_data/posix/autocrlf_input,-crlf/binary-mixed-lf-cr-crlf
new file mode 100644
index 000000000..aaf083a9c
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,-crlf/binary-mixed-lf-cr-crlf
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,-crlf/few-utf8-chars-crlf b/tests/resources/crlf_data/posix/autocrlf_input,-crlf/few-utf8-chars-crlf
new file mode 100644
index 000000000..0e0528888
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,-crlf/few-utf8-chars-crlf
@@ -0,0 +1,22 @@
+⚽The rest is ASCII01.
+The rest is ASCII02.
+The rest is ASCII03.
+The rest is ASCII04.
+The rest is ASCII05.
+The rest is ASCII06.
+The rest is ASCII07.
+The rest is ASCII08.
+The rest is ASCII09.
+The rest is ASCII10.
+The rest is ASCII11.
+The rest is ASCII12.
+The rest is ASCII13.
+The rest is ASCII14.
+The rest is ASCII15.
+The rest is ASCII16.
+The rest is ASCII17.
+The rest is ASCII18.
+The rest is ASCII19.
+The rest is ASCII20.
+The rest is ASCII21.
+The rest is ASCII22.
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,-crlf/few-utf8-chars-lf b/tests/resources/crlf_data/posix/autocrlf_input,-crlf/few-utf8-chars-lf
new file mode 100644
index 000000000..f4d25b796
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,-crlf/few-utf8-chars-lf
@@ -0,0 +1,22 @@
+⚽The rest is ASCII01.
+The rest is ASCII02.
+The rest is ASCII03.
+The rest is ASCII04.
+The rest is ASCII05.
+The rest is ASCII06.
+The rest is ASCII07.
+The rest is ASCII08.
+The rest is ASCII09.
+The rest is ASCII10.
+The rest is ASCII11.
+The rest is ASCII12.
+The rest is ASCII13.
+The rest is ASCII14.
+The rest is ASCII15.
+The rest is ASCII16.
+The rest is ASCII17.
+The rest is ASCII18.
+The rest is ASCII19.
+The rest is ASCII20.
+The rest is ASCII21.
+The rest is ASCII22.
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,-crlf/many-utf8-chars-crlf b/tests/resources/crlf_data/posix/autocrlf_input,-crlf/many-utf8-chars-crlf
new file mode 100644
index 000000000..cd574f5a2
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,-crlf/many-utf8-chars-crlf
@@ -0,0 +1,4 @@
+Lets sing!
+♫♪♬♩
+Eat food
+🍅🍕
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,-crlf/many-utf8-chars-lf b/tests/resources/crlf_data/posix/autocrlf_input,-crlf/many-utf8-chars-lf
new file mode 100644
index 000000000..9a6c3533f
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,-crlf/many-utf8-chars-lf
@@ -0,0 +1,4 @@
+Lets sing!
+♫♪♬♩
+Eat food
+🍅🍕
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,-crlf/mixed-lf-cr b/tests/resources/crlf_data/posix/autocrlf_input,-crlf/mixed-lf-cr
new file mode 100644
index 000000000..d11e7ef63
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,-crlf/mixed-lf-cr
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,-crlf/mixed-lf-cr-crlf b/tests/resources/crlf_data/posix/autocrlf_input,-crlf/mixed-lf-cr-crlf
new file mode 100644
index 000000000..417786fc3
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,-crlf/mixed-lf-cr-crlf
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,-crlf/more-crlf b/tests/resources/crlf_data/posix/autocrlf_input,-crlf/more-crlf
new file mode 100644
index 000000000..0ff5a53f1
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,-crlf/more-crlf
@@ -0,0 +1,5 @@
+crlf
+crlf
+lf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,-crlf/more-crlf-utf8bom b/tests/resources/crlf_data/posix/autocrlf_input,-crlf/more-crlf-utf8bom
new file mode 100644
index 000000000..ea030d3c6
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,-crlf/more-crlf-utf8bom
@@ -0,0 +1,5 @@
+crlf
+crlf
+lf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,-crlf/more-lf b/tests/resources/crlf_data/posix/autocrlf_input,-crlf/more-lf
new file mode 100644
index 000000000..04de00b35
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,-crlf/more-lf
@@ -0,0 +1,5 @@
+lf
+lf
+crlf
+lf
+lf
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,-crlf/more-lf-utf8bom b/tests/resources/crlf_data/posix/autocrlf_input,-crlf/more-lf-utf8bom
new file mode 100644
index 000000000..dc88e3b91
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,-crlf/more-lf-utf8bom
@@ -0,0 +1,5 @@
+lf
+lf
+crlf
+lf
+lf
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,-crlf/zero-byte b/tests/resources/crlf_data/posix/autocrlf_input,-crlf/zero-byte
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,-crlf/zero-byte
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,-text/all-crlf b/tests/resources/crlf_data/posix/autocrlf_input,-text/all-crlf
new file mode 100644
index 000000000..a9a2e8913
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,-text/all-crlf
@@ -0,0 +1,4 @@
+crlf
+crlf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,-text/all-crlf-utf8bom b/tests/resources/crlf_data/posix/autocrlf_input,-text/all-crlf-utf8bom
new file mode 100644
index 000000000..0aa76e474
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,-text/all-crlf-utf8bom
@@ -0,0 +1,4 @@
+crlf
+crlf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,-text/all-lf b/tests/resources/crlf_data/posix/autocrlf_input,-text/all-lf
new file mode 100644
index 000000000..799770d1c
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,-text/all-lf
@@ -0,0 +1,5 @@
+lf
+lf
+lf
+lf
+lf
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,-text/all-lf-utf8bom b/tests/resources/crlf_data/posix/autocrlf_input,-text/all-lf-utf8bom
new file mode 100644
index 000000000..7cce67e58
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,-text/all-lf-utf8bom
@@ -0,0 +1,5 @@
+lf
+lf
+lf
+lf
+lf
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,-text/binary-all-crlf b/tests/resources/crlf_data/posix/autocrlf_input,-text/binary-all-crlf
new file mode 100644
index 000000000..85340755c
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,-text/binary-all-crlf
@@ -0,0 +1,4 @@
+one
+two
+three
+four
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,-text/binary-all-lf b/tests/resources/crlf_data/posix/autocrlf_input,-text/binary-all-lf
new file mode 100644
index 000000000..af6fcf6da
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,-text/binary-all-lf
@@ -0,0 +1,4 @@
+one
+two
+three
+four
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,-text/binary-mixed-lf-cr b/tests/resources/crlf_data/posix/autocrlf_input,-text/binary-mixed-lf-cr
new file mode 100644
index 000000000..203555c56
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,-text/binary-mixed-lf-cr
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,-text/binary-mixed-lf-cr-crlf b/tests/resources/crlf_data/posix/autocrlf_input,-text/binary-mixed-lf-cr-crlf
new file mode 100644
index 000000000..aaf083a9c
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,-text/binary-mixed-lf-cr-crlf
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,-text/few-utf8-chars-crlf b/tests/resources/crlf_data/posix/autocrlf_input,-text/few-utf8-chars-crlf
new file mode 100644
index 000000000..0e0528888
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,-text/few-utf8-chars-crlf
@@ -0,0 +1,22 @@
+⚽The rest is ASCII01.
+The rest is ASCII02.
+The rest is ASCII03.
+The rest is ASCII04.
+The rest is ASCII05.
+The rest is ASCII06.
+The rest is ASCII07.
+The rest is ASCII08.
+The rest is ASCII09.
+The rest is ASCII10.
+The rest is ASCII11.
+The rest is ASCII12.
+The rest is ASCII13.
+The rest is ASCII14.
+The rest is ASCII15.
+The rest is ASCII16.
+The rest is ASCII17.
+The rest is ASCII18.
+The rest is ASCII19.
+The rest is ASCII20.
+The rest is ASCII21.
+The rest is ASCII22.
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,-text/few-utf8-chars-lf b/tests/resources/crlf_data/posix/autocrlf_input,-text/few-utf8-chars-lf
new file mode 100644
index 000000000..f4d25b796
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,-text/few-utf8-chars-lf
@@ -0,0 +1,22 @@
+⚽The rest is ASCII01.
+The rest is ASCII02.
+The rest is ASCII03.
+The rest is ASCII04.
+The rest is ASCII05.
+The rest is ASCII06.
+The rest is ASCII07.
+The rest is ASCII08.
+The rest is ASCII09.
+The rest is ASCII10.
+The rest is ASCII11.
+The rest is ASCII12.
+The rest is ASCII13.
+The rest is ASCII14.
+The rest is ASCII15.
+The rest is ASCII16.
+The rest is ASCII17.
+The rest is ASCII18.
+The rest is ASCII19.
+The rest is ASCII20.
+The rest is ASCII21.
+The rest is ASCII22.
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,-text/many-utf8-chars-crlf b/tests/resources/crlf_data/posix/autocrlf_input,-text/many-utf8-chars-crlf
new file mode 100644
index 000000000..cd574f5a2
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,-text/many-utf8-chars-crlf
@@ -0,0 +1,4 @@
+Lets sing!
+♫♪♬♩
+Eat food
+🍅🍕
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,-text/many-utf8-chars-lf b/tests/resources/crlf_data/posix/autocrlf_input,-text/many-utf8-chars-lf
new file mode 100644
index 000000000..9a6c3533f
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,-text/many-utf8-chars-lf
@@ -0,0 +1,4 @@
+Lets sing!
+♫♪♬♩
+Eat food
+🍅🍕
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,-text/mixed-lf-cr b/tests/resources/crlf_data/posix/autocrlf_input,-text/mixed-lf-cr
new file mode 100644
index 000000000..d11e7ef63
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,-text/mixed-lf-cr
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,-text/mixed-lf-cr-crlf b/tests/resources/crlf_data/posix/autocrlf_input,-text/mixed-lf-cr-crlf
new file mode 100644
index 000000000..417786fc3
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,-text/mixed-lf-cr-crlf
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,-text/more-crlf b/tests/resources/crlf_data/posix/autocrlf_input,-text/more-crlf
new file mode 100644
index 000000000..0ff5a53f1
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,-text/more-crlf
@@ -0,0 +1,5 @@
+crlf
+crlf
+lf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,-text/more-crlf-utf8bom b/tests/resources/crlf_data/posix/autocrlf_input,-text/more-crlf-utf8bom
new file mode 100644
index 000000000..ea030d3c6
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,-text/more-crlf-utf8bom
@@ -0,0 +1,5 @@
+crlf
+crlf
+lf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,-text/more-lf b/tests/resources/crlf_data/posix/autocrlf_input,-text/more-lf
new file mode 100644
index 000000000..04de00b35
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,-text/more-lf
@@ -0,0 +1,5 @@
+lf
+lf
+crlf
+lf
+lf
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,-text/more-lf-utf8bom b/tests/resources/crlf_data/posix/autocrlf_input,-text/more-lf-utf8bom
new file mode 100644
index 000000000..dc88e3b91
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,-text/more-lf-utf8bom
@@ -0,0 +1,5 @@
+lf
+lf
+crlf
+lf
+lf
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,-text/zero-byte b/tests/resources/crlf_data/posix/autocrlf_input,-text/zero-byte
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,-text/zero-byte
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,crlf/all-crlf b/tests/resources/crlf_data/posix/autocrlf_input,crlf/all-crlf
new file mode 100644
index 000000000..a9a2e8913
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,crlf/all-crlf
@@ -0,0 +1,4 @@
+crlf
+crlf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,crlf/all-crlf-utf8bom b/tests/resources/crlf_data/posix/autocrlf_input,crlf/all-crlf-utf8bom
new file mode 100644
index 000000000..0aa76e474
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,crlf/all-crlf-utf8bom
@@ -0,0 +1,4 @@
+crlf
+crlf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,crlf/all-lf b/tests/resources/crlf_data/posix/autocrlf_input,crlf/all-lf
new file mode 100644
index 000000000..799770d1c
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,crlf/all-lf
@@ -0,0 +1,5 @@
+lf
+lf
+lf
+lf
+lf
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,crlf/all-lf-utf8bom b/tests/resources/crlf_data/posix/autocrlf_input,crlf/all-lf-utf8bom
new file mode 100644
index 000000000..7cce67e58
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,crlf/all-lf-utf8bom
@@ -0,0 +1,5 @@
+lf
+lf
+lf
+lf
+lf
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,crlf/binary-all-crlf b/tests/resources/crlf_data/posix/autocrlf_input,crlf/binary-all-crlf
new file mode 100644
index 000000000..85340755c
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,crlf/binary-all-crlf
@@ -0,0 +1,4 @@
+one
+two
+three
+four
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,crlf/binary-all-lf b/tests/resources/crlf_data/posix/autocrlf_input,crlf/binary-all-lf
new file mode 100644
index 000000000..af6fcf6da
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,crlf/binary-all-lf
@@ -0,0 +1,4 @@
+one
+two
+three
+four
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,crlf/binary-mixed-lf-cr b/tests/resources/crlf_data/posix/autocrlf_input,crlf/binary-mixed-lf-cr
new file mode 100644
index 000000000..203555c56
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,crlf/binary-mixed-lf-cr
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,crlf/binary-mixed-lf-cr-crlf b/tests/resources/crlf_data/posix/autocrlf_input,crlf/binary-mixed-lf-cr-crlf
new file mode 100644
index 000000000..aaf083a9c
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,crlf/binary-mixed-lf-cr-crlf
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,crlf/few-utf8-chars-crlf b/tests/resources/crlf_data/posix/autocrlf_input,crlf/few-utf8-chars-crlf
new file mode 100644
index 000000000..0e0528888
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,crlf/few-utf8-chars-crlf
@@ -0,0 +1,22 @@
+⚽The rest is ASCII01.
+The rest is ASCII02.
+The rest is ASCII03.
+The rest is ASCII04.
+The rest is ASCII05.
+The rest is ASCII06.
+The rest is ASCII07.
+The rest is ASCII08.
+The rest is ASCII09.
+The rest is ASCII10.
+The rest is ASCII11.
+The rest is ASCII12.
+The rest is ASCII13.
+The rest is ASCII14.
+The rest is ASCII15.
+The rest is ASCII16.
+The rest is ASCII17.
+The rest is ASCII18.
+The rest is ASCII19.
+The rest is ASCII20.
+The rest is ASCII21.
+The rest is ASCII22.
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,crlf/few-utf8-chars-lf b/tests/resources/crlf_data/posix/autocrlf_input,crlf/few-utf8-chars-lf
new file mode 100644
index 000000000..f4d25b796
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,crlf/few-utf8-chars-lf
@@ -0,0 +1,22 @@
+⚽The rest is ASCII01.
+The rest is ASCII02.
+The rest is ASCII03.
+The rest is ASCII04.
+The rest is ASCII05.
+The rest is ASCII06.
+The rest is ASCII07.
+The rest is ASCII08.
+The rest is ASCII09.
+The rest is ASCII10.
+The rest is ASCII11.
+The rest is ASCII12.
+The rest is ASCII13.
+The rest is ASCII14.
+The rest is ASCII15.
+The rest is ASCII16.
+The rest is ASCII17.
+The rest is ASCII18.
+The rest is ASCII19.
+The rest is ASCII20.
+The rest is ASCII21.
+The rest is ASCII22.
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,crlf/many-utf8-chars-crlf b/tests/resources/crlf_data/posix/autocrlf_input,crlf/many-utf8-chars-crlf
new file mode 100644
index 000000000..cd574f5a2
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,crlf/many-utf8-chars-crlf
@@ -0,0 +1,4 @@
+Lets sing!
+♫♪♬♩
+Eat food
+🍅🍕
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,crlf/many-utf8-chars-lf b/tests/resources/crlf_data/posix/autocrlf_input,crlf/many-utf8-chars-lf
new file mode 100644
index 000000000..9a6c3533f
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,crlf/many-utf8-chars-lf
@@ -0,0 +1,4 @@
+Lets sing!
+♫♪♬♩
+Eat food
+🍅🍕
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,crlf/mixed-lf-cr b/tests/resources/crlf_data/posix/autocrlf_input,crlf/mixed-lf-cr
new file mode 100644
index 000000000..d11e7ef63
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,crlf/mixed-lf-cr
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,crlf/mixed-lf-cr-crlf b/tests/resources/crlf_data/posix/autocrlf_input,crlf/mixed-lf-cr-crlf
new file mode 100644
index 000000000..417786fc3
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,crlf/mixed-lf-cr-crlf
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,crlf/more-crlf b/tests/resources/crlf_data/posix/autocrlf_input,crlf/more-crlf
new file mode 100644
index 000000000..0ff5a53f1
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,crlf/more-crlf
@@ -0,0 +1,5 @@
+crlf
+crlf
+lf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,crlf/more-crlf-utf8bom b/tests/resources/crlf_data/posix/autocrlf_input,crlf/more-crlf-utf8bom
new file mode 100644
index 000000000..ea030d3c6
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,crlf/more-crlf-utf8bom
@@ -0,0 +1,5 @@
+crlf
+crlf
+lf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,crlf/more-lf b/tests/resources/crlf_data/posix/autocrlf_input,crlf/more-lf
new file mode 100644
index 000000000..04de00b35
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,crlf/more-lf
@@ -0,0 +1,5 @@
+lf
+lf
+crlf
+lf
+lf
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,crlf/more-lf-utf8bom b/tests/resources/crlf_data/posix/autocrlf_input,crlf/more-lf-utf8bom
new file mode 100644
index 000000000..dc88e3b91
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,crlf/more-lf-utf8bom
@@ -0,0 +1,5 @@
+lf
+lf
+crlf
+lf
+lf
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,crlf/zero-byte b/tests/resources/crlf_data/posix/autocrlf_input,crlf/zero-byte
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,crlf/zero-byte
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,eol_crlf/all-crlf b/tests/resources/crlf_data/posix/autocrlf_input,eol_crlf/all-crlf
new file mode 100644
index 000000000..a9a2e8913
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,eol_crlf/all-crlf
@@ -0,0 +1,4 @@
+crlf
+crlf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,eol_crlf/all-crlf-utf8bom b/tests/resources/crlf_data/posix/autocrlf_input,eol_crlf/all-crlf-utf8bom
new file mode 100644
index 000000000..0aa76e474
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,eol_crlf/all-crlf-utf8bom
@@ -0,0 +1,4 @@
+crlf
+crlf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,eol_crlf/all-lf b/tests/resources/crlf_data/posix/autocrlf_input,eol_crlf/all-lf
new file mode 100644
index 000000000..f557a02d8
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,eol_crlf/all-lf
@@ -0,0 +1,5 @@
+lf
+lf
+lf
+lf
+lf
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,eol_crlf/all-lf-utf8bom b/tests/resources/crlf_data/posix/autocrlf_input,eol_crlf/all-lf-utf8bom
new file mode 100644
index 000000000..381cfe630
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,eol_crlf/all-lf-utf8bom
@@ -0,0 +1,5 @@
+lf
+lf
+lf
+lf
+lf
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,eol_crlf/binary-all-crlf b/tests/resources/crlf_data/posix/autocrlf_input,eol_crlf/binary-all-crlf
new file mode 100644
index 000000000..85340755c
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,eol_crlf/binary-all-crlf
@@ -0,0 +1,4 @@
+one
+two
+three
+four
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,eol_crlf/binary-all-lf b/tests/resources/crlf_data/posix/autocrlf_input,eol_crlf/binary-all-lf
new file mode 100644
index 000000000..85340755c
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,eol_crlf/binary-all-lf
@@ -0,0 +1,4 @@
+one
+two
+three
+four
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,eol_crlf/binary-mixed-lf-cr b/tests/resources/crlf_data/posix/autocrlf_input,eol_crlf/binary-mixed-lf-cr
new file mode 100644
index 000000000..fd2abfa9d
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,eol_crlf/binary-mixed-lf-cr
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,eol_crlf/binary-mixed-lf-cr-crlf b/tests/resources/crlf_data/posix/autocrlf_input,eol_crlf/binary-mixed-lf-cr-crlf
new file mode 100644
index 000000000..fd2abfa9d
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,eol_crlf/binary-mixed-lf-cr-crlf
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,eol_crlf/few-utf8-chars-crlf b/tests/resources/crlf_data/posix/autocrlf_input,eol_crlf/few-utf8-chars-crlf
new file mode 100644
index 000000000..0e0528888
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,eol_crlf/few-utf8-chars-crlf
@@ -0,0 +1,22 @@
+⚽The rest is ASCII01.
+The rest is ASCII02.
+The rest is ASCII03.
+The rest is ASCII04.
+The rest is ASCII05.
+The rest is ASCII06.
+The rest is ASCII07.
+The rest is ASCII08.
+The rest is ASCII09.
+The rest is ASCII10.
+The rest is ASCII11.
+The rest is ASCII12.
+The rest is ASCII13.
+The rest is ASCII14.
+The rest is ASCII15.
+The rest is ASCII16.
+The rest is ASCII17.
+The rest is ASCII18.
+The rest is ASCII19.
+The rest is ASCII20.
+The rest is ASCII21.
+The rest is ASCII22.
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,eol_crlf/few-utf8-chars-lf b/tests/resources/crlf_data/posix/autocrlf_input,eol_crlf/few-utf8-chars-lf
new file mode 100644
index 000000000..0e0528888
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,eol_crlf/few-utf8-chars-lf
@@ -0,0 +1,22 @@
+⚽The rest is ASCII01.
+The rest is ASCII02.
+The rest is ASCII03.
+The rest is ASCII04.
+The rest is ASCII05.
+The rest is ASCII06.
+The rest is ASCII07.
+The rest is ASCII08.
+The rest is ASCII09.
+The rest is ASCII10.
+The rest is ASCII11.
+The rest is ASCII12.
+The rest is ASCII13.
+The rest is ASCII14.
+The rest is ASCII15.
+The rest is ASCII16.
+The rest is ASCII17.
+The rest is ASCII18.
+The rest is ASCII19.
+The rest is ASCII20.
+The rest is ASCII21.
+The rest is ASCII22.
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,eol_crlf/many-utf8-chars-crlf b/tests/resources/crlf_data/posix/autocrlf_input,eol_crlf/many-utf8-chars-crlf
new file mode 100644
index 000000000..cd574f5a2
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,eol_crlf/many-utf8-chars-crlf
@@ -0,0 +1,4 @@
+Lets sing!
+♫♪♬♩
+Eat food
+🍅🍕
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,eol_crlf/many-utf8-chars-lf b/tests/resources/crlf_data/posix/autocrlf_input,eol_crlf/many-utf8-chars-lf
new file mode 100644
index 000000000..cd574f5a2
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,eol_crlf/many-utf8-chars-lf
@@ -0,0 +1,4 @@
+Lets sing!
+♫♪♬♩
+Eat food
+🍅🍕
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,eol_crlf/mixed-lf-cr b/tests/resources/crlf_data/posix/autocrlf_input,eol_crlf/mixed-lf-cr
new file mode 100644
index 000000000..df8c0f680
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,eol_crlf/mixed-lf-cr
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,eol_crlf/mixed-lf-cr-crlf b/tests/resources/crlf_data/posix/autocrlf_input,eol_crlf/mixed-lf-cr-crlf
new file mode 100644
index 000000000..df8c0f680
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,eol_crlf/mixed-lf-cr-crlf
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,eol_crlf/more-crlf b/tests/resources/crlf_data/posix/autocrlf_input,eol_crlf/more-crlf
new file mode 100644
index 000000000..e682c3077
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,eol_crlf/more-crlf
@@ -0,0 +1,5 @@
+crlf
+crlf
+lf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,eol_crlf/more-crlf-utf8bom b/tests/resources/crlf_data/posix/autocrlf_input,eol_crlf/more-crlf-utf8bom
new file mode 100644
index 000000000..2e1220cbb
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,eol_crlf/more-crlf-utf8bom
@@ -0,0 +1,5 @@
+crlf
+crlf
+lf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,eol_crlf/more-lf b/tests/resources/crlf_data/posix/autocrlf_input,eol_crlf/more-lf
new file mode 100644
index 000000000..6da5b0c7e
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,eol_crlf/more-lf
@@ -0,0 +1,5 @@
+lf
+lf
+crlf
+lf
+lf
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,eol_crlf/more-lf-utf8bom b/tests/resources/crlf_data/posix/autocrlf_input,eol_crlf/more-lf-utf8bom
new file mode 100644
index 000000000..3fa59c809
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,eol_crlf/more-lf-utf8bom
@@ -0,0 +1,5 @@
+lf
+lf
+crlf
+lf
+lf
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,eol_crlf/zero-byte b/tests/resources/crlf_data/posix/autocrlf_input,eol_crlf/zero-byte
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,eol_crlf/zero-byte
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,eol_lf/all-crlf b/tests/resources/crlf_data/posix/autocrlf_input,eol_lf/all-crlf
new file mode 100644
index 000000000..a9a2e8913
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,eol_lf/all-crlf
@@ -0,0 +1,4 @@
+crlf
+crlf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,eol_lf/all-crlf-utf8bom b/tests/resources/crlf_data/posix/autocrlf_input,eol_lf/all-crlf-utf8bom
new file mode 100644
index 000000000..0aa76e474
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,eol_lf/all-crlf-utf8bom
@@ -0,0 +1,4 @@
+crlf
+crlf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,eol_lf/all-lf b/tests/resources/crlf_data/posix/autocrlf_input,eol_lf/all-lf
new file mode 100644
index 000000000..799770d1c
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,eol_lf/all-lf
@@ -0,0 +1,5 @@
+lf
+lf
+lf
+lf
+lf
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,eol_lf/all-lf-utf8bom b/tests/resources/crlf_data/posix/autocrlf_input,eol_lf/all-lf-utf8bom
new file mode 100644
index 000000000..7cce67e58
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,eol_lf/all-lf-utf8bom
@@ -0,0 +1,5 @@
+lf
+lf
+lf
+lf
+lf
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,eol_lf/binary-all-crlf b/tests/resources/crlf_data/posix/autocrlf_input,eol_lf/binary-all-crlf
new file mode 100644
index 000000000..85340755c
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,eol_lf/binary-all-crlf
@@ -0,0 +1,4 @@
+one
+two
+three
+four
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,eol_lf/binary-all-lf b/tests/resources/crlf_data/posix/autocrlf_input,eol_lf/binary-all-lf
new file mode 100644
index 000000000..af6fcf6da
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,eol_lf/binary-all-lf
@@ -0,0 +1,4 @@
+one
+two
+three
+four
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,eol_lf/binary-mixed-lf-cr b/tests/resources/crlf_data/posix/autocrlf_input,eol_lf/binary-mixed-lf-cr
new file mode 100644
index 000000000..203555c56
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,eol_lf/binary-mixed-lf-cr
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,eol_lf/binary-mixed-lf-cr-crlf b/tests/resources/crlf_data/posix/autocrlf_input,eol_lf/binary-mixed-lf-cr-crlf
new file mode 100644
index 000000000..aaf083a9c
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,eol_lf/binary-mixed-lf-cr-crlf
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,eol_lf/few-utf8-chars-crlf b/tests/resources/crlf_data/posix/autocrlf_input,eol_lf/few-utf8-chars-crlf
new file mode 100644
index 000000000..0e0528888
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,eol_lf/few-utf8-chars-crlf
@@ -0,0 +1,22 @@
+⚽The rest is ASCII01.
+The rest is ASCII02.
+The rest is ASCII03.
+The rest is ASCII04.
+The rest is ASCII05.
+The rest is ASCII06.
+The rest is ASCII07.
+The rest is ASCII08.
+The rest is ASCII09.
+The rest is ASCII10.
+The rest is ASCII11.
+The rest is ASCII12.
+The rest is ASCII13.
+The rest is ASCII14.
+The rest is ASCII15.
+The rest is ASCII16.
+The rest is ASCII17.
+The rest is ASCII18.
+The rest is ASCII19.
+The rest is ASCII20.
+The rest is ASCII21.
+The rest is ASCII22.
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,eol_lf/few-utf8-chars-lf b/tests/resources/crlf_data/posix/autocrlf_input,eol_lf/few-utf8-chars-lf
new file mode 100644
index 000000000..f4d25b796
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,eol_lf/few-utf8-chars-lf
@@ -0,0 +1,22 @@
+⚽The rest is ASCII01.
+The rest is ASCII02.
+The rest is ASCII03.
+The rest is ASCII04.
+The rest is ASCII05.
+The rest is ASCII06.
+The rest is ASCII07.
+The rest is ASCII08.
+The rest is ASCII09.
+The rest is ASCII10.
+The rest is ASCII11.
+The rest is ASCII12.
+The rest is ASCII13.
+The rest is ASCII14.
+The rest is ASCII15.
+The rest is ASCII16.
+The rest is ASCII17.
+The rest is ASCII18.
+The rest is ASCII19.
+The rest is ASCII20.
+The rest is ASCII21.
+The rest is ASCII22.
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,eol_lf/many-utf8-chars-crlf b/tests/resources/crlf_data/posix/autocrlf_input,eol_lf/many-utf8-chars-crlf
new file mode 100644
index 000000000..cd574f5a2
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,eol_lf/many-utf8-chars-crlf
@@ -0,0 +1,4 @@
+Lets sing!
+♫♪♬♩
+Eat food
+🍅🍕
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,eol_lf/many-utf8-chars-lf b/tests/resources/crlf_data/posix/autocrlf_input,eol_lf/many-utf8-chars-lf
new file mode 100644
index 000000000..9a6c3533f
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,eol_lf/many-utf8-chars-lf
@@ -0,0 +1,4 @@
+Lets sing!
+♫♪♬♩
+Eat food
+🍅🍕
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,eol_lf/mixed-lf-cr b/tests/resources/crlf_data/posix/autocrlf_input,eol_lf/mixed-lf-cr
new file mode 100644
index 000000000..d11e7ef63
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,eol_lf/mixed-lf-cr
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,eol_lf/mixed-lf-cr-crlf b/tests/resources/crlf_data/posix/autocrlf_input,eol_lf/mixed-lf-cr-crlf
new file mode 100644
index 000000000..417786fc3
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,eol_lf/mixed-lf-cr-crlf
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,eol_lf/more-crlf b/tests/resources/crlf_data/posix/autocrlf_input,eol_lf/more-crlf
new file mode 100644
index 000000000..0ff5a53f1
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,eol_lf/more-crlf
@@ -0,0 +1,5 @@
+crlf
+crlf
+lf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,eol_lf/more-crlf-utf8bom b/tests/resources/crlf_data/posix/autocrlf_input,eol_lf/more-crlf-utf8bom
new file mode 100644
index 000000000..ea030d3c6
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,eol_lf/more-crlf-utf8bom
@@ -0,0 +1,5 @@
+crlf
+crlf
+lf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,eol_lf/more-lf b/tests/resources/crlf_data/posix/autocrlf_input,eol_lf/more-lf
new file mode 100644
index 000000000..04de00b35
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,eol_lf/more-lf
@@ -0,0 +1,5 @@
+lf
+lf
+crlf
+lf
+lf
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,eol_lf/more-lf-utf8bom b/tests/resources/crlf_data/posix/autocrlf_input,eol_lf/more-lf-utf8bom
new file mode 100644
index 000000000..dc88e3b91
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,eol_lf/more-lf-utf8bom
@@ -0,0 +1,5 @@
+lf
+lf
+crlf
+lf
+lf
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,eol_lf/zero-byte b/tests/resources/crlf_data/posix/autocrlf_input,eol_lf/zero-byte
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,eol_lf/zero-byte
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,text,eol_crlf/all-crlf b/tests/resources/crlf_data/posix/autocrlf_input,text,eol_crlf/all-crlf
new file mode 100644
index 000000000..a9a2e8913
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,text,eol_crlf/all-crlf
@@ -0,0 +1,4 @@
+crlf
+crlf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,text,eol_crlf/all-crlf-utf8bom b/tests/resources/crlf_data/posix/autocrlf_input,text,eol_crlf/all-crlf-utf8bom
new file mode 100644
index 000000000..0aa76e474
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,text,eol_crlf/all-crlf-utf8bom
@@ -0,0 +1,4 @@
+crlf
+crlf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,text,eol_crlf/all-lf b/tests/resources/crlf_data/posix/autocrlf_input,text,eol_crlf/all-lf
new file mode 100644
index 000000000..f557a02d8
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,text,eol_crlf/all-lf
@@ -0,0 +1,5 @@
+lf
+lf
+lf
+lf
+lf
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,text,eol_crlf/all-lf-utf8bom b/tests/resources/crlf_data/posix/autocrlf_input,text,eol_crlf/all-lf-utf8bom
new file mode 100644
index 000000000..381cfe630
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,text,eol_crlf/all-lf-utf8bom
@@ -0,0 +1,5 @@
+lf
+lf
+lf
+lf
+lf
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,text,eol_crlf/binary-all-crlf b/tests/resources/crlf_data/posix/autocrlf_input,text,eol_crlf/binary-all-crlf
new file mode 100644
index 000000000..85340755c
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,text,eol_crlf/binary-all-crlf
@@ -0,0 +1,4 @@
+one
+two
+three
+four
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,text,eol_crlf/binary-all-lf b/tests/resources/crlf_data/posix/autocrlf_input,text,eol_crlf/binary-all-lf
new file mode 100644
index 000000000..85340755c
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,text,eol_crlf/binary-all-lf
@@ -0,0 +1,4 @@
+one
+two
+three
+four
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,text,eol_crlf/binary-mixed-lf-cr b/tests/resources/crlf_data/posix/autocrlf_input,text,eol_crlf/binary-mixed-lf-cr
new file mode 100644
index 000000000..fd2abfa9d
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,text,eol_crlf/binary-mixed-lf-cr
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,text,eol_crlf/binary-mixed-lf-cr-crlf b/tests/resources/crlf_data/posix/autocrlf_input,text,eol_crlf/binary-mixed-lf-cr-crlf
new file mode 100644
index 000000000..fd2abfa9d
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,text,eol_crlf/binary-mixed-lf-cr-crlf
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,text,eol_crlf/few-utf8-chars-crlf b/tests/resources/crlf_data/posix/autocrlf_input,text,eol_crlf/few-utf8-chars-crlf
new file mode 100644
index 000000000..0e0528888
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,text,eol_crlf/few-utf8-chars-crlf
@@ -0,0 +1,22 @@
+⚽The rest is ASCII01.
+The rest is ASCII02.
+The rest is ASCII03.
+The rest is ASCII04.
+The rest is ASCII05.
+The rest is ASCII06.
+The rest is ASCII07.
+The rest is ASCII08.
+The rest is ASCII09.
+The rest is ASCII10.
+The rest is ASCII11.
+The rest is ASCII12.
+The rest is ASCII13.
+The rest is ASCII14.
+The rest is ASCII15.
+The rest is ASCII16.
+The rest is ASCII17.
+The rest is ASCII18.
+The rest is ASCII19.
+The rest is ASCII20.
+The rest is ASCII21.
+The rest is ASCII22.
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,text,eol_crlf/few-utf8-chars-lf b/tests/resources/crlf_data/posix/autocrlf_input,text,eol_crlf/few-utf8-chars-lf
new file mode 100644
index 000000000..0e0528888
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,text,eol_crlf/few-utf8-chars-lf
@@ -0,0 +1,22 @@
+⚽The rest is ASCII01.
+The rest is ASCII02.
+The rest is ASCII03.
+The rest is ASCII04.
+The rest is ASCII05.
+The rest is ASCII06.
+The rest is ASCII07.
+The rest is ASCII08.
+The rest is ASCII09.
+The rest is ASCII10.
+The rest is ASCII11.
+The rest is ASCII12.
+The rest is ASCII13.
+The rest is ASCII14.
+The rest is ASCII15.
+The rest is ASCII16.
+The rest is ASCII17.
+The rest is ASCII18.
+The rest is ASCII19.
+The rest is ASCII20.
+The rest is ASCII21.
+The rest is ASCII22.
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,text,eol_crlf/many-utf8-chars-crlf b/tests/resources/crlf_data/posix/autocrlf_input,text,eol_crlf/many-utf8-chars-crlf
new file mode 100644
index 000000000..cd574f5a2
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,text,eol_crlf/many-utf8-chars-crlf
@@ -0,0 +1,4 @@
+Lets sing!
+♫♪♬♩
+Eat food
+🍅🍕
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,text,eol_crlf/many-utf8-chars-lf b/tests/resources/crlf_data/posix/autocrlf_input,text,eol_crlf/many-utf8-chars-lf
new file mode 100644
index 000000000..cd574f5a2
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,text,eol_crlf/many-utf8-chars-lf
@@ -0,0 +1,4 @@
+Lets sing!
+♫♪♬♩
+Eat food
+🍅🍕
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,text,eol_crlf/mixed-lf-cr b/tests/resources/crlf_data/posix/autocrlf_input,text,eol_crlf/mixed-lf-cr
new file mode 100644
index 000000000..df8c0f680
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,text,eol_crlf/mixed-lf-cr
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,text,eol_crlf/mixed-lf-cr-crlf b/tests/resources/crlf_data/posix/autocrlf_input,text,eol_crlf/mixed-lf-cr-crlf
new file mode 100644
index 000000000..df8c0f680
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,text,eol_crlf/mixed-lf-cr-crlf
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,text,eol_crlf/more-crlf b/tests/resources/crlf_data/posix/autocrlf_input,text,eol_crlf/more-crlf
new file mode 100644
index 000000000..e682c3077
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,text,eol_crlf/more-crlf
@@ -0,0 +1,5 @@
+crlf
+crlf
+lf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,text,eol_crlf/more-crlf-utf8bom b/tests/resources/crlf_data/posix/autocrlf_input,text,eol_crlf/more-crlf-utf8bom
new file mode 100644
index 000000000..2e1220cbb
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,text,eol_crlf/more-crlf-utf8bom
@@ -0,0 +1,5 @@
+crlf
+crlf
+lf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,text,eol_crlf/more-lf b/tests/resources/crlf_data/posix/autocrlf_input,text,eol_crlf/more-lf
new file mode 100644
index 000000000..6da5b0c7e
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,text,eol_crlf/more-lf
@@ -0,0 +1,5 @@
+lf
+lf
+crlf
+lf
+lf
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,text,eol_crlf/more-lf-utf8bom b/tests/resources/crlf_data/posix/autocrlf_input,text,eol_crlf/more-lf-utf8bom
new file mode 100644
index 000000000..3fa59c809
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,text,eol_crlf/more-lf-utf8bom
@@ -0,0 +1,5 @@
+lf
+lf
+crlf
+lf
+lf
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,text,eol_crlf/zero-byte b/tests/resources/crlf_data/posix/autocrlf_input,text,eol_crlf/zero-byte
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,text,eol_crlf/zero-byte
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,text,eol_lf/all-crlf b/tests/resources/crlf_data/posix/autocrlf_input,text,eol_lf/all-crlf
new file mode 100644
index 000000000..a9a2e8913
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,text,eol_lf/all-crlf
@@ -0,0 +1,4 @@
+crlf
+crlf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,text,eol_lf/all-crlf-utf8bom b/tests/resources/crlf_data/posix/autocrlf_input,text,eol_lf/all-crlf-utf8bom
new file mode 100644
index 000000000..0aa76e474
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,text,eol_lf/all-crlf-utf8bom
@@ -0,0 +1,4 @@
+crlf
+crlf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,text,eol_lf/all-lf b/tests/resources/crlf_data/posix/autocrlf_input,text,eol_lf/all-lf
new file mode 100644
index 000000000..799770d1c
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,text,eol_lf/all-lf
@@ -0,0 +1,5 @@
+lf
+lf
+lf
+lf
+lf
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,text,eol_lf/all-lf-utf8bom b/tests/resources/crlf_data/posix/autocrlf_input,text,eol_lf/all-lf-utf8bom
new file mode 100644
index 000000000..7cce67e58
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,text,eol_lf/all-lf-utf8bom
@@ -0,0 +1,5 @@
+lf
+lf
+lf
+lf
+lf
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,text,eol_lf/binary-all-crlf b/tests/resources/crlf_data/posix/autocrlf_input,text,eol_lf/binary-all-crlf
new file mode 100644
index 000000000..85340755c
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,text,eol_lf/binary-all-crlf
@@ -0,0 +1,4 @@
+one
+two
+three
+four
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,text,eol_lf/binary-all-lf b/tests/resources/crlf_data/posix/autocrlf_input,text,eol_lf/binary-all-lf
new file mode 100644
index 000000000..af6fcf6da
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,text,eol_lf/binary-all-lf
@@ -0,0 +1,4 @@
+one
+two
+three
+four
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,text,eol_lf/binary-mixed-lf-cr b/tests/resources/crlf_data/posix/autocrlf_input,text,eol_lf/binary-mixed-lf-cr
new file mode 100644
index 000000000..203555c56
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,text,eol_lf/binary-mixed-lf-cr
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,text,eol_lf/binary-mixed-lf-cr-crlf b/tests/resources/crlf_data/posix/autocrlf_input,text,eol_lf/binary-mixed-lf-cr-crlf
new file mode 100644
index 000000000..aaf083a9c
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,text,eol_lf/binary-mixed-lf-cr-crlf
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,text,eol_lf/few-utf8-chars-crlf b/tests/resources/crlf_data/posix/autocrlf_input,text,eol_lf/few-utf8-chars-crlf
new file mode 100644
index 000000000..0e0528888
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,text,eol_lf/few-utf8-chars-crlf
@@ -0,0 +1,22 @@
+⚽The rest is ASCII01.
+The rest is ASCII02.
+The rest is ASCII03.
+The rest is ASCII04.
+The rest is ASCII05.
+The rest is ASCII06.
+The rest is ASCII07.
+The rest is ASCII08.
+The rest is ASCII09.
+The rest is ASCII10.
+The rest is ASCII11.
+The rest is ASCII12.
+The rest is ASCII13.
+The rest is ASCII14.
+The rest is ASCII15.
+The rest is ASCII16.
+The rest is ASCII17.
+The rest is ASCII18.
+The rest is ASCII19.
+The rest is ASCII20.
+The rest is ASCII21.
+The rest is ASCII22.
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,text,eol_lf/few-utf8-chars-lf b/tests/resources/crlf_data/posix/autocrlf_input,text,eol_lf/few-utf8-chars-lf
new file mode 100644
index 000000000..f4d25b796
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,text,eol_lf/few-utf8-chars-lf
@@ -0,0 +1,22 @@
+⚽The rest is ASCII01.
+The rest is ASCII02.
+The rest is ASCII03.
+The rest is ASCII04.
+The rest is ASCII05.
+The rest is ASCII06.
+The rest is ASCII07.
+The rest is ASCII08.
+The rest is ASCII09.
+The rest is ASCII10.
+The rest is ASCII11.
+The rest is ASCII12.
+The rest is ASCII13.
+The rest is ASCII14.
+The rest is ASCII15.
+The rest is ASCII16.
+The rest is ASCII17.
+The rest is ASCII18.
+The rest is ASCII19.
+The rest is ASCII20.
+The rest is ASCII21.
+The rest is ASCII22.
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,text,eol_lf/many-utf8-chars-crlf b/tests/resources/crlf_data/posix/autocrlf_input,text,eol_lf/many-utf8-chars-crlf
new file mode 100644
index 000000000..cd574f5a2
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,text,eol_lf/many-utf8-chars-crlf
@@ -0,0 +1,4 @@
+Lets sing!
+♫♪♬♩
+Eat food
+🍅🍕
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,text,eol_lf/many-utf8-chars-lf b/tests/resources/crlf_data/posix/autocrlf_input,text,eol_lf/many-utf8-chars-lf
new file mode 100644
index 000000000..9a6c3533f
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,text,eol_lf/many-utf8-chars-lf
@@ -0,0 +1,4 @@
+Lets sing!
+♫♪♬♩
+Eat food
+🍅🍕
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,text,eol_lf/mixed-lf-cr b/tests/resources/crlf_data/posix/autocrlf_input,text,eol_lf/mixed-lf-cr
new file mode 100644
index 000000000..d11e7ef63
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,text,eol_lf/mixed-lf-cr
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,text,eol_lf/mixed-lf-cr-crlf b/tests/resources/crlf_data/posix/autocrlf_input,text,eol_lf/mixed-lf-cr-crlf
new file mode 100644
index 000000000..417786fc3
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,text,eol_lf/mixed-lf-cr-crlf
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,text,eol_lf/more-crlf b/tests/resources/crlf_data/posix/autocrlf_input,text,eol_lf/more-crlf
new file mode 100644
index 000000000..0ff5a53f1
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,text,eol_lf/more-crlf
@@ -0,0 +1,5 @@
+crlf
+crlf
+lf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,text,eol_lf/more-crlf-utf8bom b/tests/resources/crlf_data/posix/autocrlf_input,text,eol_lf/more-crlf-utf8bom
new file mode 100644
index 000000000..ea030d3c6
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,text,eol_lf/more-crlf-utf8bom
@@ -0,0 +1,5 @@
+crlf
+crlf
+lf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,text,eol_lf/more-lf b/tests/resources/crlf_data/posix/autocrlf_input,text,eol_lf/more-lf
new file mode 100644
index 000000000..04de00b35
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,text,eol_lf/more-lf
@@ -0,0 +1,5 @@
+lf
+lf
+crlf
+lf
+lf
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,text,eol_lf/more-lf-utf8bom b/tests/resources/crlf_data/posix/autocrlf_input,text,eol_lf/more-lf-utf8bom
new file mode 100644
index 000000000..dc88e3b91
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,text,eol_lf/more-lf-utf8bom
@@ -0,0 +1,5 @@
+lf
+lf
+crlf
+lf
+lf
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,text,eol_lf/zero-byte b/tests/resources/crlf_data/posix/autocrlf_input,text,eol_lf/zero-byte
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,text,eol_lf/zero-byte
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,text/all-crlf b/tests/resources/crlf_data/posix/autocrlf_input,text/all-crlf
new file mode 100644
index 000000000..a9a2e8913
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,text/all-crlf
@@ -0,0 +1,4 @@
+crlf
+crlf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,text/all-crlf-utf8bom b/tests/resources/crlf_data/posix/autocrlf_input,text/all-crlf-utf8bom
new file mode 100644
index 000000000..0aa76e474
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,text/all-crlf-utf8bom
@@ -0,0 +1,4 @@
+crlf
+crlf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,text/all-lf b/tests/resources/crlf_data/posix/autocrlf_input,text/all-lf
new file mode 100644
index 000000000..799770d1c
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,text/all-lf
@@ -0,0 +1,5 @@
+lf
+lf
+lf
+lf
+lf
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,text/all-lf-utf8bom b/tests/resources/crlf_data/posix/autocrlf_input,text/all-lf-utf8bom
new file mode 100644
index 000000000..7cce67e58
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,text/all-lf-utf8bom
@@ -0,0 +1,5 @@
+lf
+lf
+lf
+lf
+lf
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,text/binary-all-crlf b/tests/resources/crlf_data/posix/autocrlf_input,text/binary-all-crlf
new file mode 100644
index 000000000..85340755c
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,text/binary-all-crlf
@@ -0,0 +1,4 @@
+one
+two
+three
+four
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,text/binary-all-lf b/tests/resources/crlf_data/posix/autocrlf_input,text/binary-all-lf
new file mode 100644
index 000000000..af6fcf6da
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,text/binary-all-lf
@@ -0,0 +1,4 @@
+one
+two
+three
+four
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,text/binary-mixed-lf-cr b/tests/resources/crlf_data/posix/autocrlf_input,text/binary-mixed-lf-cr
new file mode 100644
index 000000000..203555c56
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,text/binary-mixed-lf-cr
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,text/binary-mixed-lf-cr-crlf b/tests/resources/crlf_data/posix/autocrlf_input,text/binary-mixed-lf-cr-crlf
new file mode 100644
index 000000000..aaf083a9c
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,text/binary-mixed-lf-cr-crlf
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,text/few-utf8-chars-crlf b/tests/resources/crlf_data/posix/autocrlf_input,text/few-utf8-chars-crlf
new file mode 100644
index 000000000..0e0528888
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,text/few-utf8-chars-crlf
@@ -0,0 +1,22 @@
+⚽The rest is ASCII01.
+The rest is ASCII02.
+The rest is ASCII03.
+The rest is ASCII04.
+The rest is ASCII05.
+The rest is ASCII06.
+The rest is ASCII07.
+The rest is ASCII08.
+The rest is ASCII09.
+The rest is ASCII10.
+The rest is ASCII11.
+The rest is ASCII12.
+The rest is ASCII13.
+The rest is ASCII14.
+The rest is ASCII15.
+The rest is ASCII16.
+The rest is ASCII17.
+The rest is ASCII18.
+The rest is ASCII19.
+The rest is ASCII20.
+The rest is ASCII21.
+The rest is ASCII22.
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,text/few-utf8-chars-lf b/tests/resources/crlf_data/posix/autocrlf_input,text/few-utf8-chars-lf
new file mode 100644
index 000000000..f4d25b796
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,text/few-utf8-chars-lf
@@ -0,0 +1,22 @@
+⚽The rest is ASCII01.
+The rest is ASCII02.
+The rest is ASCII03.
+The rest is ASCII04.
+The rest is ASCII05.
+The rest is ASCII06.
+The rest is ASCII07.
+The rest is ASCII08.
+The rest is ASCII09.
+The rest is ASCII10.
+The rest is ASCII11.
+The rest is ASCII12.
+The rest is ASCII13.
+The rest is ASCII14.
+The rest is ASCII15.
+The rest is ASCII16.
+The rest is ASCII17.
+The rest is ASCII18.
+The rest is ASCII19.
+The rest is ASCII20.
+The rest is ASCII21.
+The rest is ASCII22.
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,text/many-utf8-chars-crlf b/tests/resources/crlf_data/posix/autocrlf_input,text/many-utf8-chars-crlf
new file mode 100644
index 000000000..cd574f5a2
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,text/many-utf8-chars-crlf
@@ -0,0 +1,4 @@
+Lets sing!
+♫♪♬♩
+Eat food
+🍅🍕
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,text/many-utf8-chars-lf b/tests/resources/crlf_data/posix/autocrlf_input,text/many-utf8-chars-lf
new file mode 100644
index 000000000..9a6c3533f
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,text/many-utf8-chars-lf
@@ -0,0 +1,4 @@
+Lets sing!
+♫♪♬♩
+Eat food
+🍅🍕
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,text/mixed-lf-cr b/tests/resources/crlf_data/posix/autocrlf_input,text/mixed-lf-cr
new file mode 100644
index 000000000..d11e7ef63
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,text/mixed-lf-cr
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,text/mixed-lf-cr-crlf b/tests/resources/crlf_data/posix/autocrlf_input,text/mixed-lf-cr-crlf
new file mode 100644
index 000000000..417786fc3
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,text/mixed-lf-cr-crlf
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,text/more-crlf b/tests/resources/crlf_data/posix/autocrlf_input,text/more-crlf
new file mode 100644
index 000000000..0ff5a53f1
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,text/more-crlf
@@ -0,0 +1,5 @@
+crlf
+crlf
+lf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,text/more-crlf-utf8bom b/tests/resources/crlf_data/posix/autocrlf_input,text/more-crlf-utf8bom
new file mode 100644
index 000000000..ea030d3c6
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,text/more-crlf-utf8bom
@@ -0,0 +1,5 @@
+crlf
+crlf
+lf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,text/more-lf b/tests/resources/crlf_data/posix/autocrlf_input,text/more-lf
new file mode 100644
index 000000000..04de00b35
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,text/more-lf
@@ -0,0 +1,5 @@
+lf
+lf
+crlf
+lf
+lf
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,text/more-lf-utf8bom b/tests/resources/crlf_data/posix/autocrlf_input,text/more-lf-utf8bom
new file mode 100644
index 000000000..dc88e3b91
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,text/more-lf-utf8bom
@@ -0,0 +1,5 @@
+lf
+lf
+crlf
+lf
+lf
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,text/zero-byte b/tests/resources/crlf_data/posix/autocrlf_input,text/zero-byte
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,text/zero-byte
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,text_auto,eol_crlf/all-crlf b/tests/resources/crlf_data/posix/autocrlf_input,text_auto,eol_crlf/all-crlf
new file mode 100644
index 000000000..a9a2e8913
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,text_auto,eol_crlf/all-crlf
@@ -0,0 +1,4 @@
+crlf
+crlf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,text_auto,eol_crlf/all-crlf-utf8bom b/tests/resources/crlf_data/posix/autocrlf_input,text_auto,eol_crlf/all-crlf-utf8bom
new file mode 100644
index 000000000..0aa76e474
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,text_auto,eol_crlf/all-crlf-utf8bom
@@ -0,0 +1,4 @@
+crlf
+crlf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,text_auto,eol_crlf/all-lf b/tests/resources/crlf_data/posix/autocrlf_input,text_auto,eol_crlf/all-lf
new file mode 100644
index 000000000..f557a02d8
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,text_auto,eol_crlf/all-lf
@@ -0,0 +1,5 @@
+lf
+lf
+lf
+lf
+lf
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,text_auto,eol_crlf/all-lf-utf8bom b/tests/resources/crlf_data/posix/autocrlf_input,text_auto,eol_crlf/all-lf-utf8bom
new file mode 100644
index 000000000..381cfe630
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,text_auto,eol_crlf/all-lf-utf8bom
@@ -0,0 +1,5 @@
+lf
+lf
+lf
+lf
+lf
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,text_auto,eol_crlf/binary-all-crlf b/tests/resources/crlf_data/posix/autocrlf_input,text_auto,eol_crlf/binary-all-crlf
new file mode 100644
index 000000000..85340755c
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,text_auto,eol_crlf/binary-all-crlf
@@ -0,0 +1,4 @@
+one
+two
+three
+four
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,text_auto,eol_crlf/binary-all-lf b/tests/resources/crlf_data/posix/autocrlf_input,text_auto,eol_crlf/binary-all-lf
new file mode 100644
index 000000000..85340755c
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,text_auto,eol_crlf/binary-all-lf
@@ -0,0 +1,4 @@
+one
+two
+three
+four
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,text_auto,eol_crlf/binary-mixed-lf-cr b/tests/resources/crlf_data/posix/autocrlf_input,text_auto,eol_crlf/binary-mixed-lf-cr
new file mode 100644
index 000000000..fd2abfa9d
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,text_auto,eol_crlf/binary-mixed-lf-cr
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,text_auto,eol_crlf/binary-mixed-lf-cr-crlf b/tests/resources/crlf_data/posix/autocrlf_input,text_auto,eol_crlf/binary-mixed-lf-cr-crlf
new file mode 100644
index 000000000..fd2abfa9d
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,text_auto,eol_crlf/binary-mixed-lf-cr-crlf
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,text_auto,eol_crlf/few-utf8-chars-crlf b/tests/resources/crlf_data/posix/autocrlf_input,text_auto,eol_crlf/few-utf8-chars-crlf
new file mode 100644
index 000000000..0e0528888
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,text_auto,eol_crlf/few-utf8-chars-crlf
@@ -0,0 +1,22 @@
+⚽The rest is ASCII01.
+The rest is ASCII02.
+The rest is ASCII03.
+The rest is ASCII04.
+The rest is ASCII05.
+The rest is ASCII06.
+The rest is ASCII07.
+The rest is ASCII08.
+The rest is ASCII09.
+The rest is ASCII10.
+The rest is ASCII11.
+The rest is ASCII12.
+The rest is ASCII13.
+The rest is ASCII14.
+The rest is ASCII15.
+The rest is ASCII16.
+The rest is ASCII17.
+The rest is ASCII18.
+The rest is ASCII19.
+The rest is ASCII20.
+The rest is ASCII21.
+The rest is ASCII22.
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,text_auto,eol_crlf/few-utf8-chars-lf b/tests/resources/crlf_data/posix/autocrlf_input,text_auto,eol_crlf/few-utf8-chars-lf
new file mode 100644
index 000000000..0e0528888
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,text_auto,eol_crlf/few-utf8-chars-lf
@@ -0,0 +1,22 @@
+⚽The rest is ASCII01.
+The rest is ASCII02.
+The rest is ASCII03.
+The rest is ASCII04.
+The rest is ASCII05.
+The rest is ASCII06.
+The rest is ASCII07.
+The rest is ASCII08.
+The rest is ASCII09.
+The rest is ASCII10.
+The rest is ASCII11.
+The rest is ASCII12.
+The rest is ASCII13.
+The rest is ASCII14.
+The rest is ASCII15.
+The rest is ASCII16.
+The rest is ASCII17.
+The rest is ASCII18.
+The rest is ASCII19.
+The rest is ASCII20.
+The rest is ASCII21.
+The rest is ASCII22.
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,text_auto,eol_crlf/many-utf8-chars-crlf b/tests/resources/crlf_data/posix/autocrlf_input,text_auto,eol_crlf/many-utf8-chars-crlf
new file mode 100644
index 000000000..cd574f5a2
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,text_auto,eol_crlf/many-utf8-chars-crlf
@@ -0,0 +1,4 @@
+Lets sing!
+♫♪♬♩
+Eat food
+🍅🍕
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,text_auto,eol_crlf/many-utf8-chars-lf b/tests/resources/crlf_data/posix/autocrlf_input,text_auto,eol_crlf/many-utf8-chars-lf
new file mode 100644
index 000000000..cd574f5a2
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,text_auto,eol_crlf/many-utf8-chars-lf
@@ -0,0 +1,4 @@
+Lets sing!
+♫♪♬♩
+Eat food
+🍅🍕
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,text_auto,eol_crlf/mixed-lf-cr b/tests/resources/crlf_data/posix/autocrlf_input,text_auto,eol_crlf/mixed-lf-cr
new file mode 100644
index 000000000..df8c0f680
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,text_auto,eol_crlf/mixed-lf-cr
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,text_auto,eol_crlf/mixed-lf-cr-crlf b/tests/resources/crlf_data/posix/autocrlf_input,text_auto,eol_crlf/mixed-lf-cr-crlf
new file mode 100644
index 000000000..df8c0f680
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,text_auto,eol_crlf/mixed-lf-cr-crlf
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,text_auto,eol_crlf/more-crlf b/tests/resources/crlf_data/posix/autocrlf_input,text_auto,eol_crlf/more-crlf
new file mode 100644
index 000000000..e682c3077
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,text_auto,eol_crlf/more-crlf
@@ -0,0 +1,5 @@
+crlf
+crlf
+lf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,text_auto,eol_crlf/more-crlf-utf8bom b/tests/resources/crlf_data/posix/autocrlf_input,text_auto,eol_crlf/more-crlf-utf8bom
new file mode 100644
index 000000000..2e1220cbb
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,text_auto,eol_crlf/more-crlf-utf8bom
@@ -0,0 +1,5 @@
+crlf
+crlf
+lf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,text_auto,eol_crlf/more-lf b/tests/resources/crlf_data/posix/autocrlf_input,text_auto,eol_crlf/more-lf
new file mode 100644
index 000000000..6da5b0c7e
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,text_auto,eol_crlf/more-lf
@@ -0,0 +1,5 @@
+lf
+lf
+crlf
+lf
+lf
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,text_auto,eol_crlf/more-lf-utf8bom b/tests/resources/crlf_data/posix/autocrlf_input,text_auto,eol_crlf/more-lf-utf8bom
new file mode 100644
index 000000000..3fa59c809
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,text_auto,eol_crlf/more-lf-utf8bom
@@ -0,0 +1,5 @@
+lf
+lf
+crlf
+lf
+lf
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,text_auto,eol_crlf/zero-byte b/tests/resources/crlf_data/posix/autocrlf_input,text_auto,eol_crlf/zero-byte
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,text_auto,eol_crlf/zero-byte
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,text_auto,eol_lf/all-crlf b/tests/resources/crlf_data/posix/autocrlf_input,text_auto,eol_lf/all-crlf
new file mode 100644
index 000000000..a9a2e8913
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,text_auto,eol_lf/all-crlf
@@ -0,0 +1,4 @@
+crlf
+crlf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,text_auto,eol_lf/all-crlf-utf8bom b/tests/resources/crlf_data/posix/autocrlf_input,text_auto,eol_lf/all-crlf-utf8bom
new file mode 100644
index 000000000..0aa76e474
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,text_auto,eol_lf/all-crlf-utf8bom
@@ -0,0 +1,4 @@
+crlf
+crlf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,text_auto,eol_lf/all-lf b/tests/resources/crlf_data/posix/autocrlf_input,text_auto,eol_lf/all-lf
new file mode 100644
index 000000000..799770d1c
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,text_auto,eol_lf/all-lf
@@ -0,0 +1,5 @@
+lf
+lf
+lf
+lf
+lf
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,text_auto,eol_lf/all-lf-utf8bom b/tests/resources/crlf_data/posix/autocrlf_input,text_auto,eol_lf/all-lf-utf8bom
new file mode 100644
index 000000000..7cce67e58
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,text_auto,eol_lf/all-lf-utf8bom
@@ -0,0 +1,5 @@
+lf
+lf
+lf
+lf
+lf
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,text_auto,eol_lf/binary-all-crlf b/tests/resources/crlf_data/posix/autocrlf_input,text_auto,eol_lf/binary-all-crlf
new file mode 100644
index 000000000..85340755c
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,text_auto,eol_lf/binary-all-crlf
@@ -0,0 +1,4 @@
+one
+two
+three
+four
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,text_auto,eol_lf/binary-all-lf b/tests/resources/crlf_data/posix/autocrlf_input,text_auto,eol_lf/binary-all-lf
new file mode 100644
index 000000000..af6fcf6da
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,text_auto,eol_lf/binary-all-lf
@@ -0,0 +1,4 @@
+one
+two
+three
+four
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,text_auto,eol_lf/binary-mixed-lf-cr b/tests/resources/crlf_data/posix/autocrlf_input,text_auto,eol_lf/binary-mixed-lf-cr
new file mode 100644
index 000000000..203555c56
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,text_auto,eol_lf/binary-mixed-lf-cr
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,text_auto,eol_lf/binary-mixed-lf-cr-crlf b/tests/resources/crlf_data/posix/autocrlf_input,text_auto,eol_lf/binary-mixed-lf-cr-crlf
new file mode 100644
index 000000000..aaf083a9c
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,text_auto,eol_lf/binary-mixed-lf-cr-crlf
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,text_auto,eol_lf/few-utf8-chars-crlf b/tests/resources/crlf_data/posix/autocrlf_input,text_auto,eol_lf/few-utf8-chars-crlf
new file mode 100644
index 000000000..0e0528888
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,text_auto,eol_lf/few-utf8-chars-crlf
@@ -0,0 +1,22 @@
+⚽The rest is ASCII01.
+The rest is ASCII02.
+The rest is ASCII03.
+The rest is ASCII04.
+The rest is ASCII05.
+The rest is ASCII06.
+The rest is ASCII07.
+The rest is ASCII08.
+The rest is ASCII09.
+The rest is ASCII10.
+The rest is ASCII11.
+The rest is ASCII12.
+The rest is ASCII13.
+The rest is ASCII14.
+The rest is ASCII15.
+The rest is ASCII16.
+The rest is ASCII17.
+The rest is ASCII18.
+The rest is ASCII19.
+The rest is ASCII20.
+The rest is ASCII21.
+The rest is ASCII22.
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,text_auto,eol_lf/few-utf8-chars-lf b/tests/resources/crlf_data/posix/autocrlf_input,text_auto,eol_lf/few-utf8-chars-lf
new file mode 100644
index 000000000..f4d25b796
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,text_auto,eol_lf/few-utf8-chars-lf
@@ -0,0 +1,22 @@
+⚽The rest is ASCII01.
+The rest is ASCII02.
+The rest is ASCII03.
+The rest is ASCII04.
+The rest is ASCII05.
+The rest is ASCII06.
+The rest is ASCII07.
+The rest is ASCII08.
+The rest is ASCII09.
+The rest is ASCII10.
+The rest is ASCII11.
+The rest is ASCII12.
+The rest is ASCII13.
+The rest is ASCII14.
+The rest is ASCII15.
+The rest is ASCII16.
+The rest is ASCII17.
+The rest is ASCII18.
+The rest is ASCII19.
+The rest is ASCII20.
+The rest is ASCII21.
+The rest is ASCII22.
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,text_auto,eol_lf/many-utf8-chars-crlf b/tests/resources/crlf_data/posix/autocrlf_input,text_auto,eol_lf/many-utf8-chars-crlf
new file mode 100644
index 000000000..cd574f5a2
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,text_auto,eol_lf/many-utf8-chars-crlf
@@ -0,0 +1,4 @@
+Lets sing!
+♫♪♬♩
+Eat food
+🍅🍕
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,text_auto,eol_lf/many-utf8-chars-lf b/tests/resources/crlf_data/posix/autocrlf_input,text_auto,eol_lf/many-utf8-chars-lf
new file mode 100644
index 000000000..9a6c3533f
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,text_auto,eol_lf/many-utf8-chars-lf
@@ -0,0 +1,4 @@
+Lets sing!
+♫♪♬♩
+Eat food
+🍅🍕
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,text_auto,eol_lf/mixed-lf-cr b/tests/resources/crlf_data/posix/autocrlf_input,text_auto,eol_lf/mixed-lf-cr
new file mode 100644
index 000000000..d11e7ef63
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,text_auto,eol_lf/mixed-lf-cr
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,text_auto,eol_lf/mixed-lf-cr-crlf b/tests/resources/crlf_data/posix/autocrlf_input,text_auto,eol_lf/mixed-lf-cr-crlf
new file mode 100644
index 000000000..417786fc3
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,text_auto,eol_lf/mixed-lf-cr-crlf
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,text_auto,eol_lf/more-crlf b/tests/resources/crlf_data/posix/autocrlf_input,text_auto,eol_lf/more-crlf
new file mode 100644
index 000000000..0ff5a53f1
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,text_auto,eol_lf/more-crlf
@@ -0,0 +1,5 @@
+crlf
+crlf
+lf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,text_auto,eol_lf/more-crlf-utf8bom b/tests/resources/crlf_data/posix/autocrlf_input,text_auto,eol_lf/more-crlf-utf8bom
new file mode 100644
index 000000000..ea030d3c6
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,text_auto,eol_lf/more-crlf-utf8bom
@@ -0,0 +1,5 @@
+crlf
+crlf
+lf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,text_auto,eol_lf/more-lf b/tests/resources/crlf_data/posix/autocrlf_input,text_auto,eol_lf/more-lf
new file mode 100644
index 000000000..04de00b35
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,text_auto,eol_lf/more-lf
@@ -0,0 +1,5 @@
+lf
+lf
+crlf
+lf
+lf
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,text_auto,eol_lf/more-lf-utf8bom b/tests/resources/crlf_data/posix/autocrlf_input,text_auto,eol_lf/more-lf-utf8bom
new file mode 100644
index 000000000..dc88e3b91
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,text_auto,eol_lf/more-lf-utf8bom
@@ -0,0 +1,5 @@
+lf
+lf
+crlf
+lf
+lf
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,text_auto,eol_lf/zero-byte b/tests/resources/crlf_data/posix/autocrlf_input,text_auto,eol_lf/zero-byte
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,text_auto,eol_lf/zero-byte
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,text_auto/all-crlf b/tests/resources/crlf_data/posix/autocrlf_input,text_auto/all-crlf
new file mode 100644
index 000000000..a9a2e8913
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,text_auto/all-crlf
@@ -0,0 +1,4 @@
+crlf
+crlf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,text_auto/all-crlf-utf8bom b/tests/resources/crlf_data/posix/autocrlf_input,text_auto/all-crlf-utf8bom
new file mode 100644
index 000000000..0aa76e474
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,text_auto/all-crlf-utf8bom
@@ -0,0 +1,4 @@
+crlf
+crlf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,text_auto/all-lf b/tests/resources/crlf_data/posix/autocrlf_input,text_auto/all-lf
new file mode 100644
index 000000000..799770d1c
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,text_auto/all-lf
@@ -0,0 +1,5 @@
+lf
+lf
+lf
+lf
+lf
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,text_auto/all-lf-utf8bom b/tests/resources/crlf_data/posix/autocrlf_input,text_auto/all-lf-utf8bom
new file mode 100644
index 000000000..7cce67e58
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,text_auto/all-lf-utf8bom
@@ -0,0 +1,5 @@
+lf
+lf
+lf
+lf
+lf
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,text_auto/binary-all-crlf b/tests/resources/crlf_data/posix/autocrlf_input,text_auto/binary-all-crlf
new file mode 100644
index 000000000..85340755c
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,text_auto/binary-all-crlf
@@ -0,0 +1,4 @@
+one
+two
+three
+four
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,text_auto/binary-all-lf b/tests/resources/crlf_data/posix/autocrlf_input,text_auto/binary-all-lf
new file mode 100644
index 000000000..af6fcf6da
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,text_auto/binary-all-lf
@@ -0,0 +1,4 @@
+one
+two
+three
+four
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,text_auto/binary-mixed-lf-cr b/tests/resources/crlf_data/posix/autocrlf_input,text_auto/binary-mixed-lf-cr
new file mode 100644
index 000000000..203555c56
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,text_auto/binary-mixed-lf-cr
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,text_auto/binary-mixed-lf-cr-crlf b/tests/resources/crlf_data/posix/autocrlf_input,text_auto/binary-mixed-lf-cr-crlf
new file mode 100644
index 000000000..aaf083a9c
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,text_auto/binary-mixed-lf-cr-crlf
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,text_auto/few-utf8-chars-crlf b/tests/resources/crlf_data/posix/autocrlf_input,text_auto/few-utf8-chars-crlf
new file mode 100644
index 000000000..0e0528888
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,text_auto/few-utf8-chars-crlf
@@ -0,0 +1,22 @@
+⚽The rest is ASCII01.
+The rest is ASCII02.
+The rest is ASCII03.
+The rest is ASCII04.
+The rest is ASCII05.
+The rest is ASCII06.
+The rest is ASCII07.
+The rest is ASCII08.
+The rest is ASCII09.
+The rest is ASCII10.
+The rest is ASCII11.
+The rest is ASCII12.
+The rest is ASCII13.
+The rest is ASCII14.
+The rest is ASCII15.
+The rest is ASCII16.
+The rest is ASCII17.
+The rest is ASCII18.
+The rest is ASCII19.
+The rest is ASCII20.
+The rest is ASCII21.
+The rest is ASCII22.
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,text_auto/few-utf8-chars-lf b/tests/resources/crlf_data/posix/autocrlf_input,text_auto/few-utf8-chars-lf
new file mode 100644
index 000000000..f4d25b796
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,text_auto/few-utf8-chars-lf
@@ -0,0 +1,22 @@
+⚽The rest is ASCII01.
+The rest is ASCII02.
+The rest is ASCII03.
+The rest is ASCII04.
+The rest is ASCII05.
+The rest is ASCII06.
+The rest is ASCII07.
+The rest is ASCII08.
+The rest is ASCII09.
+The rest is ASCII10.
+The rest is ASCII11.
+The rest is ASCII12.
+The rest is ASCII13.
+The rest is ASCII14.
+The rest is ASCII15.
+The rest is ASCII16.
+The rest is ASCII17.
+The rest is ASCII18.
+The rest is ASCII19.
+The rest is ASCII20.
+The rest is ASCII21.
+The rest is ASCII22.
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,text_auto/many-utf8-chars-crlf b/tests/resources/crlf_data/posix/autocrlf_input,text_auto/many-utf8-chars-crlf
new file mode 100644
index 000000000..cd574f5a2
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,text_auto/many-utf8-chars-crlf
@@ -0,0 +1,4 @@
+Lets sing!
+♫♪♬♩
+Eat food
+🍅🍕
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,text_auto/many-utf8-chars-lf b/tests/resources/crlf_data/posix/autocrlf_input,text_auto/many-utf8-chars-lf
new file mode 100644
index 000000000..9a6c3533f
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,text_auto/many-utf8-chars-lf
@@ -0,0 +1,4 @@
+Lets sing!
+♫♪♬♩
+Eat food
+🍅🍕
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,text_auto/mixed-lf-cr b/tests/resources/crlf_data/posix/autocrlf_input,text_auto/mixed-lf-cr
new file mode 100644
index 000000000..d11e7ef63
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,text_auto/mixed-lf-cr
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,text_auto/mixed-lf-cr-crlf b/tests/resources/crlf_data/posix/autocrlf_input,text_auto/mixed-lf-cr-crlf
new file mode 100644
index 000000000..417786fc3
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,text_auto/mixed-lf-cr-crlf
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,text_auto/more-crlf b/tests/resources/crlf_data/posix/autocrlf_input,text_auto/more-crlf
new file mode 100644
index 000000000..0ff5a53f1
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,text_auto/more-crlf
@@ -0,0 +1,5 @@
+crlf
+crlf
+lf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,text_auto/more-crlf-utf8bom b/tests/resources/crlf_data/posix/autocrlf_input,text_auto/more-crlf-utf8bom
new file mode 100644
index 000000000..ea030d3c6
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,text_auto/more-crlf-utf8bom
@@ -0,0 +1,5 @@
+crlf
+crlf
+lf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,text_auto/more-lf b/tests/resources/crlf_data/posix/autocrlf_input,text_auto/more-lf
new file mode 100644
index 000000000..04de00b35
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,text_auto/more-lf
@@ -0,0 +1,5 @@
+lf
+lf
+crlf
+lf
+lf
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,text_auto/more-lf-utf8bom b/tests/resources/crlf_data/posix/autocrlf_input,text_auto/more-lf-utf8bom
new file mode 100644
index 000000000..dc88e3b91
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,text_auto/more-lf-utf8bom
@@ -0,0 +1,5 @@
+lf
+lf
+crlf
+lf
+lf
diff --git a/tests/resources/crlf_data/posix/autocrlf_input,text_auto/zero-byte b/tests/resources/crlf_data/posix/autocrlf_input,text_auto/zero-byte
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input,text_auto/zero-byte
diff --git a/tests/resources/crlf_data/posix/autocrlf_input/all-crlf b/tests/resources/crlf_data/posix/autocrlf_input/all-crlf
new file mode 100644
index 000000000..a9a2e8913
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input/all-crlf
@@ -0,0 +1,4 @@
+crlf
+crlf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/posix/autocrlf_input/all-crlf-utf8bom b/tests/resources/crlf_data/posix/autocrlf_input/all-crlf-utf8bom
new file mode 100644
index 000000000..0aa76e474
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input/all-crlf-utf8bom
@@ -0,0 +1,4 @@
+crlf
+crlf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/posix/autocrlf_input/all-lf b/tests/resources/crlf_data/posix/autocrlf_input/all-lf
new file mode 100644
index 000000000..799770d1c
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input/all-lf
@@ -0,0 +1,5 @@
+lf
+lf
+lf
+lf
+lf
diff --git a/tests/resources/crlf_data/posix/autocrlf_input/all-lf-utf8bom b/tests/resources/crlf_data/posix/autocrlf_input/all-lf-utf8bom
new file mode 100644
index 000000000..7cce67e58
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input/all-lf-utf8bom
@@ -0,0 +1,5 @@
+lf
+lf
+lf
+lf
+lf
diff --git a/tests/resources/crlf_data/posix/autocrlf_input/binary-all-crlf b/tests/resources/crlf_data/posix/autocrlf_input/binary-all-crlf
new file mode 100644
index 000000000..85340755c
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input/binary-all-crlf
@@ -0,0 +1,4 @@
+one
+two
+three
+four
diff --git a/tests/resources/crlf_data/posix/autocrlf_input/binary-all-lf b/tests/resources/crlf_data/posix/autocrlf_input/binary-all-lf
new file mode 100644
index 000000000..af6fcf6da
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input/binary-all-lf
@@ -0,0 +1,4 @@
+one
+two
+three
+four
diff --git a/tests/resources/crlf_data/posix/autocrlf_input/binary-mixed-lf-cr b/tests/resources/crlf_data/posix/autocrlf_input/binary-mixed-lf-cr
new file mode 100644
index 000000000..203555c56
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input/binary-mixed-lf-cr
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/posix/autocrlf_input/binary-mixed-lf-cr-crlf b/tests/resources/crlf_data/posix/autocrlf_input/binary-mixed-lf-cr-crlf
new file mode 100644
index 000000000..aaf083a9c
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input/binary-mixed-lf-cr-crlf
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/posix/autocrlf_input/few-utf8-chars-crlf b/tests/resources/crlf_data/posix/autocrlf_input/few-utf8-chars-crlf
new file mode 100644
index 000000000..0e0528888
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input/few-utf8-chars-crlf
@@ -0,0 +1,22 @@
+⚽The rest is ASCII01.
+The rest is ASCII02.
+The rest is ASCII03.
+The rest is ASCII04.
+The rest is ASCII05.
+The rest is ASCII06.
+The rest is ASCII07.
+The rest is ASCII08.
+The rest is ASCII09.
+The rest is ASCII10.
+The rest is ASCII11.
+The rest is ASCII12.
+The rest is ASCII13.
+The rest is ASCII14.
+The rest is ASCII15.
+The rest is ASCII16.
+The rest is ASCII17.
+The rest is ASCII18.
+The rest is ASCII19.
+The rest is ASCII20.
+The rest is ASCII21.
+The rest is ASCII22.
diff --git a/tests/resources/crlf_data/posix/autocrlf_input/few-utf8-chars-lf b/tests/resources/crlf_data/posix/autocrlf_input/few-utf8-chars-lf
new file mode 100644
index 000000000..f4d25b796
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input/few-utf8-chars-lf
@@ -0,0 +1,22 @@
+⚽The rest is ASCII01.
+The rest is ASCII02.
+The rest is ASCII03.
+The rest is ASCII04.
+The rest is ASCII05.
+The rest is ASCII06.
+The rest is ASCII07.
+The rest is ASCII08.
+The rest is ASCII09.
+The rest is ASCII10.
+The rest is ASCII11.
+The rest is ASCII12.
+The rest is ASCII13.
+The rest is ASCII14.
+The rest is ASCII15.
+The rest is ASCII16.
+The rest is ASCII17.
+The rest is ASCII18.
+The rest is ASCII19.
+The rest is ASCII20.
+The rest is ASCII21.
+The rest is ASCII22.
diff --git a/tests/resources/crlf_data/posix/autocrlf_input/many-utf8-chars-crlf b/tests/resources/crlf_data/posix/autocrlf_input/many-utf8-chars-crlf
new file mode 100644
index 000000000..cd574f5a2
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input/many-utf8-chars-crlf
@@ -0,0 +1,4 @@
+Lets sing!
+♫♪♬♩
+Eat food
+🍅🍕
diff --git a/tests/resources/crlf_data/posix/autocrlf_input/many-utf8-chars-lf b/tests/resources/crlf_data/posix/autocrlf_input/many-utf8-chars-lf
new file mode 100644
index 000000000..9a6c3533f
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input/many-utf8-chars-lf
@@ -0,0 +1,4 @@
+Lets sing!
+♫♪♬♩
+Eat food
+🍅🍕
diff --git a/tests/resources/crlf_data/posix/autocrlf_input/mixed-lf-cr b/tests/resources/crlf_data/posix/autocrlf_input/mixed-lf-cr
new file mode 100644
index 000000000..d11e7ef63
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input/mixed-lf-cr
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/posix/autocrlf_input/mixed-lf-cr-crlf b/tests/resources/crlf_data/posix/autocrlf_input/mixed-lf-cr-crlf
new file mode 100644
index 000000000..417786fc3
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input/mixed-lf-cr-crlf
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/posix/autocrlf_input/more-crlf b/tests/resources/crlf_data/posix/autocrlf_input/more-crlf
new file mode 100644
index 000000000..0ff5a53f1
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input/more-crlf
@@ -0,0 +1,5 @@
+crlf
+crlf
+lf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/posix/autocrlf_input/more-crlf-utf8bom b/tests/resources/crlf_data/posix/autocrlf_input/more-crlf-utf8bom
new file mode 100644
index 000000000..ea030d3c6
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input/more-crlf-utf8bom
@@ -0,0 +1,5 @@
+crlf
+crlf
+lf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/posix/autocrlf_input/more-lf b/tests/resources/crlf_data/posix/autocrlf_input/more-lf
new file mode 100644
index 000000000..04de00b35
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input/more-lf
@@ -0,0 +1,5 @@
+lf
+lf
+crlf
+lf
+lf
diff --git a/tests/resources/crlf_data/posix/autocrlf_input/more-lf-utf8bom b/tests/resources/crlf_data/posix/autocrlf_input/more-lf-utf8bom
new file mode 100644
index 000000000..dc88e3b91
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input/more-lf-utf8bom
@@ -0,0 +1,5 @@
+lf
+lf
+crlf
+lf
+lf
diff --git a/tests/resources/crlf_data/posix/autocrlf_input/zero-byte b/tests/resources/crlf_data/posix/autocrlf_input/zero-byte
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_input/zero-byte
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,-crlf/all-crlf b/tests/resources/crlf_data/posix/autocrlf_true,-crlf/all-crlf
new file mode 100644
index 000000000..a9a2e8913
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,-crlf/all-crlf
@@ -0,0 +1,4 @@
+crlf
+crlf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,-crlf/all-crlf-utf8bom b/tests/resources/crlf_data/posix/autocrlf_true,-crlf/all-crlf-utf8bom
new file mode 100644
index 000000000..0aa76e474
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,-crlf/all-crlf-utf8bom
@@ -0,0 +1,4 @@
+crlf
+crlf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,-crlf/all-lf b/tests/resources/crlf_data/posix/autocrlf_true,-crlf/all-lf
new file mode 100644
index 000000000..799770d1c
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,-crlf/all-lf
@@ -0,0 +1,5 @@
+lf
+lf
+lf
+lf
+lf
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,-crlf/all-lf-utf8bom b/tests/resources/crlf_data/posix/autocrlf_true,-crlf/all-lf-utf8bom
new file mode 100644
index 000000000..7cce67e58
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,-crlf/all-lf-utf8bom
@@ -0,0 +1,5 @@
+lf
+lf
+lf
+lf
+lf
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,-crlf/binary-all-crlf b/tests/resources/crlf_data/posix/autocrlf_true,-crlf/binary-all-crlf
new file mode 100644
index 000000000..85340755c
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,-crlf/binary-all-crlf
@@ -0,0 +1,4 @@
+one
+two
+three
+four
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,-crlf/binary-all-lf b/tests/resources/crlf_data/posix/autocrlf_true,-crlf/binary-all-lf
new file mode 100644
index 000000000..af6fcf6da
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,-crlf/binary-all-lf
@@ -0,0 +1,4 @@
+one
+two
+three
+four
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,-crlf/binary-mixed-lf-cr b/tests/resources/crlf_data/posix/autocrlf_true,-crlf/binary-mixed-lf-cr
new file mode 100644
index 000000000..203555c56
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,-crlf/binary-mixed-lf-cr
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,-crlf/binary-mixed-lf-cr-crlf b/tests/resources/crlf_data/posix/autocrlf_true,-crlf/binary-mixed-lf-cr-crlf
new file mode 100644
index 000000000..aaf083a9c
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,-crlf/binary-mixed-lf-cr-crlf
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,-crlf/few-utf8-chars-crlf b/tests/resources/crlf_data/posix/autocrlf_true,-crlf/few-utf8-chars-crlf
new file mode 100644
index 000000000..0e0528888
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,-crlf/few-utf8-chars-crlf
@@ -0,0 +1,22 @@
+⚽The rest is ASCII01.
+The rest is ASCII02.
+The rest is ASCII03.
+The rest is ASCII04.
+The rest is ASCII05.
+The rest is ASCII06.
+The rest is ASCII07.
+The rest is ASCII08.
+The rest is ASCII09.
+The rest is ASCII10.
+The rest is ASCII11.
+The rest is ASCII12.
+The rest is ASCII13.
+The rest is ASCII14.
+The rest is ASCII15.
+The rest is ASCII16.
+The rest is ASCII17.
+The rest is ASCII18.
+The rest is ASCII19.
+The rest is ASCII20.
+The rest is ASCII21.
+The rest is ASCII22.
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,-crlf/few-utf8-chars-lf b/tests/resources/crlf_data/posix/autocrlf_true,-crlf/few-utf8-chars-lf
new file mode 100644
index 000000000..f4d25b796
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,-crlf/few-utf8-chars-lf
@@ -0,0 +1,22 @@
+⚽The rest is ASCII01.
+The rest is ASCII02.
+The rest is ASCII03.
+The rest is ASCII04.
+The rest is ASCII05.
+The rest is ASCII06.
+The rest is ASCII07.
+The rest is ASCII08.
+The rest is ASCII09.
+The rest is ASCII10.
+The rest is ASCII11.
+The rest is ASCII12.
+The rest is ASCII13.
+The rest is ASCII14.
+The rest is ASCII15.
+The rest is ASCII16.
+The rest is ASCII17.
+The rest is ASCII18.
+The rest is ASCII19.
+The rest is ASCII20.
+The rest is ASCII21.
+The rest is ASCII22.
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,-crlf/many-utf8-chars-crlf b/tests/resources/crlf_data/posix/autocrlf_true,-crlf/many-utf8-chars-crlf
new file mode 100644
index 000000000..cd574f5a2
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,-crlf/many-utf8-chars-crlf
@@ -0,0 +1,4 @@
+Lets sing!
+♫♪♬♩
+Eat food
+🍅🍕
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,-crlf/many-utf8-chars-lf b/tests/resources/crlf_data/posix/autocrlf_true,-crlf/many-utf8-chars-lf
new file mode 100644
index 000000000..9a6c3533f
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,-crlf/many-utf8-chars-lf
@@ -0,0 +1,4 @@
+Lets sing!
+♫♪♬♩
+Eat food
+🍅🍕
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,-crlf/mixed-lf-cr b/tests/resources/crlf_data/posix/autocrlf_true,-crlf/mixed-lf-cr
new file mode 100644
index 000000000..d11e7ef63
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,-crlf/mixed-lf-cr
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,-crlf/mixed-lf-cr-crlf b/tests/resources/crlf_data/posix/autocrlf_true,-crlf/mixed-lf-cr-crlf
new file mode 100644
index 000000000..417786fc3
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,-crlf/mixed-lf-cr-crlf
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,-crlf/more-crlf b/tests/resources/crlf_data/posix/autocrlf_true,-crlf/more-crlf
new file mode 100644
index 000000000..0ff5a53f1
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,-crlf/more-crlf
@@ -0,0 +1,5 @@
+crlf
+crlf
+lf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,-crlf/more-crlf-utf8bom b/tests/resources/crlf_data/posix/autocrlf_true,-crlf/more-crlf-utf8bom
new file mode 100644
index 000000000..ea030d3c6
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,-crlf/more-crlf-utf8bom
@@ -0,0 +1,5 @@
+crlf
+crlf
+lf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,-crlf/more-lf b/tests/resources/crlf_data/posix/autocrlf_true,-crlf/more-lf
new file mode 100644
index 000000000..04de00b35
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,-crlf/more-lf
@@ -0,0 +1,5 @@
+lf
+lf
+crlf
+lf
+lf
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,-crlf/more-lf-utf8bom b/tests/resources/crlf_data/posix/autocrlf_true,-crlf/more-lf-utf8bom
new file mode 100644
index 000000000..dc88e3b91
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,-crlf/more-lf-utf8bom
@@ -0,0 +1,5 @@
+lf
+lf
+crlf
+lf
+lf
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,-crlf/zero-byte b/tests/resources/crlf_data/posix/autocrlf_true,-crlf/zero-byte
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,-crlf/zero-byte
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,-text/all-crlf b/tests/resources/crlf_data/posix/autocrlf_true,-text/all-crlf
new file mode 100644
index 000000000..a9a2e8913
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,-text/all-crlf
@@ -0,0 +1,4 @@
+crlf
+crlf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,-text/all-crlf-utf8bom b/tests/resources/crlf_data/posix/autocrlf_true,-text/all-crlf-utf8bom
new file mode 100644
index 000000000..0aa76e474
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,-text/all-crlf-utf8bom
@@ -0,0 +1,4 @@
+crlf
+crlf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,-text/all-lf b/tests/resources/crlf_data/posix/autocrlf_true,-text/all-lf
new file mode 100644
index 000000000..799770d1c
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,-text/all-lf
@@ -0,0 +1,5 @@
+lf
+lf
+lf
+lf
+lf
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,-text/all-lf-utf8bom b/tests/resources/crlf_data/posix/autocrlf_true,-text/all-lf-utf8bom
new file mode 100644
index 000000000..7cce67e58
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,-text/all-lf-utf8bom
@@ -0,0 +1,5 @@
+lf
+lf
+lf
+lf
+lf
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,-text/binary-all-crlf b/tests/resources/crlf_data/posix/autocrlf_true,-text/binary-all-crlf
new file mode 100644
index 000000000..85340755c
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,-text/binary-all-crlf
@@ -0,0 +1,4 @@
+one
+two
+three
+four
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,-text/binary-all-lf b/tests/resources/crlf_data/posix/autocrlf_true,-text/binary-all-lf
new file mode 100644
index 000000000..af6fcf6da
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,-text/binary-all-lf
@@ -0,0 +1,4 @@
+one
+two
+three
+four
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,-text/binary-mixed-lf-cr b/tests/resources/crlf_data/posix/autocrlf_true,-text/binary-mixed-lf-cr
new file mode 100644
index 000000000..203555c56
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,-text/binary-mixed-lf-cr
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,-text/binary-mixed-lf-cr-crlf b/tests/resources/crlf_data/posix/autocrlf_true,-text/binary-mixed-lf-cr-crlf
new file mode 100644
index 000000000..aaf083a9c
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,-text/binary-mixed-lf-cr-crlf
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,-text/few-utf8-chars-crlf b/tests/resources/crlf_data/posix/autocrlf_true,-text/few-utf8-chars-crlf
new file mode 100644
index 000000000..0e0528888
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,-text/few-utf8-chars-crlf
@@ -0,0 +1,22 @@
+⚽The rest is ASCII01.
+The rest is ASCII02.
+The rest is ASCII03.
+The rest is ASCII04.
+The rest is ASCII05.
+The rest is ASCII06.
+The rest is ASCII07.
+The rest is ASCII08.
+The rest is ASCII09.
+The rest is ASCII10.
+The rest is ASCII11.
+The rest is ASCII12.
+The rest is ASCII13.
+The rest is ASCII14.
+The rest is ASCII15.
+The rest is ASCII16.
+The rest is ASCII17.
+The rest is ASCII18.
+The rest is ASCII19.
+The rest is ASCII20.
+The rest is ASCII21.
+The rest is ASCII22.
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,-text/few-utf8-chars-lf b/tests/resources/crlf_data/posix/autocrlf_true,-text/few-utf8-chars-lf
new file mode 100644
index 000000000..f4d25b796
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,-text/few-utf8-chars-lf
@@ -0,0 +1,22 @@
+⚽The rest is ASCII01.
+The rest is ASCII02.
+The rest is ASCII03.
+The rest is ASCII04.
+The rest is ASCII05.
+The rest is ASCII06.
+The rest is ASCII07.
+The rest is ASCII08.
+The rest is ASCII09.
+The rest is ASCII10.
+The rest is ASCII11.
+The rest is ASCII12.
+The rest is ASCII13.
+The rest is ASCII14.
+The rest is ASCII15.
+The rest is ASCII16.
+The rest is ASCII17.
+The rest is ASCII18.
+The rest is ASCII19.
+The rest is ASCII20.
+The rest is ASCII21.
+The rest is ASCII22.
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,-text/many-utf8-chars-crlf b/tests/resources/crlf_data/posix/autocrlf_true,-text/many-utf8-chars-crlf
new file mode 100644
index 000000000..cd574f5a2
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,-text/many-utf8-chars-crlf
@@ -0,0 +1,4 @@
+Lets sing!
+♫♪♬♩
+Eat food
+🍅🍕
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,-text/many-utf8-chars-lf b/tests/resources/crlf_data/posix/autocrlf_true,-text/many-utf8-chars-lf
new file mode 100644
index 000000000..9a6c3533f
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,-text/many-utf8-chars-lf
@@ -0,0 +1,4 @@
+Lets sing!
+♫♪♬♩
+Eat food
+🍅🍕
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,-text/mixed-lf-cr b/tests/resources/crlf_data/posix/autocrlf_true,-text/mixed-lf-cr
new file mode 100644
index 000000000..d11e7ef63
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,-text/mixed-lf-cr
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,-text/mixed-lf-cr-crlf b/tests/resources/crlf_data/posix/autocrlf_true,-text/mixed-lf-cr-crlf
new file mode 100644
index 000000000..417786fc3
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,-text/mixed-lf-cr-crlf
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,-text/more-crlf b/tests/resources/crlf_data/posix/autocrlf_true,-text/more-crlf
new file mode 100644
index 000000000..0ff5a53f1
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,-text/more-crlf
@@ -0,0 +1,5 @@
+crlf
+crlf
+lf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,-text/more-crlf-utf8bom b/tests/resources/crlf_data/posix/autocrlf_true,-text/more-crlf-utf8bom
new file mode 100644
index 000000000..ea030d3c6
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,-text/more-crlf-utf8bom
@@ -0,0 +1,5 @@
+crlf
+crlf
+lf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,-text/more-lf b/tests/resources/crlf_data/posix/autocrlf_true,-text/more-lf
new file mode 100644
index 000000000..04de00b35
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,-text/more-lf
@@ -0,0 +1,5 @@
+lf
+lf
+crlf
+lf
+lf
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,-text/more-lf-utf8bom b/tests/resources/crlf_data/posix/autocrlf_true,-text/more-lf-utf8bom
new file mode 100644
index 000000000..dc88e3b91
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,-text/more-lf-utf8bom
@@ -0,0 +1,5 @@
+lf
+lf
+crlf
+lf
+lf
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,-text/zero-byte b/tests/resources/crlf_data/posix/autocrlf_true,-text/zero-byte
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,-text/zero-byte
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,crlf/all-crlf b/tests/resources/crlf_data/posix/autocrlf_true,crlf/all-crlf
new file mode 100644
index 000000000..a9a2e8913
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,crlf/all-crlf
@@ -0,0 +1,4 @@
+crlf
+crlf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,crlf/all-crlf-utf8bom b/tests/resources/crlf_data/posix/autocrlf_true,crlf/all-crlf-utf8bom
new file mode 100644
index 000000000..0aa76e474
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,crlf/all-crlf-utf8bom
@@ -0,0 +1,4 @@
+crlf
+crlf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,crlf/all-lf b/tests/resources/crlf_data/posix/autocrlf_true,crlf/all-lf
new file mode 100644
index 000000000..f557a02d8
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,crlf/all-lf
@@ -0,0 +1,5 @@
+lf
+lf
+lf
+lf
+lf
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,crlf/all-lf-utf8bom b/tests/resources/crlf_data/posix/autocrlf_true,crlf/all-lf-utf8bom
new file mode 100644
index 000000000..381cfe630
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,crlf/all-lf-utf8bom
@@ -0,0 +1,5 @@
+lf
+lf
+lf
+lf
+lf
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,crlf/binary-all-crlf b/tests/resources/crlf_data/posix/autocrlf_true,crlf/binary-all-crlf
new file mode 100644
index 000000000..85340755c
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,crlf/binary-all-crlf
@@ -0,0 +1,4 @@
+one
+two
+three
+four
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,crlf/binary-all-lf b/tests/resources/crlf_data/posix/autocrlf_true,crlf/binary-all-lf
new file mode 100644
index 000000000..85340755c
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,crlf/binary-all-lf
@@ -0,0 +1,4 @@
+one
+two
+three
+four
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,crlf/binary-mixed-lf-cr b/tests/resources/crlf_data/posix/autocrlf_true,crlf/binary-mixed-lf-cr
new file mode 100644
index 000000000..fd2abfa9d
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,crlf/binary-mixed-lf-cr
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,crlf/binary-mixed-lf-cr-crlf b/tests/resources/crlf_data/posix/autocrlf_true,crlf/binary-mixed-lf-cr-crlf
new file mode 100644
index 000000000..fd2abfa9d
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,crlf/binary-mixed-lf-cr-crlf
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,crlf/few-utf8-chars-crlf b/tests/resources/crlf_data/posix/autocrlf_true,crlf/few-utf8-chars-crlf
new file mode 100644
index 000000000..0e0528888
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,crlf/few-utf8-chars-crlf
@@ -0,0 +1,22 @@
+⚽The rest is ASCII01.
+The rest is ASCII02.
+The rest is ASCII03.
+The rest is ASCII04.
+The rest is ASCII05.
+The rest is ASCII06.
+The rest is ASCII07.
+The rest is ASCII08.
+The rest is ASCII09.
+The rest is ASCII10.
+The rest is ASCII11.
+The rest is ASCII12.
+The rest is ASCII13.
+The rest is ASCII14.
+The rest is ASCII15.
+The rest is ASCII16.
+The rest is ASCII17.
+The rest is ASCII18.
+The rest is ASCII19.
+The rest is ASCII20.
+The rest is ASCII21.
+The rest is ASCII22.
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,crlf/few-utf8-chars-lf b/tests/resources/crlf_data/posix/autocrlf_true,crlf/few-utf8-chars-lf
new file mode 100644
index 000000000..0e0528888
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,crlf/few-utf8-chars-lf
@@ -0,0 +1,22 @@
+⚽The rest is ASCII01.
+The rest is ASCII02.
+The rest is ASCII03.
+The rest is ASCII04.
+The rest is ASCII05.
+The rest is ASCII06.
+The rest is ASCII07.
+The rest is ASCII08.
+The rest is ASCII09.
+The rest is ASCII10.
+The rest is ASCII11.
+The rest is ASCII12.
+The rest is ASCII13.
+The rest is ASCII14.
+The rest is ASCII15.
+The rest is ASCII16.
+The rest is ASCII17.
+The rest is ASCII18.
+The rest is ASCII19.
+The rest is ASCII20.
+The rest is ASCII21.
+The rest is ASCII22.
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,crlf/many-utf8-chars-crlf b/tests/resources/crlf_data/posix/autocrlf_true,crlf/many-utf8-chars-crlf
new file mode 100644
index 000000000..cd574f5a2
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,crlf/many-utf8-chars-crlf
@@ -0,0 +1,4 @@
+Lets sing!
+♫♪♬♩
+Eat food
+🍅🍕
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,crlf/many-utf8-chars-lf b/tests/resources/crlf_data/posix/autocrlf_true,crlf/many-utf8-chars-lf
new file mode 100644
index 000000000..cd574f5a2
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,crlf/many-utf8-chars-lf
@@ -0,0 +1,4 @@
+Lets sing!
+♫♪♬♩
+Eat food
+🍅🍕
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,crlf/mixed-lf-cr b/tests/resources/crlf_data/posix/autocrlf_true,crlf/mixed-lf-cr
new file mode 100644
index 000000000..df8c0f680
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,crlf/mixed-lf-cr
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,crlf/mixed-lf-cr-crlf b/tests/resources/crlf_data/posix/autocrlf_true,crlf/mixed-lf-cr-crlf
new file mode 100644
index 000000000..df8c0f680
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,crlf/mixed-lf-cr-crlf
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,crlf/more-crlf b/tests/resources/crlf_data/posix/autocrlf_true,crlf/more-crlf
new file mode 100644
index 000000000..e682c3077
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,crlf/more-crlf
@@ -0,0 +1,5 @@
+crlf
+crlf
+lf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,crlf/more-crlf-utf8bom b/tests/resources/crlf_data/posix/autocrlf_true,crlf/more-crlf-utf8bom
new file mode 100644
index 000000000..2e1220cbb
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,crlf/more-crlf-utf8bom
@@ -0,0 +1,5 @@
+crlf
+crlf
+lf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,crlf/more-lf b/tests/resources/crlf_data/posix/autocrlf_true,crlf/more-lf
new file mode 100644
index 000000000..6da5b0c7e
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,crlf/more-lf
@@ -0,0 +1,5 @@
+lf
+lf
+crlf
+lf
+lf
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,crlf/more-lf-utf8bom b/tests/resources/crlf_data/posix/autocrlf_true,crlf/more-lf-utf8bom
new file mode 100644
index 000000000..3fa59c809
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,crlf/more-lf-utf8bom
@@ -0,0 +1,5 @@
+lf
+lf
+crlf
+lf
+lf
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,crlf/zero-byte b/tests/resources/crlf_data/posix/autocrlf_true,crlf/zero-byte
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,crlf/zero-byte
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,eol_crlf/all-crlf b/tests/resources/crlf_data/posix/autocrlf_true,eol_crlf/all-crlf
new file mode 100644
index 000000000..a9a2e8913
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,eol_crlf/all-crlf
@@ -0,0 +1,4 @@
+crlf
+crlf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,eol_crlf/all-crlf-utf8bom b/tests/resources/crlf_data/posix/autocrlf_true,eol_crlf/all-crlf-utf8bom
new file mode 100644
index 000000000..0aa76e474
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,eol_crlf/all-crlf-utf8bom
@@ -0,0 +1,4 @@
+crlf
+crlf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,eol_crlf/all-lf b/tests/resources/crlf_data/posix/autocrlf_true,eol_crlf/all-lf
new file mode 100644
index 000000000..f557a02d8
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,eol_crlf/all-lf
@@ -0,0 +1,5 @@
+lf
+lf
+lf
+lf
+lf
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,eol_crlf/all-lf-utf8bom b/tests/resources/crlf_data/posix/autocrlf_true,eol_crlf/all-lf-utf8bom
new file mode 100644
index 000000000..381cfe630
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,eol_crlf/all-lf-utf8bom
@@ -0,0 +1,5 @@
+lf
+lf
+lf
+lf
+lf
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,eol_crlf/binary-all-crlf b/tests/resources/crlf_data/posix/autocrlf_true,eol_crlf/binary-all-crlf
new file mode 100644
index 000000000..85340755c
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,eol_crlf/binary-all-crlf
@@ -0,0 +1,4 @@
+one
+two
+three
+four
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,eol_crlf/binary-all-lf b/tests/resources/crlf_data/posix/autocrlf_true,eol_crlf/binary-all-lf
new file mode 100644
index 000000000..85340755c
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,eol_crlf/binary-all-lf
@@ -0,0 +1,4 @@
+one
+two
+three
+four
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,eol_crlf/binary-mixed-lf-cr b/tests/resources/crlf_data/posix/autocrlf_true,eol_crlf/binary-mixed-lf-cr
new file mode 100644
index 000000000..fd2abfa9d
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,eol_crlf/binary-mixed-lf-cr
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,eol_crlf/binary-mixed-lf-cr-crlf b/tests/resources/crlf_data/posix/autocrlf_true,eol_crlf/binary-mixed-lf-cr-crlf
new file mode 100644
index 000000000..fd2abfa9d
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,eol_crlf/binary-mixed-lf-cr-crlf
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,eol_crlf/few-utf8-chars-crlf b/tests/resources/crlf_data/posix/autocrlf_true,eol_crlf/few-utf8-chars-crlf
new file mode 100644
index 000000000..0e0528888
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,eol_crlf/few-utf8-chars-crlf
@@ -0,0 +1,22 @@
+⚽The rest is ASCII01.
+The rest is ASCII02.
+The rest is ASCII03.
+The rest is ASCII04.
+The rest is ASCII05.
+The rest is ASCII06.
+The rest is ASCII07.
+The rest is ASCII08.
+The rest is ASCII09.
+The rest is ASCII10.
+The rest is ASCII11.
+The rest is ASCII12.
+The rest is ASCII13.
+The rest is ASCII14.
+The rest is ASCII15.
+The rest is ASCII16.
+The rest is ASCII17.
+The rest is ASCII18.
+The rest is ASCII19.
+The rest is ASCII20.
+The rest is ASCII21.
+The rest is ASCII22.
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,eol_crlf/few-utf8-chars-lf b/tests/resources/crlf_data/posix/autocrlf_true,eol_crlf/few-utf8-chars-lf
new file mode 100644
index 000000000..0e0528888
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,eol_crlf/few-utf8-chars-lf
@@ -0,0 +1,22 @@
+⚽The rest is ASCII01.
+The rest is ASCII02.
+The rest is ASCII03.
+The rest is ASCII04.
+The rest is ASCII05.
+The rest is ASCII06.
+The rest is ASCII07.
+The rest is ASCII08.
+The rest is ASCII09.
+The rest is ASCII10.
+The rest is ASCII11.
+The rest is ASCII12.
+The rest is ASCII13.
+The rest is ASCII14.
+The rest is ASCII15.
+The rest is ASCII16.
+The rest is ASCII17.
+The rest is ASCII18.
+The rest is ASCII19.
+The rest is ASCII20.
+The rest is ASCII21.
+The rest is ASCII22.
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,eol_crlf/many-utf8-chars-crlf b/tests/resources/crlf_data/posix/autocrlf_true,eol_crlf/many-utf8-chars-crlf
new file mode 100644
index 000000000..cd574f5a2
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,eol_crlf/many-utf8-chars-crlf
@@ -0,0 +1,4 @@
+Lets sing!
+♫♪♬♩
+Eat food
+🍅🍕
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,eol_crlf/many-utf8-chars-lf b/tests/resources/crlf_data/posix/autocrlf_true,eol_crlf/many-utf8-chars-lf
new file mode 100644
index 000000000..cd574f5a2
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,eol_crlf/many-utf8-chars-lf
@@ -0,0 +1,4 @@
+Lets sing!
+♫♪♬♩
+Eat food
+🍅🍕
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,eol_crlf/mixed-lf-cr b/tests/resources/crlf_data/posix/autocrlf_true,eol_crlf/mixed-lf-cr
new file mode 100644
index 000000000..df8c0f680
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,eol_crlf/mixed-lf-cr
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,eol_crlf/mixed-lf-cr-crlf b/tests/resources/crlf_data/posix/autocrlf_true,eol_crlf/mixed-lf-cr-crlf
new file mode 100644
index 000000000..df8c0f680
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,eol_crlf/mixed-lf-cr-crlf
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,eol_crlf/more-crlf b/tests/resources/crlf_data/posix/autocrlf_true,eol_crlf/more-crlf
new file mode 100644
index 000000000..e682c3077
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,eol_crlf/more-crlf
@@ -0,0 +1,5 @@
+crlf
+crlf
+lf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,eol_crlf/more-crlf-utf8bom b/tests/resources/crlf_data/posix/autocrlf_true,eol_crlf/more-crlf-utf8bom
new file mode 100644
index 000000000..2e1220cbb
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,eol_crlf/more-crlf-utf8bom
@@ -0,0 +1,5 @@
+crlf
+crlf
+lf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,eol_crlf/more-lf b/tests/resources/crlf_data/posix/autocrlf_true,eol_crlf/more-lf
new file mode 100644
index 000000000..6da5b0c7e
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,eol_crlf/more-lf
@@ -0,0 +1,5 @@
+lf
+lf
+crlf
+lf
+lf
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,eol_crlf/more-lf-utf8bom b/tests/resources/crlf_data/posix/autocrlf_true,eol_crlf/more-lf-utf8bom
new file mode 100644
index 000000000..3fa59c809
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,eol_crlf/more-lf-utf8bom
@@ -0,0 +1,5 @@
+lf
+lf
+crlf
+lf
+lf
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,eol_crlf/zero-byte b/tests/resources/crlf_data/posix/autocrlf_true,eol_crlf/zero-byte
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,eol_crlf/zero-byte
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,eol_lf/all-crlf b/tests/resources/crlf_data/posix/autocrlf_true,eol_lf/all-crlf
new file mode 100644
index 000000000..a9a2e8913
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,eol_lf/all-crlf
@@ -0,0 +1,4 @@
+crlf
+crlf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,eol_lf/all-crlf-utf8bom b/tests/resources/crlf_data/posix/autocrlf_true,eol_lf/all-crlf-utf8bom
new file mode 100644
index 000000000..0aa76e474
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,eol_lf/all-crlf-utf8bom
@@ -0,0 +1,4 @@
+crlf
+crlf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,eol_lf/all-lf b/tests/resources/crlf_data/posix/autocrlf_true,eol_lf/all-lf
new file mode 100644
index 000000000..799770d1c
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,eol_lf/all-lf
@@ -0,0 +1,5 @@
+lf
+lf
+lf
+lf
+lf
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,eol_lf/all-lf-utf8bom b/tests/resources/crlf_data/posix/autocrlf_true,eol_lf/all-lf-utf8bom
new file mode 100644
index 000000000..7cce67e58
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,eol_lf/all-lf-utf8bom
@@ -0,0 +1,5 @@
+lf
+lf
+lf
+lf
+lf
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,eol_lf/binary-all-crlf b/tests/resources/crlf_data/posix/autocrlf_true,eol_lf/binary-all-crlf
new file mode 100644
index 000000000..85340755c
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,eol_lf/binary-all-crlf
@@ -0,0 +1,4 @@
+one
+two
+three
+four
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,eol_lf/binary-all-lf b/tests/resources/crlf_data/posix/autocrlf_true,eol_lf/binary-all-lf
new file mode 100644
index 000000000..af6fcf6da
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,eol_lf/binary-all-lf
@@ -0,0 +1,4 @@
+one
+two
+three
+four
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,eol_lf/binary-mixed-lf-cr b/tests/resources/crlf_data/posix/autocrlf_true,eol_lf/binary-mixed-lf-cr
new file mode 100644
index 000000000..203555c56
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,eol_lf/binary-mixed-lf-cr
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,eol_lf/binary-mixed-lf-cr-crlf b/tests/resources/crlf_data/posix/autocrlf_true,eol_lf/binary-mixed-lf-cr-crlf
new file mode 100644
index 000000000..aaf083a9c
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,eol_lf/binary-mixed-lf-cr-crlf
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,eol_lf/few-utf8-chars-crlf b/tests/resources/crlf_data/posix/autocrlf_true,eol_lf/few-utf8-chars-crlf
new file mode 100644
index 000000000..0e0528888
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,eol_lf/few-utf8-chars-crlf
@@ -0,0 +1,22 @@
+⚽The rest is ASCII01.
+The rest is ASCII02.
+The rest is ASCII03.
+The rest is ASCII04.
+The rest is ASCII05.
+The rest is ASCII06.
+The rest is ASCII07.
+The rest is ASCII08.
+The rest is ASCII09.
+The rest is ASCII10.
+The rest is ASCII11.
+The rest is ASCII12.
+The rest is ASCII13.
+The rest is ASCII14.
+The rest is ASCII15.
+The rest is ASCII16.
+The rest is ASCII17.
+The rest is ASCII18.
+The rest is ASCII19.
+The rest is ASCII20.
+The rest is ASCII21.
+The rest is ASCII22.
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,eol_lf/few-utf8-chars-lf b/tests/resources/crlf_data/posix/autocrlf_true,eol_lf/few-utf8-chars-lf
new file mode 100644
index 000000000..f4d25b796
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,eol_lf/few-utf8-chars-lf
@@ -0,0 +1,22 @@
+⚽The rest is ASCII01.
+The rest is ASCII02.
+The rest is ASCII03.
+The rest is ASCII04.
+The rest is ASCII05.
+The rest is ASCII06.
+The rest is ASCII07.
+The rest is ASCII08.
+The rest is ASCII09.
+The rest is ASCII10.
+The rest is ASCII11.
+The rest is ASCII12.
+The rest is ASCII13.
+The rest is ASCII14.
+The rest is ASCII15.
+The rest is ASCII16.
+The rest is ASCII17.
+The rest is ASCII18.
+The rest is ASCII19.
+The rest is ASCII20.
+The rest is ASCII21.
+The rest is ASCII22.
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,eol_lf/many-utf8-chars-crlf b/tests/resources/crlf_data/posix/autocrlf_true,eol_lf/many-utf8-chars-crlf
new file mode 100644
index 000000000..cd574f5a2
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,eol_lf/many-utf8-chars-crlf
@@ -0,0 +1,4 @@
+Lets sing!
+♫♪♬♩
+Eat food
+🍅🍕
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,eol_lf/many-utf8-chars-lf b/tests/resources/crlf_data/posix/autocrlf_true,eol_lf/many-utf8-chars-lf
new file mode 100644
index 000000000..9a6c3533f
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,eol_lf/many-utf8-chars-lf
@@ -0,0 +1,4 @@
+Lets sing!
+♫♪♬♩
+Eat food
+🍅🍕
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,eol_lf/mixed-lf-cr b/tests/resources/crlf_data/posix/autocrlf_true,eol_lf/mixed-lf-cr
new file mode 100644
index 000000000..d11e7ef63
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,eol_lf/mixed-lf-cr
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,eol_lf/mixed-lf-cr-crlf b/tests/resources/crlf_data/posix/autocrlf_true,eol_lf/mixed-lf-cr-crlf
new file mode 100644
index 000000000..417786fc3
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,eol_lf/mixed-lf-cr-crlf
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,eol_lf/more-crlf b/tests/resources/crlf_data/posix/autocrlf_true,eol_lf/more-crlf
new file mode 100644
index 000000000..0ff5a53f1
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,eol_lf/more-crlf
@@ -0,0 +1,5 @@
+crlf
+crlf
+lf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,eol_lf/more-crlf-utf8bom b/tests/resources/crlf_data/posix/autocrlf_true,eol_lf/more-crlf-utf8bom
new file mode 100644
index 000000000..ea030d3c6
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,eol_lf/more-crlf-utf8bom
@@ -0,0 +1,5 @@
+crlf
+crlf
+lf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,eol_lf/more-lf b/tests/resources/crlf_data/posix/autocrlf_true,eol_lf/more-lf
new file mode 100644
index 000000000..04de00b35
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,eol_lf/more-lf
@@ -0,0 +1,5 @@
+lf
+lf
+crlf
+lf
+lf
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,eol_lf/more-lf-utf8bom b/tests/resources/crlf_data/posix/autocrlf_true,eol_lf/more-lf-utf8bom
new file mode 100644
index 000000000..dc88e3b91
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,eol_lf/more-lf-utf8bom
@@ -0,0 +1,5 @@
+lf
+lf
+crlf
+lf
+lf
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,eol_lf/zero-byte b/tests/resources/crlf_data/posix/autocrlf_true,eol_lf/zero-byte
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,eol_lf/zero-byte
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,text,eol_crlf/all-crlf b/tests/resources/crlf_data/posix/autocrlf_true,text,eol_crlf/all-crlf
new file mode 100644
index 000000000..a9a2e8913
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,text,eol_crlf/all-crlf
@@ -0,0 +1,4 @@
+crlf
+crlf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,text,eol_crlf/all-crlf-utf8bom b/tests/resources/crlf_data/posix/autocrlf_true,text,eol_crlf/all-crlf-utf8bom
new file mode 100644
index 000000000..0aa76e474
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,text,eol_crlf/all-crlf-utf8bom
@@ -0,0 +1,4 @@
+crlf
+crlf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,text,eol_crlf/all-lf b/tests/resources/crlf_data/posix/autocrlf_true,text,eol_crlf/all-lf
new file mode 100644
index 000000000..f557a02d8
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,text,eol_crlf/all-lf
@@ -0,0 +1,5 @@
+lf
+lf
+lf
+lf
+lf
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,text,eol_crlf/all-lf-utf8bom b/tests/resources/crlf_data/posix/autocrlf_true,text,eol_crlf/all-lf-utf8bom
new file mode 100644
index 000000000..381cfe630
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,text,eol_crlf/all-lf-utf8bom
@@ -0,0 +1,5 @@
+lf
+lf
+lf
+lf
+lf
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,text,eol_crlf/binary-all-crlf b/tests/resources/crlf_data/posix/autocrlf_true,text,eol_crlf/binary-all-crlf
new file mode 100644
index 000000000..85340755c
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,text,eol_crlf/binary-all-crlf
@@ -0,0 +1,4 @@
+one
+two
+three
+four
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,text,eol_crlf/binary-all-lf b/tests/resources/crlf_data/posix/autocrlf_true,text,eol_crlf/binary-all-lf
new file mode 100644
index 000000000..85340755c
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,text,eol_crlf/binary-all-lf
@@ -0,0 +1,4 @@
+one
+two
+three
+four
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,text,eol_crlf/binary-mixed-lf-cr b/tests/resources/crlf_data/posix/autocrlf_true,text,eol_crlf/binary-mixed-lf-cr
new file mode 100644
index 000000000..fd2abfa9d
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,text,eol_crlf/binary-mixed-lf-cr
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,text,eol_crlf/binary-mixed-lf-cr-crlf b/tests/resources/crlf_data/posix/autocrlf_true,text,eol_crlf/binary-mixed-lf-cr-crlf
new file mode 100644
index 000000000..fd2abfa9d
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,text,eol_crlf/binary-mixed-lf-cr-crlf
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,text,eol_crlf/few-utf8-chars-crlf b/tests/resources/crlf_data/posix/autocrlf_true,text,eol_crlf/few-utf8-chars-crlf
new file mode 100644
index 000000000..0e0528888
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,text,eol_crlf/few-utf8-chars-crlf
@@ -0,0 +1,22 @@
+⚽The rest is ASCII01.
+The rest is ASCII02.
+The rest is ASCII03.
+The rest is ASCII04.
+The rest is ASCII05.
+The rest is ASCII06.
+The rest is ASCII07.
+The rest is ASCII08.
+The rest is ASCII09.
+The rest is ASCII10.
+The rest is ASCII11.
+The rest is ASCII12.
+The rest is ASCII13.
+The rest is ASCII14.
+The rest is ASCII15.
+The rest is ASCII16.
+The rest is ASCII17.
+The rest is ASCII18.
+The rest is ASCII19.
+The rest is ASCII20.
+The rest is ASCII21.
+The rest is ASCII22.
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,text,eol_crlf/few-utf8-chars-lf b/tests/resources/crlf_data/posix/autocrlf_true,text,eol_crlf/few-utf8-chars-lf
new file mode 100644
index 000000000..0e0528888
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,text,eol_crlf/few-utf8-chars-lf
@@ -0,0 +1,22 @@
+⚽The rest is ASCII01.
+The rest is ASCII02.
+The rest is ASCII03.
+The rest is ASCII04.
+The rest is ASCII05.
+The rest is ASCII06.
+The rest is ASCII07.
+The rest is ASCII08.
+The rest is ASCII09.
+The rest is ASCII10.
+The rest is ASCII11.
+The rest is ASCII12.
+The rest is ASCII13.
+The rest is ASCII14.
+The rest is ASCII15.
+The rest is ASCII16.
+The rest is ASCII17.
+The rest is ASCII18.
+The rest is ASCII19.
+The rest is ASCII20.
+The rest is ASCII21.
+The rest is ASCII22.
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,text,eol_crlf/many-utf8-chars-crlf b/tests/resources/crlf_data/posix/autocrlf_true,text,eol_crlf/many-utf8-chars-crlf
new file mode 100644
index 000000000..cd574f5a2
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,text,eol_crlf/many-utf8-chars-crlf
@@ -0,0 +1,4 @@
+Lets sing!
+♫♪♬♩
+Eat food
+🍅🍕
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,text,eol_crlf/many-utf8-chars-lf b/tests/resources/crlf_data/posix/autocrlf_true,text,eol_crlf/many-utf8-chars-lf
new file mode 100644
index 000000000..cd574f5a2
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,text,eol_crlf/many-utf8-chars-lf
@@ -0,0 +1,4 @@
+Lets sing!
+♫♪♬♩
+Eat food
+🍅🍕
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,text,eol_crlf/mixed-lf-cr b/tests/resources/crlf_data/posix/autocrlf_true,text,eol_crlf/mixed-lf-cr
new file mode 100644
index 000000000..df8c0f680
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,text,eol_crlf/mixed-lf-cr
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,text,eol_crlf/mixed-lf-cr-crlf b/tests/resources/crlf_data/posix/autocrlf_true,text,eol_crlf/mixed-lf-cr-crlf
new file mode 100644
index 000000000..df8c0f680
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,text,eol_crlf/mixed-lf-cr-crlf
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,text,eol_crlf/more-crlf b/tests/resources/crlf_data/posix/autocrlf_true,text,eol_crlf/more-crlf
new file mode 100644
index 000000000..e682c3077
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,text,eol_crlf/more-crlf
@@ -0,0 +1,5 @@
+crlf
+crlf
+lf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,text,eol_crlf/more-crlf-utf8bom b/tests/resources/crlf_data/posix/autocrlf_true,text,eol_crlf/more-crlf-utf8bom
new file mode 100644
index 000000000..2e1220cbb
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,text,eol_crlf/more-crlf-utf8bom
@@ -0,0 +1,5 @@
+crlf
+crlf
+lf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,text,eol_crlf/more-lf b/tests/resources/crlf_data/posix/autocrlf_true,text,eol_crlf/more-lf
new file mode 100644
index 000000000..6da5b0c7e
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,text,eol_crlf/more-lf
@@ -0,0 +1,5 @@
+lf
+lf
+crlf
+lf
+lf
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,text,eol_crlf/more-lf-utf8bom b/tests/resources/crlf_data/posix/autocrlf_true,text,eol_crlf/more-lf-utf8bom
new file mode 100644
index 000000000..3fa59c809
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,text,eol_crlf/more-lf-utf8bom
@@ -0,0 +1,5 @@
+lf
+lf
+crlf
+lf
+lf
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,text,eol_crlf/zero-byte b/tests/resources/crlf_data/posix/autocrlf_true,text,eol_crlf/zero-byte
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,text,eol_crlf/zero-byte
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,text,eol_lf/all-crlf b/tests/resources/crlf_data/posix/autocrlf_true,text,eol_lf/all-crlf
new file mode 100644
index 000000000..a9a2e8913
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,text,eol_lf/all-crlf
@@ -0,0 +1,4 @@
+crlf
+crlf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,text,eol_lf/all-crlf-utf8bom b/tests/resources/crlf_data/posix/autocrlf_true,text,eol_lf/all-crlf-utf8bom
new file mode 100644
index 000000000..0aa76e474
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,text,eol_lf/all-crlf-utf8bom
@@ -0,0 +1,4 @@
+crlf
+crlf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,text,eol_lf/all-lf b/tests/resources/crlf_data/posix/autocrlf_true,text,eol_lf/all-lf
new file mode 100644
index 000000000..799770d1c
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,text,eol_lf/all-lf
@@ -0,0 +1,5 @@
+lf
+lf
+lf
+lf
+lf
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,text,eol_lf/all-lf-utf8bom b/tests/resources/crlf_data/posix/autocrlf_true,text,eol_lf/all-lf-utf8bom
new file mode 100644
index 000000000..7cce67e58
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,text,eol_lf/all-lf-utf8bom
@@ -0,0 +1,5 @@
+lf
+lf
+lf
+lf
+lf
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,text,eol_lf/binary-all-crlf b/tests/resources/crlf_data/posix/autocrlf_true,text,eol_lf/binary-all-crlf
new file mode 100644
index 000000000..85340755c
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,text,eol_lf/binary-all-crlf
@@ -0,0 +1,4 @@
+one
+two
+three
+four
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,text,eol_lf/binary-all-lf b/tests/resources/crlf_data/posix/autocrlf_true,text,eol_lf/binary-all-lf
new file mode 100644
index 000000000..af6fcf6da
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,text,eol_lf/binary-all-lf
@@ -0,0 +1,4 @@
+one
+two
+three
+four
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,text,eol_lf/binary-mixed-lf-cr b/tests/resources/crlf_data/posix/autocrlf_true,text,eol_lf/binary-mixed-lf-cr
new file mode 100644
index 000000000..203555c56
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,text,eol_lf/binary-mixed-lf-cr
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,text,eol_lf/binary-mixed-lf-cr-crlf b/tests/resources/crlf_data/posix/autocrlf_true,text,eol_lf/binary-mixed-lf-cr-crlf
new file mode 100644
index 000000000..aaf083a9c
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,text,eol_lf/binary-mixed-lf-cr-crlf
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,text,eol_lf/few-utf8-chars-crlf b/tests/resources/crlf_data/posix/autocrlf_true,text,eol_lf/few-utf8-chars-crlf
new file mode 100644
index 000000000..0e0528888
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,text,eol_lf/few-utf8-chars-crlf
@@ -0,0 +1,22 @@
+⚽The rest is ASCII01.
+The rest is ASCII02.
+The rest is ASCII03.
+The rest is ASCII04.
+The rest is ASCII05.
+The rest is ASCII06.
+The rest is ASCII07.
+The rest is ASCII08.
+The rest is ASCII09.
+The rest is ASCII10.
+The rest is ASCII11.
+The rest is ASCII12.
+The rest is ASCII13.
+The rest is ASCII14.
+The rest is ASCII15.
+The rest is ASCII16.
+The rest is ASCII17.
+The rest is ASCII18.
+The rest is ASCII19.
+The rest is ASCII20.
+The rest is ASCII21.
+The rest is ASCII22.
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,text,eol_lf/few-utf8-chars-lf b/tests/resources/crlf_data/posix/autocrlf_true,text,eol_lf/few-utf8-chars-lf
new file mode 100644
index 000000000..f4d25b796
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,text,eol_lf/few-utf8-chars-lf
@@ -0,0 +1,22 @@
+⚽The rest is ASCII01.
+The rest is ASCII02.
+The rest is ASCII03.
+The rest is ASCII04.
+The rest is ASCII05.
+The rest is ASCII06.
+The rest is ASCII07.
+The rest is ASCII08.
+The rest is ASCII09.
+The rest is ASCII10.
+The rest is ASCII11.
+The rest is ASCII12.
+The rest is ASCII13.
+The rest is ASCII14.
+The rest is ASCII15.
+The rest is ASCII16.
+The rest is ASCII17.
+The rest is ASCII18.
+The rest is ASCII19.
+The rest is ASCII20.
+The rest is ASCII21.
+The rest is ASCII22.
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,text,eol_lf/many-utf8-chars-crlf b/tests/resources/crlf_data/posix/autocrlf_true,text,eol_lf/many-utf8-chars-crlf
new file mode 100644
index 000000000..cd574f5a2
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,text,eol_lf/many-utf8-chars-crlf
@@ -0,0 +1,4 @@
+Lets sing!
+♫♪♬♩
+Eat food
+🍅🍕
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,text,eol_lf/many-utf8-chars-lf b/tests/resources/crlf_data/posix/autocrlf_true,text,eol_lf/many-utf8-chars-lf
new file mode 100644
index 000000000..9a6c3533f
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,text,eol_lf/many-utf8-chars-lf
@@ -0,0 +1,4 @@
+Lets sing!
+♫♪♬♩
+Eat food
+🍅🍕
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,text,eol_lf/mixed-lf-cr b/tests/resources/crlf_data/posix/autocrlf_true,text,eol_lf/mixed-lf-cr
new file mode 100644
index 000000000..d11e7ef63
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,text,eol_lf/mixed-lf-cr
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,text,eol_lf/mixed-lf-cr-crlf b/tests/resources/crlf_data/posix/autocrlf_true,text,eol_lf/mixed-lf-cr-crlf
new file mode 100644
index 000000000..417786fc3
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,text,eol_lf/mixed-lf-cr-crlf
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,text,eol_lf/more-crlf b/tests/resources/crlf_data/posix/autocrlf_true,text,eol_lf/more-crlf
new file mode 100644
index 000000000..0ff5a53f1
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,text,eol_lf/more-crlf
@@ -0,0 +1,5 @@
+crlf
+crlf
+lf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,text,eol_lf/more-crlf-utf8bom b/tests/resources/crlf_data/posix/autocrlf_true,text,eol_lf/more-crlf-utf8bom
new file mode 100644
index 000000000..ea030d3c6
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,text,eol_lf/more-crlf-utf8bom
@@ -0,0 +1,5 @@
+crlf
+crlf
+lf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,text,eol_lf/more-lf b/tests/resources/crlf_data/posix/autocrlf_true,text,eol_lf/more-lf
new file mode 100644
index 000000000..04de00b35
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,text,eol_lf/more-lf
@@ -0,0 +1,5 @@
+lf
+lf
+crlf
+lf
+lf
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,text,eol_lf/more-lf-utf8bom b/tests/resources/crlf_data/posix/autocrlf_true,text,eol_lf/more-lf-utf8bom
new file mode 100644
index 000000000..dc88e3b91
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,text,eol_lf/more-lf-utf8bom
@@ -0,0 +1,5 @@
+lf
+lf
+crlf
+lf
+lf
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,text,eol_lf/zero-byte b/tests/resources/crlf_data/posix/autocrlf_true,text,eol_lf/zero-byte
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,text,eol_lf/zero-byte
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,text/all-crlf b/tests/resources/crlf_data/posix/autocrlf_true,text/all-crlf
new file mode 100644
index 000000000..a9a2e8913
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,text/all-crlf
@@ -0,0 +1,4 @@
+crlf
+crlf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,text/all-crlf-utf8bom b/tests/resources/crlf_data/posix/autocrlf_true,text/all-crlf-utf8bom
new file mode 100644
index 000000000..0aa76e474
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,text/all-crlf-utf8bom
@@ -0,0 +1,4 @@
+crlf
+crlf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,text/all-lf b/tests/resources/crlf_data/posix/autocrlf_true,text/all-lf
new file mode 100644
index 000000000..f557a02d8
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,text/all-lf
@@ -0,0 +1,5 @@
+lf
+lf
+lf
+lf
+lf
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,text/all-lf-utf8bom b/tests/resources/crlf_data/posix/autocrlf_true,text/all-lf-utf8bom
new file mode 100644
index 000000000..381cfe630
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,text/all-lf-utf8bom
@@ -0,0 +1,5 @@
+lf
+lf
+lf
+lf
+lf
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,text/binary-all-crlf b/tests/resources/crlf_data/posix/autocrlf_true,text/binary-all-crlf
new file mode 100644
index 000000000..85340755c
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,text/binary-all-crlf
@@ -0,0 +1,4 @@
+one
+two
+three
+four
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,text/binary-all-lf b/tests/resources/crlf_data/posix/autocrlf_true,text/binary-all-lf
new file mode 100644
index 000000000..85340755c
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,text/binary-all-lf
@@ -0,0 +1,4 @@
+one
+two
+three
+four
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,text/binary-mixed-lf-cr b/tests/resources/crlf_data/posix/autocrlf_true,text/binary-mixed-lf-cr
new file mode 100644
index 000000000..fd2abfa9d
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,text/binary-mixed-lf-cr
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,text/binary-mixed-lf-cr-crlf b/tests/resources/crlf_data/posix/autocrlf_true,text/binary-mixed-lf-cr-crlf
new file mode 100644
index 000000000..fd2abfa9d
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,text/binary-mixed-lf-cr-crlf
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,text/few-utf8-chars-crlf b/tests/resources/crlf_data/posix/autocrlf_true,text/few-utf8-chars-crlf
new file mode 100644
index 000000000..0e0528888
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,text/few-utf8-chars-crlf
@@ -0,0 +1,22 @@
+⚽The rest is ASCII01.
+The rest is ASCII02.
+The rest is ASCII03.
+The rest is ASCII04.
+The rest is ASCII05.
+The rest is ASCII06.
+The rest is ASCII07.
+The rest is ASCII08.
+The rest is ASCII09.
+The rest is ASCII10.
+The rest is ASCII11.
+The rest is ASCII12.
+The rest is ASCII13.
+The rest is ASCII14.
+The rest is ASCII15.
+The rest is ASCII16.
+The rest is ASCII17.
+The rest is ASCII18.
+The rest is ASCII19.
+The rest is ASCII20.
+The rest is ASCII21.
+The rest is ASCII22.
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,text/few-utf8-chars-lf b/tests/resources/crlf_data/posix/autocrlf_true,text/few-utf8-chars-lf
new file mode 100644
index 000000000..0e0528888
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,text/few-utf8-chars-lf
@@ -0,0 +1,22 @@
+⚽The rest is ASCII01.
+The rest is ASCII02.
+The rest is ASCII03.
+The rest is ASCII04.
+The rest is ASCII05.
+The rest is ASCII06.
+The rest is ASCII07.
+The rest is ASCII08.
+The rest is ASCII09.
+The rest is ASCII10.
+The rest is ASCII11.
+The rest is ASCII12.
+The rest is ASCII13.
+The rest is ASCII14.
+The rest is ASCII15.
+The rest is ASCII16.
+The rest is ASCII17.
+The rest is ASCII18.
+The rest is ASCII19.
+The rest is ASCII20.
+The rest is ASCII21.
+The rest is ASCII22.
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,text/many-utf8-chars-crlf b/tests/resources/crlf_data/posix/autocrlf_true,text/many-utf8-chars-crlf
new file mode 100644
index 000000000..cd574f5a2
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,text/many-utf8-chars-crlf
@@ -0,0 +1,4 @@
+Lets sing!
+♫♪♬♩
+Eat food
+🍅🍕
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,text/many-utf8-chars-lf b/tests/resources/crlf_data/posix/autocrlf_true,text/many-utf8-chars-lf
new file mode 100644
index 000000000..cd574f5a2
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,text/many-utf8-chars-lf
@@ -0,0 +1,4 @@
+Lets sing!
+♫♪♬♩
+Eat food
+🍅🍕
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,text/mixed-lf-cr b/tests/resources/crlf_data/posix/autocrlf_true,text/mixed-lf-cr
new file mode 100644
index 000000000..df8c0f680
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,text/mixed-lf-cr
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,text/mixed-lf-cr-crlf b/tests/resources/crlf_data/posix/autocrlf_true,text/mixed-lf-cr-crlf
new file mode 100644
index 000000000..df8c0f680
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,text/mixed-lf-cr-crlf
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,text/more-crlf b/tests/resources/crlf_data/posix/autocrlf_true,text/more-crlf
new file mode 100644
index 000000000..e682c3077
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,text/more-crlf
@@ -0,0 +1,5 @@
+crlf
+crlf
+lf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,text/more-crlf-utf8bom b/tests/resources/crlf_data/posix/autocrlf_true,text/more-crlf-utf8bom
new file mode 100644
index 000000000..2e1220cbb
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,text/more-crlf-utf8bom
@@ -0,0 +1,5 @@
+crlf
+crlf
+lf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,text/more-lf b/tests/resources/crlf_data/posix/autocrlf_true,text/more-lf
new file mode 100644
index 000000000..6da5b0c7e
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,text/more-lf
@@ -0,0 +1,5 @@
+lf
+lf
+crlf
+lf
+lf
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,text/more-lf-utf8bom b/tests/resources/crlf_data/posix/autocrlf_true,text/more-lf-utf8bom
new file mode 100644
index 000000000..3fa59c809
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,text/more-lf-utf8bom
@@ -0,0 +1,5 @@
+lf
+lf
+crlf
+lf
+lf
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,text/zero-byte b/tests/resources/crlf_data/posix/autocrlf_true,text/zero-byte
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,text/zero-byte
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,text_auto,eol_crlf/all-crlf b/tests/resources/crlf_data/posix/autocrlf_true,text_auto,eol_crlf/all-crlf
new file mode 100644
index 000000000..a9a2e8913
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,text_auto,eol_crlf/all-crlf
@@ -0,0 +1,4 @@
+crlf
+crlf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,text_auto,eol_crlf/all-crlf-utf8bom b/tests/resources/crlf_data/posix/autocrlf_true,text_auto,eol_crlf/all-crlf-utf8bom
new file mode 100644
index 000000000..0aa76e474
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,text_auto,eol_crlf/all-crlf-utf8bom
@@ -0,0 +1,4 @@
+crlf
+crlf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,text_auto,eol_crlf/all-lf b/tests/resources/crlf_data/posix/autocrlf_true,text_auto,eol_crlf/all-lf
new file mode 100644
index 000000000..f557a02d8
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,text_auto,eol_crlf/all-lf
@@ -0,0 +1,5 @@
+lf
+lf
+lf
+lf
+lf
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,text_auto,eol_crlf/all-lf-utf8bom b/tests/resources/crlf_data/posix/autocrlf_true,text_auto,eol_crlf/all-lf-utf8bom
new file mode 100644
index 000000000..381cfe630
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,text_auto,eol_crlf/all-lf-utf8bom
@@ -0,0 +1,5 @@
+lf
+lf
+lf
+lf
+lf
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,text_auto,eol_crlf/binary-all-crlf b/tests/resources/crlf_data/posix/autocrlf_true,text_auto,eol_crlf/binary-all-crlf
new file mode 100644
index 000000000..85340755c
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,text_auto,eol_crlf/binary-all-crlf
@@ -0,0 +1,4 @@
+one
+two
+three
+four
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,text_auto,eol_crlf/binary-all-lf b/tests/resources/crlf_data/posix/autocrlf_true,text_auto,eol_crlf/binary-all-lf
new file mode 100644
index 000000000..85340755c
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,text_auto,eol_crlf/binary-all-lf
@@ -0,0 +1,4 @@
+one
+two
+three
+four
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,text_auto,eol_crlf/binary-mixed-lf-cr b/tests/resources/crlf_data/posix/autocrlf_true,text_auto,eol_crlf/binary-mixed-lf-cr
new file mode 100644
index 000000000..fd2abfa9d
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,text_auto,eol_crlf/binary-mixed-lf-cr
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,text_auto,eol_crlf/binary-mixed-lf-cr-crlf b/tests/resources/crlf_data/posix/autocrlf_true,text_auto,eol_crlf/binary-mixed-lf-cr-crlf
new file mode 100644
index 000000000..fd2abfa9d
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,text_auto,eol_crlf/binary-mixed-lf-cr-crlf
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,text_auto,eol_crlf/few-utf8-chars-crlf b/tests/resources/crlf_data/posix/autocrlf_true,text_auto,eol_crlf/few-utf8-chars-crlf
new file mode 100644
index 000000000..0e0528888
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,text_auto,eol_crlf/few-utf8-chars-crlf
@@ -0,0 +1,22 @@
+⚽The rest is ASCII01.
+The rest is ASCII02.
+The rest is ASCII03.
+The rest is ASCII04.
+The rest is ASCII05.
+The rest is ASCII06.
+The rest is ASCII07.
+The rest is ASCII08.
+The rest is ASCII09.
+The rest is ASCII10.
+The rest is ASCII11.
+The rest is ASCII12.
+The rest is ASCII13.
+The rest is ASCII14.
+The rest is ASCII15.
+The rest is ASCII16.
+The rest is ASCII17.
+The rest is ASCII18.
+The rest is ASCII19.
+The rest is ASCII20.
+The rest is ASCII21.
+The rest is ASCII22.
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,text_auto,eol_crlf/few-utf8-chars-lf b/tests/resources/crlf_data/posix/autocrlf_true,text_auto,eol_crlf/few-utf8-chars-lf
new file mode 100644
index 000000000..0e0528888
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,text_auto,eol_crlf/few-utf8-chars-lf
@@ -0,0 +1,22 @@
+⚽The rest is ASCII01.
+The rest is ASCII02.
+The rest is ASCII03.
+The rest is ASCII04.
+The rest is ASCII05.
+The rest is ASCII06.
+The rest is ASCII07.
+The rest is ASCII08.
+The rest is ASCII09.
+The rest is ASCII10.
+The rest is ASCII11.
+The rest is ASCII12.
+The rest is ASCII13.
+The rest is ASCII14.
+The rest is ASCII15.
+The rest is ASCII16.
+The rest is ASCII17.
+The rest is ASCII18.
+The rest is ASCII19.
+The rest is ASCII20.
+The rest is ASCII21.
+The rest is ASCII22.
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,text_auto,eol_crlf/many-utf8-chars-crlf b/tests/resources/crlf_data/posix/autocrlf_true,text_auto,eol_crlf/many-utf8-chars-crlf
new file mode 100644
index 000000000..cd574f5a2
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,text_auto,eol_crlf/many-utf8-chars-crlf
@@ -0,0 +1,4 @@
+Lets sing!
+♫♪♬♩
+Eat food
+🍅🍕
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,text_auto,eol_crlf/many-utf8-chars-lf b/tests/resources/crlf_data/posix/autocrlf_true,text_auto,eol_crlf/many-utf8-chars-lf
new file mode 100644
index 000000000..cd574f5a2
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,text_auto,eol_crlf/many-utf8-chars-lf
@@ -0,0 +1,4 @@
+Lets sing!
+♫♪♬♩
+Eat food
+🍅🍕
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,text_auto,eol_crlf/mixed-lf-cr b/tests/resources/crlf_data/posix/autocrlf_true,text_auto,eol_crlf/mixed-lf-cr
new file mode 100644
index 000000000..df8c0f680
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,text_auto,eol_crlf/mixed-lf-cr
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,text_auto,eol_crlf/mixed-lf-cr-crlf b/tests/resources/crlf_data/posix/autocrlf_true,text_auto,eol_crlf/mixed-lf-cr-crlf
new file mode 100644
index 000000000..df8c0f680
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,text_auto,eol_crlf/mixed-lf-cr-crlf
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,text_auto,eol_crlf/more-crlf b/tests/resources/crlf_data/posix/autocrlf_true,text_auto,eol_crlf/more-crlf
new file mode 100644
index 000000000..e682c3077
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,text_auto,eol_crlf/more-crlf
@@ -0,0 +1,5 @@
+crlf
+crlf
+lf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,text_auto,eol_crlf/more-crlf-utf8bom b/tests/resources/crlf_data/posix/autocrlf_true,text_auto,eol_crlf/more-crlf-utf8bom
new file mode 100644
index 000000000..2e1220cbb
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,text_auto,eol_crlf/more-crlf-utf8bom
@@ -0,0 +1,5 @@
+crlf
+crlf
+lf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,text_auto,eol_crlf/more-lf b/tests/resources/crlf_data/posix/autocrlf_true,text_auto,eol_crlf/more-lf
new file mode 100644
index 000000000..6da5b0c7e
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,text_auto,eol_crlf/more-lf
@@ -0,0 +1,5 @@
+lf
+lf
+crlf
+lf
+lf
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,text_auto,eol_crlf/more-lf-utf8bom b/tests/resources/crlf_data/posix/autocrlf_true,text_auto,eol_crlf/more-lf-utf8bom
new file mode 100644
index 000000000..3fa59c809
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,text_auto,eol_crlf/more-lf-utf8bom
@@ -0,0 +1,5 @@
+lf
+lf
+crlf
+lf
+lf
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,text_auto,eol_crlf/zero-byte b/tests/resources/crlf_data/posix/autocrlf_true,text_auto,eol_crlf/zero-byte
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,text_auto,eol_crlf/zero-byte
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,text_auto,eol_lf/all-crlf b/tests/resources/crlf_data/posix/autocrlf_true,text_auto,eol_lf/all-crlf
new file mode 100644
index 000000000..a9a2e8913
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,text_auto,eol_lf/all-crlf
@@ -0,0 +1,4 @@
+crlf
+crlf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,text_auto,eol_lf/all-crlf-utf8bom b/tests/resources/crlf_data/posix/autocrlf_true,text_auto,eol_lf/all-crlf-utf8bom
new file mode 100644
index 000000000..0aa76e474
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,text_auto,eol_lf/all-crlf-utf8bom
@@ -0,0 +1,4 @@
+crlf
+crlf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,text_auto,eol_lf/all-lf b/tests/resources/crlf_data/posix/autocrlf_true,text_auto,eol_lf/all-lf
new file mode 100644
index 000000000..799770d1c
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,text_auto,eol_lf/all-lf
@@ -0,0 +1,5 @@
+lf
+lf
+lf
+lf
+lf
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,text_auto,eol_lf/all-lf-utf8bom b/tests/resources/crlf_data/posix/autocrlf_true,text_auto,eol_lf/all-lf-utf8bom
new file mode 100644
index 000000000..7cce67e58
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,text_auto,eol_lf/all-lf-utf8bom
@@ -0,0 +1,5 @@
+lf
+lf
+lf
+lf
+lf
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,text_auto,eol_lf/binary-all-crlf b/tests/resources/crlf_data/posix/autocrlf_true,text_auto,eol_lf/binary-all-crlf
new file mode 100644
index 000000000..85340755c
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,text_auto,eol_lf/binary-all-crlf
@@ -0,0 +1,4 @@
+one
+two
+three
+four
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,text_auto,eol_lf/binary-all-lf b/tests/resources/crlf_data/posix/autocrlf_true,text_auto,eol_lf/binary-all-lf
new file mode 100644
index 000000000..af6fcf6da
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,text_auto,eol_lf/binary-all-lf
@@ -0,0 +1,4 @@
+one
+two
+three
+four
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,text_auto,eol_lf/binary-mixed-lf-cr b/tests/resources/crlf_data/posix/autocrlf_true,text_auto,eol_lf/binary-mixed-lf-cr
new file mode 100644
index 000000000..203555c56
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,text_auto,eol_lf/binary-mixed-lf-cr
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,text_auto,eol_lf/binary-mixed-lf-cr-crlf b/tests/resources/crlf_data/posix/autocrlf_true,text_auto,eol_lf/binary-mixed-lf-cr-crlf
new file mode 100644
index 000000000..aaf083a9c
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,text_auto,eol_lf/binary-mixed-lf-cr-crlf
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,text_auto,eol_lf/few-utf8-chars-crlf b/tests/resources/crlf_data/posix/autocrlf_true,text_auto,eol_lf/few-utf8-chars-crlf
new file mode 100644
index 000000000..0e0528888
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,text_auto,eol_lf/few-utf8-chars-crlf
@@ -0,0 +1,22 @@
+⚽The rest is ASCII01.
+The rest is ASCII02.
+The rest is ASCII03.
+The rest is ASCII04.
+The rest is ASCII05.
+The rest is ASCII06.
+The rest is ASCII07.
+The rest is ASCII08.
+The rest is ASCII09.
+The rest is ASCII10.
+The rest is ASCII11.
+The rest is ASCII12.
+The rest is ASCII13.
+The rest is ASCII14.
+The rest is ASCII15.
+The rest is ASCII16.
+The rest is ASCII17.
+The rest is ASCII18.
+The rest is ASCII19.
+The rest is ASCII20.
+The rest is ASCII21.
+The rest is ASCII22.
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,text_auto,eol_lf/few-utf8-chars-lf b/tests/resources/crlf_data/posix/autocrlf_true,text_auto,eol_lf/few-utf8-chars-lf
new file mode 100644
index 000000000..f4d25b796
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,text_auto,eol_lf/few-utf8-chars-lf
@@ -0,0 +1,22 @@
+⚽The rest is ASCII01.
+The rest is ASCII02.
+The rest is ASCII03.
+The rest is ASCII04.
+The rest is ASCII05.
+The rest is ASCII06.
+The rest is ASCII07.
+The rest is ASCII08.
+The rest is ASCII09.
+The rest is ASCII10.
+The rest is ASCII11.
+The rest is ASCII12.
+The rest is ASCII13.
+The rest is ASCII14.
+The rest is ASCII15.
+The rest is ASCII16.
+The rest is ASCII17.
+The rest is ASCII18.
+The rest is ASCII19.
+The rest is ASCII20.
+The rest is ASCII21.
+The rest is ASCII22.
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,text_auto,eol_lf/many-utf8-chars-crlf b/tests/resources/crlf_data/posix/autocrlf_true,text_auto,eol_lf/many-utf8-chars-crlf
new file mode 100644
index 000000000..cd574f5a2
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,text_auto,eol_lf/many-utf8-chars-crlf
@@ -0,0 +1,4 @@
+Lets sing!
+♫♪♬♩
+Eat food
+🍅🍕
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,text_auto,eol_lf/many-utf8-chars-lf b/tests/resources/crlf_data/posix/autocrlf_true,text_auto,eol_lf/many-utf8-chars-lf
new file mode 100644
index 000000000..9a6c3533f
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,text_auto,eol_lf/many-utf8-chars-lf
@@ -0,0 +1,4 @@
+Lets sing!
+♫♪♬♩
+Eat food
+🍅🍕
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,text_auto,eol_lf/mixed-lf-cr b/tests/resources/crlf_data/posix/autocrlf_true,text_auto,eol_lf/mixed-lf-cr
new file mode 100644
index 000000000..d11e7ef63
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,text_auto,eol_lf/mixed-lf-cr
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,text_auto,eol_lf/mixed-lf-cr-crlf b/tests/resources/crlf_data/posix/autocrlf_true,text_auto,eol_lf/mixed-lf-cr-crlf
new file mode 100644
index 000000000..417786fc3
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,text_auto,eol_lf/mixed-lf-cr-crlf
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,text_auto,eol_lf/more-crlf b/tests/resources/crlf_data/posix/autocrlf_true,text_auto,eol_lf/more-crlf
new file mode 100644
index 000000000..0ff5a53f1
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,text_auto,eol_lf/more-crlf
@@ -0,0 +1,5 @@
+crlf
+crlf
+lf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,text_auto,eol_lf/more-crlf-utf8bom b/tests/resources/crlf_data/posix/autocrlf_true,text_auto,eol_lf/more-crlf-utf8bom
new file mode 100644
index 000000000..ea030d3c6
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,text_auto,eol_lf/more-crlf-utf8bom
@@ -0,0 +1,5 @@
+crlf
+crlf
+lf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,text_auto,eol_lf/more-lf b/tests/resources/crlf_data/posix/autocrlf_true,text_auto,eol_lf/more-lf
new file mode 100644
index 000000000..04de00b35
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,text_auto,eol_lf/more-lf
@@ -0,0 +1,5 @@
+lf
+lf
+crlf
+lf
+lf
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,text_auto,eol_lf/more-lf-utf8bom b/tests/resources/crlf_data/posix/autocrlf_true,text_auto,eol_lf/more-lf-utf8bom
new file mode 100644
index 000000000..dc88e3b91
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,text_auto,eol_lf/more-lf-utf8bom
@@ -0,0 +1,5 @@
+lf
+lf
+crlf
+lf
+lf
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,text_auto,eol_lf/zero-byte b/tests/resources/crlf_data/posix/autocrlf_true,text_auto,eol_lf/zero-byte
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,text_auto,eol_lf/zero-byte
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,text_auto/all-crlf b/tests/resources/crlf_data/posix/autocrlf_true,text_auto/all-crlf
new file mode 100644
index 000000000..a9a2e8913
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,text_auto/all-crlf
@@ -0,0 +1,4 @@
+crlf
+crlf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,text_auto/all-crlf-utf8bom b/tests/resources/crlf_data/posix/autocrlf_true,text_auto/all-crlf-utf8bom
new file mode 100644
index 000000000..0aa76e474
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,text_auto/all-crlf-utf8bom
@@ -0,0 +1,4 @@
+crlf
+crlf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,text_auto/all-lf b/tests/resources/crlf_data/posix/autocrlf_true,text_auto/all-lf
new file mode 100644
index 000000000..f557a02d8
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,text_auto/all-lf
@@ -0,0 +1,5 @@
+lf
+lf
+lf
+lf
+lf
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,text_auto/all-lf-utf8bom b/tests/resources/crlf_data/posix/autocrlf_true,text_auto/all-lf-utf8bom
new file mode 100644
index 000000000..381cfe630
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,text_auto/all-lf-utf8bom
@@ -0,0 +1,5 @@
+lf
+lf
+lf
+lf
+lf
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,text_auto/binary-all-crlf b/tests/resources/crlf_data/posix/autocrlf_true,text_auto/binary-all-crlf
new file mode 100644
index 000000000..85340755c
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,text_auto/binary-all-crlf
@@ -0,0 +1,4 @@
+one
+two
+three
+four
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,text_auto/binary-all-lf b/tests/resources/crlf_data/posix/autocrlf_true,text_auto/binary-all-lf
new file mode 100644
index 000000000..af6fcf6da
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,text_auto/binary-all-lf
@@ -0,0 +1,4 @@
+one
+two
+three
+four
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,text_auto/binary-mixed-lf-cr b/tests/resources/crlf_data/posix/autocrlf_true,text_auto/binary-mixed-lf-cr
new file mode 100644
index 000000000..203555c56
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,text_auto/binary-mixed-lf-cr
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,text_auto/binary-mixed-lf-cr-crlf b/tests/resources/crlf_data/posix/autocrlf_true,text_auto/binary-mixed-lf-cr-crlf
new file mode 100644
index 000000000..aaf083a9c
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,text_auto/binary-mixed-lf-cr-crlf
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,text_auto/few-utf8-chars-crlf b/tests/resources/crlf_data/posix/autocrlf_true,text_auto/few-utf8-chars-crlf
new file mode 100644
index 000000000..0e0528888
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,text_auto/few-utf8-chars-crlf
@@ -0,0 +1,22 @@
+⚽The rest is ASCII01.
+The rest is ASCII02.
+The rest is ASCII03.
+The rest is ASCII04.
+The rest is ASCII05.
+The rest is ASCII06.
+The rest is ASCII07.
+The rest is ASCII08.
+The rest is ASCII09.
+The rest is ASCII10.
+The rest is ASCII11.
+The rest is ASCII12.
+The rest is ASCII13.
+The rest is ASCII14.
+The rest is ASCII15.
+The rest is ASCII16.
+The rest is ASCII17.
+The rest is ASCII18.
+The rest is ASCII19.
+The rest is ASCII20.
+The rest is ASCII21.
+The rest is ASCII22.
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,text_auto/few-utf8-chars-lf b/tests/resources/crlf_data/posix/autocrlf_true,text_auto/few-utf8-chars-lf
new file mode 100644
index 000000000..0e0528888
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,text_auto/few-utf8-chars-lf
@@ -0,0 +1,22 @@
+⚽The rest is ASCII01.
+The rest is ASCII02.
+The rest is ASCII03.
+The rest is ASCII04.
+The rest is ASCII05.
+The rest is ASCII06.
+The rest is ASCII07.
+The rest is ASCII08.
+The rest is ASCII09.
+The rest is ASCII10.
+The rest is ASCII11.
+The rest is ASCII12.
+The rest is ASCII13.
+The rest is ASCII14.
+The rest is ASCII15.
+The rest is ASCII16.
+The rest is ASCII17.
+The rest is ASCII18.
+The rest is ASCII19.
+The rest is ASCII20.
+The rest is ASCII21.
+The rest is ASCII22.
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,text_auto/many-utf8-chars-crlf b/tests/resources/crlf_data/posix/autocrlf_true,text_auto/many-utf8-chars-crlf
new file mode 100644
index 000000000..cd574f5a2
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,text_auto/many-utf8-chars-crlf
@@ -0,0 +1,4 @@
+Lets sing!
+♫♪♬♩
+Eat food
+🍅🍕
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,text_auto/many-utf8-chars-lf b/tests/resources/crlf_data/posix/autocrlf_true,text_auto/many-utf8-chars-lf
new file mode 100644
index 000000000..cd574f5a2
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,text_auto/many-utf8-chars-lf
@@ -0,0 +1,4 @@
+Lets sing!
+♫♪♬♩
+Eat food
+🍅🍕
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,text_auto/mixed-lf-cr b/tests/resources/crlf_data/posix/autocrlf_true,text_auto/mixed-lf-cr
new file mode 100644
index 000000000..d11e7ef63
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,text_auto/mixed-lf-cr
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,text_auto/mixed-lf-cr-crlf b/tests/resources/crlf_data/posix/autocrlf_true,text_auto/mixed-lf-cr-crlf
new file mode 100644
index 000000000..417786fc3
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,text_auto/mixed-lf-cr-crlf
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,text_auto/more-crlf b/tests/resources/crlf_data/posix/autocrlf_true,text_auto/more-crlf
new file mode 100644
index 000000000..e682c3077
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,text_auto/more-crlf
@@ -0,0 +1,5 @@
+crlf
+crlf
+lf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,text_auto/more-crlf-utf8bom b/tests/resources/crlf_data/posix/autocrlf_true,text_auto/more-crlf-utf8bom
new file mode 100644
index 000000000..2e1220cbb
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,text_auto/more-crlf-utf8bom
@@ -0,0 +1,5 @@
+crlf
+crlf
+lf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,text_auto/more-lf b/tests/resources/crlf_data/posix/autocrlf_true,text_auto/more-lf
new file mode 100644
index 000000000..6da5b0c7e
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,text_auto/more-lf
@@ -0,0 +1,5 @@
+lf
+lf
+crlf
+lf
+lf
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,text_auto/more-lf-utf8bom b/tests/resources/crlf_data/posix/autocrlf_true,text_auto/more-lf-utf8bom
new file mode 100644
index 000000000..3fa59c809
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,text_auto/more-lf-utf8bom
@@ -0,0 +1,5 @@
+lf
+lf
+crlf
+lf
+lf
diff --git a/tests/resources/crlf_data/posix/autocrlf_true,text_auto/zero-byte b/tests/resources/crlf_data/posix/autocrlf_true,text_auto/zero-byte
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true,text_auto/zero-byte
diff --git a/tests/resources/crlf_data/posix/autocrlf_true/all-crlf b/tests/resources/crlf_data/posix/autocrlf_true/all-crlf
new file mode 100644
index 000000000..a9a2e8913
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true/all-crlf
@@ -0,0 +1,4 @@
+crlf
+crlf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/posix/autocrlf_true/all-crlf-utf8bom b/tests/resources/crlf_data/posix/autocrlf_true/all-crlf-utf8bom
new file mode 100644
index 000000000..0aa76e474
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true/all-crlf-utf8bom
@@ -0,0 +1,4 @@
+crlf
+crlf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/posix/autocrlf_true/all-lf b/tests/resources/crlf_data/posix/autocrlf_true/all-lf
new file mode 100644
index 000000000..f557a02d8
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true/all-lf
@@ -0,0 +1,5 @@
+lf
+lf
+lf
+lf
+lf
diff --git a/tests/resources/crlf_data/posix/autocrlf_true/all-lf-utf8bom b/tests/resources/crlf_data/posix/autocrlf_true/all-lf-utf8bom
new file mode 100644
index 000000000..381cfe630
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true/all-lf-utf8bom
@@ -0,0 +1,5 @@
+lf
+lf
+lf
+lf
+lf
diff --git a/tests/resources/crlf_data/posix/autocrlf_true/binary-all-crlf b/tests/resources/crlf_data/posix/autocrlf_true/binary-all-crlf
new file mode 100644
index 000000000..85340755c
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true/binary-all-crlf
@@ -0,0 +1,4 @@
+one
+two
+three
+four
diff --git a/tests/resources/crlf_data/posix/autocrlf_true/binary-all-lf b/tests/resources/crlf_data/posix/autocrlf_true/binary-all-lf
new file mode 100644
index 000000000..af6fcf6da
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true/binary-all-lf
@@ -0,0 +1,4 @@
+one
+two
+three
+four
diff --git a/tests/resources/crlf_data/posix/autocrlf_true/binary-mixed-lf-cr b/tests/resources/crlf_data/posix/autocrlf_true/binary-mixed-lf-cr
new file mode 100644
index 000000000..203555c56
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true/binary-mixed-lf-cr
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/posix/autocrlf_true/binary-mixed-lf-cr-crlf b/tests/resources/crlf_data/posix/autocrlf_true/binary-mixed-lf-cr-crlf
new file mode 100644
index 000000000..aaf083a9c
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true/binary-mixed-lf-cr-crlf
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/posix/autocrlf_true/few-utf8-chars-crlf b/tests/resources/crlf_data/posix/autocrlf_true/few-utf8-chars-crlf
new file mode 100644
index 000000000..0e0528888
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true/few-utf8-chars-crlf
@@ -0,0 +1,22 @@
+⚽The rest is ASCII01.
+The rest is ASCII02.
+The rest is ASCII03.
+The rest is ASCII04.
+The rest is ASCII05.
+The rest is ASCII06.
+The rest is ASCII07.
+The rest is ASCII08.
+The rest is ASCII09.
+The rest is ASCII10.
+The rest is ASCII11.
+The rest is ASCII12.
+The rest is ASCII13.
+The rest is ASCII14.
+The rest is ASCII15.
+The rest is ASCII16.
+The rest is ASCII17.
+The rest is ASCII18.
+The rest is ASCII19.
+The rest is ASCII20.
+The rest is ASCII21.
+The rest is ASCII22.
diff --git a/tests/resources/crlf_data/posix/autocrlf_true/few-utf8-chars-lf b/tests/resources/crlf_data/posix/autocrlf_true/few-utf8-chars-lf
new file mode 100644
index 000000000..0e0528888
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true/few-utf8-chars-lf
@@ -0,0 +1,22 @@
+⚽The rest is ASCII01.
+The rest is ASCII02.
+The rest is ASCII03.
+The rest is ASCII04.
+The rest is ASCII05.
+The rest is ASCII06.
+The rest is ASCII07.
+The rest is ASCII08.
+The rest is ASCII09.
+The rest is ASCII10.
+The rest is ASCII11.
+The rest is ASCII12.
+The rest is ASCII13.
+The rest is ASCII14.
+The rest is ASCII15.
+The rest is ASCII16.
+The rest is ASCII17.
+The rest is ASCII18.
+The rest is ASCII19.
+The rest is ASCII20.
+The rest is ASCII21.
+The rest is ASCII22.
diff --git a/tests/resources/crlf_data/posix/autocrlf_true/many-utf8-chars-crlf b/tests/resources/crlf_data/posix/autocrlf_true/many-utf8-chars-crlf
new file mode 100644
index 000000000..cd574f5a2
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true/many-utf8-chars-crlf
@@ -0,0 +1,4 @@
+Lets sing!
+♫♪♬♩
+Eat food
+🍅🍕
diff --git a/tests/resources/crlf_data/posix/autocrlf_true/many-utf8-chars-lf b/tests/resources/crlf_data/posix/autocrlf_true/many-utf8-chars-lf
new file mode 100644
index 000000000..cd574f5a2
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true/many-utf8-chars-lf
@@ -0,0 +1,4 @@
+Lets sing!
+♫♪♬♩
+Eat food
+🍅🍕
diff --git a/tests/resources/crlf_data/posix/autocrlf_true/mixed-lf-cr b/tests/resources/crlf_data/posix/autocrlf_true/mixed-lf-cr
new file mode 100644
index 000000000..d11e7ef63
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true/mixed-lf-cr
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/posix/autocrlf_true/mixed-lf-cr-crlf b/tests/resources/crlf_data/posix/autocrlf_true/mixed-lf-cr-crlf
new file mode 100644
index 000000000..417786fc3
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true/mixed-lf-cr-crlf
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/posix/autocrlf_true/more-crlf b/tests/resources/crlf_data/posix/autocrlf_true/more-crlf
new file mode 100644
index 000000000..0ff5a53f1
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true/more-crlf
@@ -0,0 +1,5 @@
+crlf
+crlf
+lf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/posix/autocrlf_true/more-crlf-utf8bom b/tests/resources/crlf_data/posix/autocrlf_true/more-crlf-utf8bom
new file mode 100644
index 000000000..ea030d3c6
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true/more-crlf-utf8bom
@@ -0,0 +1,5 @@
+crlf
+crlf
+lf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/posix/autocrlf_true/more-lf b/tests/resources/crlf_data/posix/autocrlf_true/more-lf
new file mode 100644
index 000000000..04de00b35
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true/more-lf
@@ -0,0 +1,5 @@
+lf
+lf
+crlf
+lf
+lf
diff --git a/tests/resources/crlf_data/posix/autocrlf_true/more-lf-utf8bom b/tests/resources/crlf_data/posix/autocrlf_true/more-lf-utf8bom
new file mode 100644
index 000000000..dc88e3b91
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true/more-lf-utf8bom
@@ -0,0 +1,5 @@
+lf
+lf
+crlf
+lf
+lf
diff --git a/tests/resources/crlf_data/posix/autocrlf_true/zero-byte b/tests/resources/crlf_data/posix/autocrlf_true/zero-byte
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/tests/resources/crlf_data/posix/autocrlf_true/zero-byte
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,-crlf/all-crlf b/tests/resources/crlf_data/windows/autocrlf_false,-crlf/all-crlf
new file mode 100644
index 000000000..a9a2e8913
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,-crlf/all-crlf
@@ -0,0 +1,4 @@
+crlf
+crlf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,-crlf/all-crlf-utf8bom b/tests/resources/crlf_data/windows/autocrlf_false,-crlf/all-crlf-utf8bom
new file mode 100644
index 000000000..0aa76e474
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,-crlf/all-crlf-utf8bom
@@ -0,0 +1,4 @@
+crlf
+crlf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,-crlf/all-lf b/tests/resources/crlf_data/windows/autocrlf_false,-crlf/all-lf
new file mode 100644
index 000000000..799770d1c
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,-crlf/all-lf
@@ -0,0 +1,5 @@
+lf
+lf
+lf
+lf
+lf
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,-crlf/all-lf-utf8bom b/tests/resources/crlf_data/windows/autocrlf_false,-crlf/all-lf-utf8bom
new file mode 100644
index 000000000..7cce67e58
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,-crlf/all-lf-utf8bom
@@ -0,0 +1,5 @@
+lf
+lf
+lf
+lf
+lf
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,-crlf/binary-all-crlf b/tests/resources/crlf_data/windows/autocrlf_false,-crlf/binary-all-crlf
new file mode 100644
index 000000000..85340755c
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,-crlf/binary-all-crlf
@@ -0,0 +1,4 @@
+one
+two
+three
+four
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,-crlf/binary-all-lf b/tests/resources/crlf_data/windows/autocrlf_false,-crlf/binary-all-lf
new file mode 100644
index 000000000..af6fcf6da
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,-crlf/binary-all-lf
@@ -0,0 +1,4 @@
+one
+two
+three
+four
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,-crlf/binary-mixed-lf-cr b/tests/resources/crlf_data/windows/autocrlf_false,-crlf/binary-mixed-lf-cr
new file mode 100644
index 000000000..203555c56
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,-crlf/binary-mixed-lf-cr
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,-crlf/binary-mixed-lf-cr-crlf b/tests/resources/crlf_data/windows/autocrlf_false,-crlf/binary-mixed-lf-cr-crlf
new file mode 100644
index 000000000..aaf083a9c
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,-crlf/binary-mixed-lf-cr-crlf
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,-crlf/few-utf8-chars-crlf b/tests/resources/crlf_data/windows/autocrlf_false,-crlf/few-utf8-chars-crlf
new file mode 100644
index 000000000..0e0528888
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,-crlf/few-utf8-chars-crlf
@@ -0,0 +1,22 @@
+⚽The rest is ASCII01.
+The rest is ASCII02.
+The rest is ASCII03.
+The rest is ASCII04.
+The rest is ASCII05.
+The rest is ASCII06.
+The rest is ASCII07.
+The rest is ASCII08.
+The rest is ASCII09.
+The rest is ASCII10.
+The rest is ASCII11.
+The rest is ASCII12.
+The rest is ASCII13.
+The rest is ASCII14.
+The rest is ASCII15.
+The rest is ASCII16.
+The rest is ASCII17.
+The rest is ASCII18.
+The rest is ASCII19.
+The rest is ASCII20.
+The rest is ASCII21.
+The rest is ASCII22.
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,-crlf/few-utf8-chars-lf b/tests/resources/crlf_data/windows/autocrlf_false,-crlf/few-utf8-chars-lf
new file mode 100644
index 000000000..f4d25b796
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,-crlf/few-utf8-chars-lf
@@ -0,0 +1,22 @@
+⚽The rest is ASCII01.
+The rest is ASCII02.
+The rest is ASCII03.
+The rest is ASCII04.
+The rest is ASCII05.
+The rest is ASCII06.
+The rest is ASCII07.
+The rest is ASCII08.
+The rest is ASCII09.
+The rest is ASCII10.
+The rest is ASCII11.
+The rest is ASCII12.
+The rest is ASCII13.
+The rest is ASCII14.
+The rest is ASCII15.
+The rest is ASCII16.
+The rest is ASCII17.
+The rest is ASCII18.
+The rest is ASCII19.
+The rest is ASCII20.
+The rest is ASCII21.
+The rest is ASCII22.
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,-crlf/many-utf8-chars-crlf b/tests/resources/crlf_data/windows/autocrlf_false,-crlf/many-utf8-chars-crlf
new file mode 100644
index 000000000..cd574f5a2
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,-crlf/many-utf8-chars-crlf
@@ -0,0 +1,4 @@
+Lets sing!
+♫♪♬♩
+Eat food
+🍅🍕
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,-crlf/many-utf8-chars-lf b/tests/resources/crlf_data/windows/autocrlf_false,-crlf/many-utf8-chars-lf
new file mode 100644
index 000000000..9a6c3533f
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,-crlf/many-utf8-chars-lf
@@ -0,0 +1,4 @@
+Lets sing!
+♫♪♬♩
+Eat food
+🍅🍕
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,-crlf/mixed-lf-cr b/tests/resources/crlf_data/windows/autocrlf_false,-crlf/mixed-lf-cr
new file mode 100644
index 000000000..d11e7ef63
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,-crlf/mixed-lf-cr
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,-crlf/mixed-lf-cr-crlf b/tests/resources/crlf_data/windows/autocrlf_false,-crlf/mixed-lf-cr-crlf
new file mode 100644
index 000000000..417786fc3
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,-crlf/mixed-lf-cr-crlf
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,-crlf/more-crlf b/tests/resources/crlf_data/windows/autocrlf_false,-crlf/more-crlf
new file mode 100644
index 000000000..0ff5a53f1
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,-crlf/more-crlf
@@ -0,0 +1,5 @@
+crlf
+crlf
+lf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,-crlf/more-crlf-utf8bom b/tests/resources/crlf_data/windows/autocrlf_false,-crlf/more-crlf-utf8bom
new file mode 100644
index 000000000..ea030d3c6
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,-crlf/more-crlf-utf8bom
@@ -0,0 +1,5 @@
+crlf
+crlf
+lf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,-crlf/more-lf b/tests/resources/crlf_data/windows/autocrlf_false,-crlf/more-lf
new file mode 100644
index 000000000..04de00b35
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,-crlf/more-lf
@@ -0,0 +1,5 @@
+lf
+lf
+crlf
+lf
+lf
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,-crlf/more-lf-utf8bom b/tests/resources/crlf_data/windows/autocrlf_false,-crlf/more-lf-utf8bom
new file mode 100644
index 000000000..dc88e3b91
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,-crlf/more-lf-utf8bom
@@ -0,0 +1,5 @@
+lf
+lf
+crlf
+lf
+lf
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,-crlf/zero-byte b/tests/resources/crlf_data/windows/autocrlf_false,-crlf/zero-byte
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,-crlf/zero-byte
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,-text/all-crlf b/tests/resources/crlf_data/windows/autocrlf_false,-text/all-crlf
new file mode 100644
index 000000000..a9a2e8913
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,-text/all-crlf
@@ -0,0 +1,4 @@
+crlf
+crlf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,-text/all-crlf-utf8bom b/tests/resources/crlf_data/windows/autocrlf_false,-text/all-crlf-utf8bom
new file mode 100644
index 000000000..0aa76e474
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,-text/all-crlf-utf8bom
@@ -0,0 +1,4 @@
+crlf
+crlf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,-text/all-lf b/tests/resources/crlf_data/windows/autocrlf_false,-text/all-lf
new file mode 100644
index 000000000..799770d1c
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,-text/all-lf
@@ -0,0 +1,5 @@
+lf
+lf
+lf
+lf
+lf
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,-text/all-lf-utf8bom b/tests/resources/crlf_data/windows/autocrlf_false,-text/all-lf-utf8bom
new file mode 100644
index 000000000..7cce67e58
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,-text/all-lf-utf8bom
@@ -0,0 +1,5 @@
+lf
+lf
+lf
+lf
+lf
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,-text/binary-all-crlf b/tests/resources/crlf_data/windows/autocrlf_false,-text/binary-all-crlf
new file mode 100644
index 000000000..85340755c
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,-text/binary-all-crlf
@@ -0,0 +1,4 @@
+one
+two
+three
+four
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,-text/binary-all-lf b/tests/resources/crlf_data/windows/autocrlf_false,-text/binary-all-lf
new file mode 100644
index 000000000..af6fcf6da
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,-text/binary-all-lf
@@ -0,0 +1,4 @@
+one
+two
+three
+four
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,-text/binary-mixed-lf-cr b/tests/resources/crlf_data/windows/autocrlf_false,-text/binary-mixed-lf-cr
new file mode 100644
index 000000000..203555c56
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,-text/binary-mixed-lf-cr
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,-text/binary-mixed-lf-cr-crlf b/tests/resources/crlf_data/windows/autocrlf_false,-text/binary-mixed-lf-cr-crlf
new file mode 100644
index 000000000..aaf083a9c
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,-text/binary-mixed-lf-cr-crlf
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,-text/few-utf8-chars-crlf b/tests/resources/crlf_data/windows/autocrlf_false,-text/few-utf8-chars-crlf
new file mode 100644
index 000000000..0e0528888
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,-text/few-utf8-chars-crlf
@@ -0,0 +1,22 @@
+⚽The rest is ASCII01.
+The rest is ASCII02.
+The rest is ASCII03.
+The rest is ASCII04.
+The rest is ASCII05.
+The rest is ASCII06.
+The rest is ASCII07.
+The rest is ASCII08.
+The rest is ASCII09.
+The rest is ASCII10.
+The rest is ASCII11.
+The rest is ASCII12.
+The rest is ASCII13.
+The rest is ASCII14.
+The rest is ASCII15.
+The rest is ASCII16.
+The rest is ASCII17.
+The rest is ASCII18.
+The rest is ASCII19.
+The rest is ASCII20.
+The rest is ASCII21.
+The rest is ASCII22.
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,-text/few-utf8-chars-lf b/tests/resources/crlf_data/windows/autocrlf_false,-text/few-utf8-chars-lf
new file mode 100644
index 000000000..f4d25b796
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,-text/few-utf8-chars-lf
@@ -0,0 +1,22 @@
+⚽The rest is ASCII01.
+The rest is ASCII02.
+The rest is ASCII03.
+The rest is ASCII04.
+The rest is ASCII05.
+The rest is ASCII06.
+The rest is ASCII07.
+The rest is ASCII08.
+The rest is ASCII09.
+The rest is ASCII10.
+The rest is ASCII11.
+The rest is ASCII12.
+The rest is ASCII13.
+The rest is ASCII14.
+The rest is ASCII15.
+The rest is ASCII16.
+The rest is ASCII17.
+The rest is ASCII18.
+The rest is ASCII19.
+The rest is ASCII20.
+The rest is ASCII21.
+The rest is ASCII22.
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,-text/many-utf8-chars-crlf b/tests/resources/crlf_data/windows/autocrlf_false,-text/many-utf8-chars-crlf
new file mode 100644
index 000000000..cd574f5a2
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,-text/many-utf8-chars-crlf
@@ -0,0 +1,4 @@
+Lets sing!
+♫♪♬♩
+Eat food
+🍅🍕
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,-text/many-utf8-chars-lf b/tests/resources/crlf_data/windows/autocrlf_false,-text/many-utf8-chars-lf
new file mode 100644
index 000000000..9a6c3533f
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,-text/many-utf8-chars-lf
@@ -0,0 +1,4 @@
+Lets sing!
+♫♪♬♩
+Eat food
+🍅🍕
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,-text/mixed-lf-cr b/tests/resources/crlf_data/windows/autocrlf_false,-text/mixed-lf-cr
new file mode 100644
index 000000000..d11e7ef63
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,-text/mixed-lf-cr
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,-text/mixed-lf-cr-crlf b/tests/resources/crlf_data/windows/autocrlf_false,-text/mixed-lf-cr-crlf
new file mode 100644
index 000000000..417786fc3
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,-text/mixed-lf-cr-crlf
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,-text/more-crlf b/tests/resources/crlf_data/windows/autocrlf_false,-text/more-crlf
new file mode 100644
index 000000000..0ff5a53f1
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,-text/more-crlf
@@ -0,0 +1,5 @@
+crlf
+crlf
+lf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,-text/more-crlf-utf8bom b/tests/resources/crlf_data/windows/autocrlf_false,-text/more-crlf-utf8bom
new file mode 100644
index 000000000..ea030d3c6
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,-text/more-crlf-utf8bom
@@ -0,0 +1,5 @@
+crlf
+crlf
+lf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,-text/more-lf b/tests/resources/crlf_data/windows/autocrlf_false,-text/more-lf
new file mode 100644
index 000000000..04de00b35
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,-text/more-lf
@@ -0,0 +1,5 @@
+lf
+lf
+crlf
+lf
+lf
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,-text/more-lf-utf8bom b/tests/resources/crlf_data/windows/autocrlf_false,-text/more-lf-utf8bom
new file mode 100644
index 000000000..dc88e3b91
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,-text/more-lf-utf8bom
@@ -0,0 +1,5 @@
+lf
+lf
+crlf
+lf
+lf
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,-text/zero-byte b/tests/resources/crlf_data/windows/autocrlf_false,-text/zero-byte
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,-text/zero-byte
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,crlf/all-crlf b/tests/resources/crlf_data/windows/autocrlf_false,crlf/all-crlf
new file mode 100644
index 000000000..a9a2e8913
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,crlf/all-crlf
@@ -0,0 +1,4 @@
+crlf
+crlf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,crlf/all-crlf-utf8bom b/tests/resources/crlf_data/windows/autocrlf_false,crlf/all-crlf-utf8bom
new file mode 100644
index 000000000..0aa76e474
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,crlf/all-crlf-utf8bom
@@ -0,0 +1,4 @@
+crlf
+crlf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,crlf/all-lf b/tests/resources/crlf_data/windows/autocrlf_false,crlf/all-lf
new file mode 100644
index 000000000..f557a02d8
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,crlf/all-lf
@@ -0,0 +1,5 @@
+lf
+lf
+lf
+lf
+lf
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,crlf/all-lf-utf8bom b/tests/resources/crlf_data/windows/autocrlf_false,crlf/all-lf-utf8bom
new file mode 100644
index 000000000..381cfe630
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,crlf/all-lf-utf8bom
@@ -0,0 +1,5 @@
+lf
+lf
+lf
+lf
+lf
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,crlf/binary-all-crlf b/tests/resources/crlf_data/windows/autocrlf_false,crlf/binary-all-crlf
new file mode 100644
index 000000000..85340755c
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,crlf/binary-all-crlf
@@ -0,0 +1,4 @@
+one
+two
+three
+four
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,crlf/binary-all-lf b/tests/resources/crlf_data/windows/autocrlf_false,crlf/binary-all-lf
new file mode 100644
index 000000000..85340755c
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,crlf/binary-all-lf
@@ -0,0 +1,4 @@
+one
+two
+three
+four
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,crlf/binary-mixed-lf-cr b/tests/resources/crlf_data/windows/autocrlf_false,crlf/binary-mixed-lf-cr
new file mode 100644
index 000000000..fd2abfa9d
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,crlf/binary-mixed-lf-cr
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,crlf/binary-mixed-lf-cr-crlf b/tests/resources/crlf_data/windows/autocrlf_false,crlf/binary-mixed-lf-cr-crlf
new file mode 100644
index 000000000..fd2abfa9d
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,crlf/binary-mixed-lf-cr-crlf
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,crlf/few-utf8-chars-crlf b/tests/resources/crlf_data/windows/autocrlf_false,crlf/few-utf8-chars-crlf
new file mode 100644
index 000000000..0e0528888
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,crlf/few-utf8-chars-crlf
@@ -0,0 +1,22 @@
+⚽The rest is ASCII01.
+The rest is ASCII02.
+The rest is ASCII03.
+The rest is ASCII04.
+The rest is ASCII05.
+The rest is ASCII06.
+The rest is ASCII07.
+The rest is ASCII08.
+The rest is ASCII09.
+The rest is ASCII10.
+The rest is ASCII11.
+The rest is ASCII12.
+The rest is ASCII13.
+The rest is ASCII14.
+The rest is ASCII15.
+The rest is ASCII16.
+The rest is ASCII17.
+The rest is ASCII18.
+The rest is ASCII19.
+The rest is ASCII20.
+The rest is ASCII21.
+The rest is ASCII22.
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,crlf/few-utf8-chars-lf b/tests/resources/crlf_data/windows/autocrlf_false,crlf/few-utf8-chars-lf
new file mode 100644
index 000000000..0e0528888
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,crlf/few-utf8-chars-lf
@@ -0,0 +1,22 @@
+⚽The rest is ASCII01.
+The rest is ASCII02.
+The rest is ASCII03.
+The rest is ASCII04.
+The rest is ASCII05.
+The rest is ASCII06.
+The rest is ASCII07.
+The rest is ASCII08.
+The rest is ASCII09.
+The rest is ASCII10.
+The rest is ASCII11.
+The rest is ASCII12.
+The rest is ASCII13.
+The rest is ASCII14.
+The rest is ASCII15.
+The rest is ASCII16.
+The rest is ASCII17.
+The rest is ASCII18.
+The rest is ASCII19.
+The rest is ASCII20.
+The rest is ASCII21.
+The rest is ASCII22.
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,crlf/many-utf8-chars-crlf b/tests/resources/crlf_data/windows/autocrlf_false,crlf/many-utf8-chars-crlf
new file mode 100644
index 000000000..cd574f5a2
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,crlf/many-utf8-chars-crlf
@@ -0,0 +1,4 @@
+Lets sing!
+♫♪♬♩
+Eat food
+🍅🍕
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,crlf/many-utf8-chars-lf b/tests/resources/crlf_data/windows/autocrlf_false,crlf/many-utf8-chars-lf
new file mode 100644
index 000000000..cd574f5a2
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,crlf/many-utf8-chars-lf
@@ -0,0 +1,4 @@
+Lets sing!
+♫♪♬♩
+Eat food
+🍅🍕
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,crlf/mixed-lf-cr b/tests/resources/crlf_data/windows/autocrlf_false,crlf/mixed-lf-cr
new file mode 100644
index 000000000..df8c0f680
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,crlf/mixed-lf-cr
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,crlf/mixed-lf-cr-crlf b/tests/resources/crlf_data/windows/autocrlf_false,crlf/mixed-lf-cr-crlf
new file mode 100644
index 000000000..df8c0f680
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,crlf/mixed-lf-cr-crlf
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,crlf/more-crlf b/tests/resources/crlf_data/windows/autocrlf_false,crlf/more-crlf
new file mode 100644
index 000000000..e682c3077
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,crlf/more-crlf
@@ -0,0 +1,5 @@
+crlf
+crlf
+lf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,crlf/more-crlf-utf8bom b/tests/resources/crlf_data/windows/autocrlf_false,crlf/more-crlf-utf8bom
new file mode 100644
index 000000000..2e1220cbb
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,crlf/more-crlf-utf8bom
@@ -0,0 +1,5 @@
+crlf
+crlf
+lf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,crlf/more-lf b/tests/resources/crlf_data/windows/autocrlf_false,crlf/more-lf
new file mode 100644
index 000000000..6da5b0c7e
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,crlf/more-lf
@@ -0,0 +1,5 @@
+lf
+lf
+crlf
+lf
+lf
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,crlf/more-lf-utf8bom b/tests/resources/crlf_data/windows/autocrlf_false,crlf/more-lf-utf8bom
new file mode 100644
index 000000000..3fa59c809
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,crlf/more-lf-utf8bom
@@ -0,0 +1,5 @@
+lf
+lf
+crlf
+lf
+lf
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,crlf/zero-byte b/tests/resources/crlf_data/windows/autocrlf_false,crlf/zero-byte
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,crlf/zero-byte
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,eol_crlf/all-crlf b/tests/resources/crlf_data/windows/autocrlf_false,eol_crlf/all-crlf
new file mode 100644
index 000000000..a9a2e8913
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,eol_crlf/all-crlf
@@ -0,0 +1,4 @@
+crlf
+crlf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,eol_crlf/all-crlf-utf8bom b/tests/resources/crlf_data/windows/autocrlf_false,eol_crlf/all-crlf-utf8bom
new file mode 100644
index 000000000..0aa76e474
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,eol_crlf/all-crlf-utf8bom
@@ -0,0 +1,4 @@
+crlf
+crlf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,eol_crlf/all-lf b/tests/resources/crlf_data/windows/autocrlf_false,eol_crlf/all-lf
new file mode 100644
index 000000000..f557a02d8
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,eol_crlf/all-lf
@@ -0,0 +1,5 @@
+lf
+lf
+lf
+lf
+lf
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,eol_crlf/all-lf-utf8bom b/tests/resources/crlf_data/windows/autocrlf_false,eol_crlf/all-lf-utf8bom
new file mode 100644
index 000000000..381cfe630
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,eol_crlf/all-lf-utf8bom
@@ -0,0 +1,5 @@
+lf
+lf
+lf
+lf
+lf
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,eol_crlf/binary-all-crlf b/tests/resources/crlf_data/windows/autocrlf_false,eol_crlf/binary-all-crlf
new file mode 100644
index 000000000..85340755c
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,eol_crlf/binary-all-crlf
@@ -0,0 +1,4 @@
+one
+two
+three
+four
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,eol_crlf/binary-all-lf b/tests/resources/crlf_data/windows/autocrlf_false,eol_crlf/binary-all-lf
new file mode 100644
index 000000000..85340755c
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,eol_crlf/binary-all-lf
@@ -0,0 +1,4 @@
+one
+two
+three
+four
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,eol_crlf/binary-mixed-lf-cr b/tests/resources/crlf_data/windows/autocrlf_false,eol_crlf/binary-mixed-lf-cr
new file mode 100644
index 000000000..fd2abfa9d
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,eol_crlf/binary-mixed-lf-cr
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,eol_crlf/binary-mixed-lf-cr-crlf b/tests/resources/crlf_data/windows/autocrlf_false,eol_crlf/binary-mixed-lf-cr-crlf
new file mode 100644
index 000000000..fd2abfa9d
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,eol_crlf/binary-mixed-lf-cr-crlf
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,eol_crlf/few-utf8-chars-crlf b/tests/resources/crlf_data/windows/autocrlf_false,eol_crlf/few-utf8-chars-crlf
new file mode 100644
index 000000000..0e0528888
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,eol_crlf/few-utf8-chars-crlf
@@ -0,0 +1,22 @@
+⚽The rest is ASCII01.
+The rest is ASCII02.
+The rest is ASCII03.
+The rest is ASCII04.
+The rest is ASCII05.
+The rest is ASCII06.
+The rest is ASCII07.
+The rest is ASCII08.
+The rest is ASCII09.
+The rest is ASCII10.
+The rest is ASCII11.
+The rest is ASCII12.
+The rest is ASCII13.
+The rest is ASCII14.
+The rest is ASCII15.
+The rest is ASCII16.
+The rest is ASCII17.
+The rest is ASCII18.
+The rest is ASCII19.
+The rest is ASCII20.
+The rest is ASCII21.
+The rest is ASCII22.
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,eol_crlf/few-utf8-chars-lf b/tests/resources/crlf_data/windows/autocrlf_false,eol_crlf/few-utf8-chars-lf
new file mode 100644
index 000000000..0e0528888
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,eol_crlf/few-utf8-chars-lf
@@ -0,0 +1,22 @@
+⚽The rest is ASCII01.
+The rest is ASCII02.
+The rest is ASCII03.
+The rest is ASCII04.
+The rest is ASCII05.
+The rest is ASCII06.
+The rest is ASCII07.
+The rest is ASCII08.
+The rest is ASCII09.
+The rest is ASCII10.
+The rest is ASCII11.
+The rest is ASCII12.
+The rest is ASCII13.
+The rest is ASCII14.
+The rest is ASCII15.
+The rest is ASCII16.
+The rest is ASCII17.
+The rest is ASCII18.
+The rest is ASCII19.
+The rest is ASCII20.
+The rest is ASCII21.
+The rest is ASCII22.
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,eol_crlf/many-utf8-chars-crlf b/tests/resources/crlf_data/windows/autocrlf_false,eol_crlf/many-utf8-chars-crlf
new file mode 100644
index 000000000..cd574f5a2
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,eol_crlf/many-utf8-chars-crlf
@@ -0,0 +1,4 @@
+Lets sing!
+♫♪♬♩
+Eat food
+🍅🍕
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,eol_crlf/many-utf8-chars-lf b/tests/resources/crlf_data/windows/autocrlf_false,eol_crlf/many-utf8-chars-lf
new file mode 100644
index 000000000..cd574f5a2
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,eol_crlf/many-utf8-chars-lf
@@ -0,0 +1,4 @@
+Lets sing!
+♫♪♬♩
+Eat food
+🍅🍕
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,eol_crlf/mixed-lf-cr b/tests/resources/crlf_data/windows/autocrlf_false,eol_crlf/mixed-lf-cr
new file mode 100644
index 000000000..df8c0f680
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,eol_crlf/mixed-lf-cr
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,eol_crlf/mixed-lf-cr-crlf b/tests/resources/crlf_data/windows/autocrlf_false,eol_crlf/mixed-lf-cr-crlf
new file mode 100644
index 000000000..df8c0f680
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,eol_crlf/mixed-lf-cr-crlf
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,eol_crlf/more-crlf b/tests/resources/crlf_data/windows/autocrlf_false,eol_crlf/more-crlf
new file mode 100644
index 000000000..e682c3077
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,eol_crlf/more-crlf
@@ -0,0 +1,5 @@
+crlf
+crlf
+lf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,eol_crlf/more-crlf-utf8bom b/tests/resources/crlf_data/windows/autocrlf_false,eol_crlf/more-crlf-utf8bom
new file mode 100644
index 000000000..2e1220cbb
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,eol_crlf/more-crlf-utf8bom
@@ -0,0 +1,5 @@
+crlf
+crlf
+lf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,eol_crlf/more-lf b/tests/resources/crlf_data/windows/autocrlf_false,eol_crlf/more-lf
new file mode 100644
index 000000000..6da5b0c7e
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,eol_crlf/more-lf
@@ -0,0 +1,5 @@
+lf
+lf
+crlf
+lf
+lf
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,eol_crlf/more-lf-utf8bom b/tests/resources/crlf_data/windows/autocrlf_false,eol_crlf/more-lf-utf8bom
new file mode 100644
index 000000000..3fa59c809
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,eol_crlf/more-lf-utf8bom
@@ -0,0 +1,5 @@
+lf
+lf
+crlf
+lf
+lf
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,eol_crlf/zero-byte b/tests/resources/crlf_data/windows/autocrlf_false,eol_crlf/zero-byte
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,eol_crlf/zero-byte
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,eol_lf/all-crlf b/tests/resources/crlf_data/windows/autocrlf_false,eol_lf/all-crlf
new file mode 100644
index 000000000..a9a2e8913
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,eol_lf/all-crlf
@@ -0,0 +1,4 @@
+crlf
+crlf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,eol_lf/all-crlf-utf8bom b/tests/resources/crlf_data/windows/autocrlf_false,eol_lf/all-crlf-utf8bom
new file mode 100644
index 000000000..0aa76e474
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,eol_lf/all-crlf-utf8bom
@@ -0,0 +1,4 @@
+crlf
+crlf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,eol_lf/all-lf b/tests/resources/crlf_data/windows/autocrlf_false,eol_lf/all-lf
new file mode 100644
index 000000000..799770d1c
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,eol_lf/all-lf
@@ -0,0 +1,5 @@
+lf
+lf
+lf
+lf
+lf
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,eol_lf/all-lf-utf8bom b/tests/resources/crlf_data/windows/autocrlf_false,eol_lf/all-lf-utf8bom
new file mode 100644
index 000000000..7cce67e58
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,eol_lf/all-lf-utf8bom
@@ -0,0 +1,5 @@
+lf
+lf
+lf
+lf
+lf
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,eol_lf/binary-all-crlf b/tests/resources/crlf_data/windows/autocrlf_false,eol_lf/binary-all-crlf
new file mode 100644
index 000000000..85340755c
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,eol_lf/binary-all-crlf
@@ -0,0 +1,4 @@
+one
+two
+three
+four
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,eol_lf/binary-all-lf b/tests/resources/crlf_data/windows/autocrlf_false,eol_lf/binary-all-lf
new file mode 100644
index 000000000..af6fcf6da
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,eol_lf/binary-all-lf
@@ -0,0 +1,4 @@
+one
+two
+three
+four
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,eol_lf/binary-mixed-lf-cr b/tests/resources/crlf_data/windows/autocrlf_false,eol_lf/binary-mixed-lf-cr
new file mode 100644
index 000000000..203555c56
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,eol_lf/binary-mixed-lf-cr
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,eol_lf/binary-mixed-lf-cr-crlf b/tests/resources/crlf_data/windows/autocrlf_false,eol_lf/binary-mixed-lf-cr-crlf
new file mode 100644
index 000000000..aaf083a9c
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,eol_lf/binary-mixed-lf-cr-crlf
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,eol_lf/few-utf8-chars-crlf b/tests/resources/crlf_data/windows/autocrlf_false,eol_lf/few-utf8-chars-crlf
new file mode 100644
index 000000000..0e0528888
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,eol_lf/few-utf8-chars-crlf
@@ -0,0 +1,22 @@
+⚽The rest is ASCII01.
+The rest is ASCII02.
+The rest is ASCII03.
+The rest is ASCII04.
+The rest is ASCII05.
+The rest is ASCII06.
+The rest is ASCII07.
+The rest is ASCII08.
+The rest is ASCII09.
+The rest is ASCII10.
+The rest is ASCII11.
+The rest is ASCII12.
+The rest is ASCII13.
+The rest is ASCII14.
+The rest is ASCII15.
+The rest is ASCII16.
+The rest is ASCII17.
+The rest is ASCII18.
+The rest is ASCII19.
+The rest is ASCII20.
+The rest is ASCII21.
+The rest is ASCII22.
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,eol_lf/few-utf8-chars-lf b/tests/resources/crlf_data/windows/autocrlf_false,eol_lf/few-utf8-chars-lf
new file mode 100644
index 000000000..f4d25b796
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,eol_lf/few-utf8-chars-lf
@@ -0,0 +1,22 @@
+⚽The rest is ASCII01.
+The rest is ASCII02.
+The rest is ASCII03.
+The rest is ASCII04.
+The rest is ASCII05.
+The rest is ASCII06.
+The rest is ASCII07.
+The rest is ASCII08.
+The rest is ASCII09.
+The rest is ASCII10.
+The rest is ASCII11.
+The rest is ASCII12.
+The rest is ASCII13.
+The rest is ASCII14.
+The rest is ASCII15.
+The rest is ASCII16.
+The rest is ASCII17.
+The rest is ASCII18.
+The rest is ASCII19.
+The rest is ASCII20.
+The rest is ASCII21.
+The rest is ASCII22.
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,eol_lf/many-utf8-chars-crlf b/tests/resources/crlf_data/windows/autocrlf_false,eol_lf/many-utf8-chars-crlf
new file mode 100644
index 000000000..cd574f5a2
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,eol_lf/many-utf8-chars-crlf
@@ -0,0 +1,4 @@
+Lets sing!
+♫♪♬♩
+Eat food
+🍅🍕
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,eol_lf/many-utf8-chars-lf b/tests/resources/crlf_data/windows/autocrlf_false,eol_lf/many-utf8-chars-lf
new file mode 100644
index 000000000..9a6c3533f
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,eol_lf/many-utf8-chars-lf
@@ -0,0 +1,4 @@
+Lets sing!
+♫♪♬♩
+Eat food
+🍅🍕
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,eol_lf/mixed-lf-cr b/tests/resources/crlf_data/windows/autocrlf_false,eol_lf/mixed-lf-cr
new file mode 100644
index 000000000..d11e7ef63
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,eol_lf/mixed-lf-cr
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,eol_lf/mixed-lf-cr-crlf b/tests/resources/crlf_data/windows/autocrlf_false,eol_lf/mixed-lf-cr-crlf
new file mode 100644
index 000000000..417786fc3
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,eol_lf/mixed-lf-cr-crlf
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,eol_lf/more-crlf b/tests/resources/crlf_data/windows/autocrlf_false,eol_lf/more-crlf
new file mode 100644
index 000000000..0ff5a53f1
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,eol_lf/more-crlf
@@ -0,0 +1,5 @@
+crlf
+crlf
+lf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,eol_lf/more-crlf-utf8bom b/tests/resources/crlf_data/windows/autocrlf_false,eol_lf/more-crlf-utf8bom
new file mode 100644
index 000000000..ea030d3c6
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,eol_lf/more-crlf-utf8bom
@@ -0,0 +1,5 @@
+crlf
+crlf
+lf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,eol_lf/more-lf b/tests/resources/crlf_data/windows/autocrlf_false,eol_lf/more-lf
new file mode 100644
index 000000000..04de00b35
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,eol_lf/more-lf
@@ -0,0 +1,5 @@
+lf
+lf
+crlf
+lf
+lf
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,eol_lf/more-lf-utf8bom b/tests/resources/crlf_data/windows/autocrlf_false,eol_lf/more-lf-utf8bom
new file mode 100644
index 000000000..dc88e3b91
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,eol_lf/more-lf-utf8bom
@@ -0,0 +1,5 @@
+lf
+lf
+crlf
+lf
+lf
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,eol_lf/zero-byte b/tests/resources/crlf_data/windows/autocrlf_false,eol_lf/zero-byte
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,eol_lf/zero-byte
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,text,eol_crlf/all-crlf b/tests/resources/crlf_data/windows/autocrlf_false,text,eol_crlf/all-crlf
new file mode 100644
index 000000000..a9a2e8913
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,text,eol_crlf/all-crlf
@@ -0,0 +1,4 @@
+crlf
+crlf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,text,eol_crlf/all-crlf-utf8bom b/tests/resources/crlf_data/windows/autocrlf_false,text,eol_crlf/all-crlf-utf8bom
new file mode 100644
index 000000000..0aa76e474
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,text,eol_crlf/all-crlf-utf8bom
@@ -0,0 +1,4 @@
+crlf
+crlf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,text,eol_crlf/all-lf b/tests/resources/crlf_data/windows/autocrlf_false,text,eol_crlf/all-lf
new file mode 100644
index 000000000..f557a02d8
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,text,eol_crlf/all-lf
@@ -0,0 +1,5 @@
+lf
+lf
+lf
+lf
+lf
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,text,eol_crlf/all-lf-utf8bom b/tests/resources/crlf_data/windows/autocrlf_false,text,eol_crlf/all-lf-utf8bom
new file mode 100644
index 000000000..381cfe630
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,text,eol_crlf/all-lf-utf8bom
@@ -0,0 +1,5 @@
+lf
+lf
+lf
+lf
+lf
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,text,eol_crlf/binary-all-crlf b/tests/resources/crlf_data/windows/autocrlf_false,text,eol_crlf/binary-all-crlf
new file mode 100644
index 000000000..85340755c
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,text,eol_crlf/binary-all-crlf
@@ -0,0 +1,4 @@
+one
+two
+three
+four
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,text,eol_crlf/binary-all-lf b/tests/resources/crlf_data/windows/autocrlf_false,text,eol_crlf/binary-all-lf
new file mode 100644
index 000000000..85340755c
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,text,eol_crlf/binary-all-lf
@@ -0,0 +1,4 @@
+one
+two
+three
+four
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,text,eol_crlf/binary-mixed-lf-cr b/tests/resources/crlf_data/windows/autocrlf_false,text,eol_crlf/binary-mixed-lf-cr
new file mode 100644
index 000000000..fd2abfa9d
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,text,eol_crlf/binary-mixed-lf-cr
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,text,eol_crlf/binary-mixed-lf-cr-crlf b/tests/resources/crlf_data/windows/autocrlf_false,text,eol_crlf/binary-mixed-lf-cr-crlf
new file mode 100644
index 000000000..fd2abfa9d
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,text,eol_crlf/binary-mixed-lf-cr-crlf
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,text,eol_crlf/few-utf8-chars-crlf b/tests/resources/crlf_data/windows/autocrlf_false,text,eol_crlf/few-utf8-chars-crlf
new file mode 100644
index 000000000..0e0528888
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,text,eol_crlf/few-utf8-chars-crlf
@@ -0,0 +1,22 @@
+⚽The rest is ASCII01.
+The rest is ASCII02.
+The rest is ASCII03.
+The rest is ASCII04.
+The rest is ASCII05.
+The rest is ASCII06.
+The rest is ASCII07.
+The rest is ASCII08.
+The rest is ASCII09.
+The rest is ASCII10.
+The rest is ASCII11.
+The rest is ASCII12.
+The rest is ASCII13.
+The rest is ASCII14.
+The rest is ASCII15.
+The rest is ASCII16.
+The rest is ASCII17.
+The rest is ASCII18.
+The rest is ASCII19.
+The rest is ASCII20.
+The rest is ASCII21.
+The rest is ASCII22.
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,text,eol_crlf/few-utf8-chars-lf b/tests/resources/crlf_data/windows/autocrlf_false,text,eol_crlf/few-utf8-chars-lf
new file mode 100644
index 000000000..0e0528888
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,text,eol_crlf/few-utf8-chars-lf
@@ -0,0 +1,22 @@
+⚽The rest is ASCII01.
+The rest is ASCII02.
+The rest is ASCII03.
+The rest is ASCII04.
+The rest is ASCII05.
+The rest is ASCII06.
+The rest is ASCII07.
+The rest is ASCII08.
+The rest is ASCII09.
+The rest is ASCII10.
+The rest is ASCII11.
+The rest is ASCII12.
+The rest is ASCII13.
+The rest is ASCII14.
+The rest is ASCII15.
+The rest is ASCII16.
+The rest is ASCII17.
+The rest is ASCII18.
+The rest is ASCII19.
+The rest is ASCII20.
+The rest is ASCII21.
+The rest is ASCII22.
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,text,eol_crlf/many-utf8-chars-crlf b/tests/resources/crlf_data/windows/autocrlf_false,text,eol_crlf/many-utf8-chars-crlf
new file mode 100644
index 000000000..cd574f5a2
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,text,eol_crlf/many-utf8-chars-crlf
@@ -0,0 +1,4 @@
+Lets sing!
+♫♪♬♩
+Eat food
+🍅🍕
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,text,eol_crlf/many-utf8-chars-lf b/tests/resources/crlf_data/windows/autocrlf_false,text,eol_crlf/many-utf8-chars-lf
new file mode 100644
index 000000000..cd574f5a2
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,text,eol_crlf/many-utf8-chars-lf
@@ -0,0 +1,4 @@
+Lets sing!
+♫♪♬♩
+Eat food
+🍅🍕
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,text,eol_crlf/mixed-lf-cr b/tests/resources/crlf_data/windows/autocrlf_false,text,eol_crlf/mixed-lf-cr
new file mode 100644
index 000000000..df8c0f680
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,text,eol_crlf/mixed-lf-cr
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,text,eol_crlf/mixed-lf-cr-crlf b/tests/resources/crlf_data/windows/autocrlf_false,text,eol_crlf/mixed-lf-cr-crlf
new file mode 100644
index 000000000..df8c0f680
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,text,eol_crlf/mixed-lf-cr-crlf
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,text,eol_crlf/more-crlf b/tests/resources/crlf_data/windows/autocrlf_false,text,eol_crlf/more-crlf
new file mode 100644
index 000000000..e682c3077
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,text,eol_crlf/more-crlf
@@ -0,0 +1,5 @@
+crlf
+crlf
+lf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,text,eol_crlf/more-crlf-utf8bom b/tests/resources/crlf_data/windows/autocrlf_false,text,eol_crlf/more-crlf-utf8bom
new file mode 100644
index 000000000..2e1220cbb
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,text,eol_crlf/more-crlf-utf8bom
@@ -0,0 +1,5 @@
+crlf
+crlf
+lf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,text,eol_crlf/more-lf b/tests/resources/crlf_data/windows/autocrlf_false,text,eol_crlf/more-lf
new file mode 100644
index 000000000..6da5b0c7e
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,text,eol_crlf/more-lf
@@ -0,0 +1,5 @@
+lf
+lf
+crlf
+lf
+lf
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,text,eol_crlf/more-lf-utf8bom b/tests/resources/crlf_data/windows/autocrlf_false,text,eol_crlf/more-lf-utf8bom
new file mode 100644
index 000000000..3fa59c809
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,text,eol_crlf/more-lf-utf8bom
@@ -0,0 +1,5 @@
+lf
+lf
+crlf
+lf
+lf
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,text,eol_crlf/zero-byte b/tests/resources/crlf_data/windows/autocrlf_false,text,eol_crlf/zero-byte
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,text,eol_crlf/zero-byte
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,text,eol_lf/all-crlf b/tests/resources/crlf_data/windows/autocrlf_false,text,eol_lf/all-crlf
new file mode 100644
index 000000000..a9a2e8913
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,text,eol_lf/all-crlf
@@ -0,0 +1,4 @@
+crlf
+crlf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,text,eol_lf/all-crlf-utf8bom b/tests/resources/crlf_data/windows/autocrlf_false,text,eol_lf/all-crlf-utf8bom
new file mode 100644
index 000000000..0aa76e474
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,text,eol_lf/all-crlf-utf8bom
@@ -0,0 +1,4 @@
+crlf
+crlf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,text,eol_lf/all-lf b/tests/resources/crlf_data/windows/autocrlf_false,text,eol_lf/all-lf
new file mode 100644
index 000000000..799770d1c
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,text,eol_lf/all-lf
@@ -0,0 +1,5 @@
+lf
+lf
+lf
+lf
+lf
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,text,eol_lf/all-lf-utf8bom b/tests/resources/crlf_data/windows/autocrlf_false,text,eol_lf/all-lf-utf8bom
new file mode 100644
index 000000000..7cce67e58
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,text,eol_lf/all-lf-utf8bom
@@ -0,0 +1,5 @@
+lf
+lf
+lf
+lf
+lf
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,text,eol_lf/binary-all-crlf b/tests/resources/crlf_data/windows/autocrlf_false,text,eol_lf/binary-all-crlf
new file mode 100644
index 000000000..85340755c
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,text,eol_lf/binary-all-crlf
@@ -0,0 +1,4 @@
+one
+two
+three
+four
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,text,eol_lf/binary-all-lf b/tests/resources/crlf_data/windows/autocrlf_false,text,eol_lf/binary-all-lf
new file mode 100644
index 000000000..af6fcf6da
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,text,eol_lf/binary-all-lf
@@ -0,0 +1,4 @@
+one
+two
+three
+four
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,text,eol_lf/binary-mixed-lf-cr b/tests/resources/crlf_data/windows/autocrlf_false,text,eol_lf/binary-mixed-lf-cr
new file mode 100644
index 000000000..203555c56
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,text,eol_lf/binary-mixed-lf-cr
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,text,eol_lf/binary-mixed-lf-cr-crlf b/tests/resources/crlf_data/windows/autocrlf_false,text,eol_lf/binary-mixed-lf-cr-crlf
new file mode 100644
index 000000000..aaf083a9c
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,text,eol_lf/binary-mixed-lf-cr-crlf
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,text,eol_lf/few-utf8-chars-crlf b/tests/resources/crlf_data/windows/autocrlf_false,text,eol_lf/few-utf8-chars-crlf
new file mode 100644
index 000000000..0e0528888
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,text,eol_lf/few-utf8-chars-crlf
@@ -0,0 +1,22 @@
+⚽The rest is ASCII01.
+The rest is ASCII02.
+The rest is ASCII03.
+The rest is ASCII04.
+The rest is ASCII05.
+The rest is ASCII06.
+The rest is ASCII07.
+The rest is ASCII08.
+The rest is ASCII09.
+The rest is ASCII10.
+The rest is ASCII11.
+The rest is ASCII12.
+The rest is ASCII13.
+The rest is ASCII14.
+The rest is ASCII15.
+The rest is ASCII16.
+The rest is ASCII17.
+The rest is ASCII18.
+The rest is ASCII19.
+The rest is ASCII20.
+The rest is ASCII21.
+The rest is ASCII22.
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,text,eol_lf/few-utf8-chars-lf b/tests/resources/crlf_data/windows/autocrlf_false,text,eol_lf/few-utf8-chars-lf
new file mode 100644
index 000000000..f4d25b796
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,text,eol_lf/few-utf8-chars-lf
@@ -0,0 +1,22 @@
+⚽The rest is ASCII01.
+The rest is ASCII02.
+The rest is ASCII03.
+The rest is ASCII04.
+The rest is ASCII05.
+The rest is ASCII06.
+The rest is ASCII07.
+The rest is ASCII08.
+The rest is ASCII09.
+The rest is ASCII10.
+The rest is ASCII11.
+The rest is ASCII12.
+The rest is ASCII13.
+The rest is ASCII14.
+The rest is ASCII15.
+The rest is ASCII16.
+The rest is ASCII17.
+The rest is ASCII18.
+The rest is ASCII19.
+The rest is ASCII20.
+The rest is ASCII21.
+The rest is ASCII22.
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,text,eol_lf/many-utf8-chars-crlf b/tests/resources/crlf_data/windows/autocrlf_false,text,eol_lf/many-utf8-chars-crlf
new file mode 100644
index 000000000..cd574f5a2
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,text,eol_lf/many-utf8-chars-crlf
@@ -0,0 +1,4 @@
+Lets sing!
+♫♪♬♩
+Eat food
+🍅🍕
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,text,eol_lf/many-utf8-chars-lf b/tests/resources/crlf_data/windows/autocrlf_false,text,eol_lf/many-utf8-chars-lf
new file mode 100644
index 000000000..9a6c3533f
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,text,eol_lf/many-utf8-chars-lf
@@ -0,0 +1,4 @@
+Lets sing!
+♫♪♬♩
+Eat food
+🍅🍕
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,text,eol_lf/mixed-lf-cr b/tests/resources/crlf_data/windows/autocrlf_false,text,eol_lf/mixed-lf-cr
new file mode 100644
index 000000000..d11e7ef63
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,text,eol_lf/mixed-lf-cr
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,text,eol_lf/mixed-lf-cr-crlf b/tests/resources/crlf_data/windows/autocrlf_false,text,eol_lf/mixed-lf-cr-crlf
new file mode 100644
index 000000000..417786fc3
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,text,eol_lf/mixed-lf-cr-crlf
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,text,eol_lf/more-crlf b/tests/resources/crlf_data/windows/autocrlf_false,text,eol_lf/more-crlf
new file mode 100644
index 000000000..0ff5a53f1
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,text,eol_lf/more-crlf
@@ -0,0 +1,5 @@
+crlf
+crlf
+lf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,text,eol_lf/more-crlf-utf8bom b/tests/resources/crlf_data/windows/autocrlf_false,text,eol_lf/more-crlf-utf8bom
new file mode 100644
index 000000000..ea030d3c6
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,text,eol_lf/more-crlf-utf8bom
@@ -0,0 +1,5 @@
+crlf
+crlf
+lf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,text,eol_lf/more-lf b/tests/resources/crlf_data/windows/autocrlf_false,text,eol_lf/more-lf
new file mode 100644
index 000000000..04de00b35
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,text,eol_lf/more-lf
@@ -0,0 +1,5 @@
+lf
+lf
+crlf
+lf
+lf
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,text,eol_lf/more-lf-utf8bom b/tests/resources/crlf_data/windows/autocrlf_false,text,eol_lf/more-lf-utf8bom
new file mode 100644
index 000000000..dc88e3b91
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,text,eol_lf/more-lf-utf8bom
@@ -0,0 +1,5 @@
+lf
+lf
+crlf
+lf
+lf
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,text,eol_lf/zero-byte b/tests/resources/crlf_data/windows/autocrlf_false,text,eol_lf/zero-byte
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,text,eol_lf/zero-byte
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,text/all-crlf b/tests/resources/crlf_data/windows/autocrlf_false,text/all-crlf
new file mode 100644
index 000000000..a9a2e8913
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,text/all-crlf
@@ -0,0 +1,4 @@
+crlf
+crlf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,text/all-crlf-utf8bom b/tests/resources/crlf_data/windows/autocrlf_false,text/all-crlf-utf8bom
new file mode 100644
index 000000000..0aa76e474
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,text/all-crlf-utf8bom
@@ -0,0 +1,4 @@
+crlf
+crlf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,text/all-lf b/tests/resources/crlf_data/windows/autocrlf_false,text/all-lf
new file mode 100644
index 000000000..f557a02d8
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,text/all-lf
@@ -0,0 +1,5 @@
+lf
+lf
+lf
+lf
+lf
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,text/all-lf-utf8bom b/tests/resources/crlf_data/windows/autocrlf_false,text/all-lf-utf8bom
new file mode 100644
index 000000000..381cfe630
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,text/all-lf-utf8bom
@@ -0,0 +1,5 @@
+lf
+lf
+lf
+lf
+lf
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,text/binary-all-crlf b/tests/resources/crlf_data/windows/autocrlf_false,text/binary-all-crlf
new file mode 100644
index 000000000..85340755c
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,text/binary-all-crlf
@@ -0,0 +1,4 @@
+one
+two
+three
+four
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,text/binary-all-lf b/tests/resources/crlf_data/windows/autocrlf_false,text/binary-all-lf
new file mode 100644
index 000000000..85340755c
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,text/binary-all-lf
@@ -0,0 +1,4 @@
+one
+two
+three
+four
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,text/binary-mixed-lf-cr b/tests/resources/crlf_data/windows/autocrlf_false,text/binary-mixed-lf-cr
new file mode 100644
index 000000000..fd2abfa9d
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,text/binary-mixed-lf-cr
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,text/binary-mixed-lf-cr-crlf b/tests/resources/crlf_data/windows/autocrlf_false,text/binary-mixed-lf-cr-crlf
new file mode 100644
index 000000000..fd2abfa9d
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,text/binary-mixed-lf-cr-crlf
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,text/few-utf8-chars-crlf b/tests/resources/crlf_data/windows/autocrlf_false,text/few-utf8-chars-crlf
new file mode 100644
index 000000000..0e0528888
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,text/few-utf8-chars-crlf
@@ -0,0 +1,22 @@
+⚽The rest is ASCII01.
+The rest is ASCII02.
+The rest is ASCII03.
+The rest is ASCII04.
+The rest is ASCII05.
+The rest is ASCII06.
+The rest is ASCII07.
+The rest is ASCII08.
+The rest is ASCII09.
+The rest is ASCII10.
+The rest is ASCII11.
+The rest is ASCII12.
+The rest is ASCII13.
+The rest is ASCII14.
+The rest is ASCII15.
+The rest is ASCII16.
+The rest is ASCII17.
+The rest is ASCII18.
+The rest is ASCII19.
+The rest is ASCII20.
+The rest is ASCII21.
+The rest is ASCII22.
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,text/few-utf8-chars-lf b/tests/resources/crlf_data/windows/autocrlf_false,text/few-utf8-chars-lf
new file mode 100644
index 000000000..0e0528888
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,text/few-utf8-chars-lf
@@ -0,0 +1,22 @@
+⚽The rest is ASCII01.
+The rest is ASCII02.
+The rest is ASCII03.
+The rest is ASCII04.
+The rest is ASCII05.
+The rest is ASCII06.
+The rest is ASCII07.
+The rest is ASCII08.
+The rest is ASCII09.
+The rest is ASCII10.
+The rest is ASCII11.
+The rest is ASCII12.
+The rest is ASCII13.
+The rest is ASCII14.
+The rest is ASCII15.
+The rest is ASCII16.
+The rest is ASCII17.
+The rest is ASCII18.
+The rest is ASCII19.
+The rest is ASCII20.
+The rest is ASCII21.
+The rest is ASCII22.
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,text/many-utf8-chars-crlf b/tests/resources/crlf_data/windows/autocrlf_false,text/many-utf8-chars-crlf
new file mode 100644
index 000000000..cd574f5a2
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,text/many-utf8-chars-crlf
@@ -0,0 +1,4 @@
+Lets sing!
+♫♪♬♩
+Eat food
+🍅🍕
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,text/many-utf8-chars-lf b/tests/resources/crlf_data/windows/autocrlf_false,text/many-utf8-chars-lf
new file mode 100644
index 000000000..cd574f5a2
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,text/many-utf8-chars-lf
@@ -0,0 +1,4 @@
+Lets sing!
+♫♪♬♩
+Eat food
+🍅🍕
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,text/mixed-lf-cr b/tests/resources/crlf_data/windows/autocrlf_false,text/mixed-lf-cr
new file mode 100644
index 000000000..df8c0f680
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,text/mixed-lf-cr
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,text/mixed-lf-cr-crlf b/tests/resources/crlf_data/windows/autocrlf_false,text/mixed-lf-cr-crlf
new file mode 100644
index 000000000..df8c0f680
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,text/mixed-lf-cr-crlf
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,text/more-crlf b/tests/resources/crlf_data/windows/autocrlf_false,text/more-crlf
new file mode 100644
index 000000000..e682c3077
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,text/more-crlf
@@ -0,0 +1,5 @@
+crlf
+crlf
+lf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,text/more-crlf-utf8bom b/tests/resources/crlf_data/windows/autocrlf_false,text/more-crlf-utf8bom
new file mode 100644
index 000000000..2e1220cbb
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,text/more-crlf-utf8bom
@@ -0,0 +1,5 @@
+crlf
+crlf
+lf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,text/more-lf b/tests/resources/crlf_data/windows/autocrlf_false,text/more-lf
new file mode 100644
index 000000000..6da5b0c7e
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,text/more-lf
@@ -0,0 +1,5 @@
+lf
+lf
+crlf
+lf
+lf
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,text/more-lf-utf8bom b/tests/resources/crlf_data/windows/autocrlf_false,text/more-lf-utf8bom
new file mode 100644
index 000000000..3fa59c809
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,text/more-lf-utf8bom
@@ -0,0 +1,5 @@
+lf
+lf
+crlf
+lf
+lf
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,text/zero-byte b/tests/resources/crlf_data/windows/autocrlf_false,text/zero-byte
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,text/zero-byte
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,text_auto,eol_crlf/all-crlf b/tests/resources/crlf_data/windows/autocrlf_false,text_auto,eol_crlf/all-crlf
new file mode 100644
index 000000000..a9a2e8913
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,text_auto,eol_crlf/all-crlf
@@ -0,0 +1,4 @@
+crlf
+crlf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,text_auto,eol_crlf/all-crlf-utf8bom b/tests/resources/crlf_data/windows/autocrlf_false,text_auto,eol_crlf/all-crlf-utf8bom
new file mode 100644
index 000000000..0aa76e474
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,text_auto,eol_crlf/all-crlf-utf8bom
@@ -0,0 +1,4 @@
+crlf
+crlf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,text_auto,eol_crlf/all-lf b/tests/resources/crlf_data/windows/autocrlf_false,text_auto,eol_crlf/all-lf
new file mode 100644
index 000000000..f557a02d8
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,text_auto,eol_crlf/all-lf
@@ -0,0 +1,5 @@
+lf
+lf
+lf
+lf
+lf
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,text_auto,eol_crlf/all-lf-utf8bom b/tests/resources/crlf_data/windows/autocrlf_false,text_auto,eol_crlf/all-lf-utf8bom
new file mode 100644
index 000000000..381cfe630
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,text_auto,eol_crlf/all-lf-utf8bom
@@ -0,0 +1,5 @@
+lf
+lf
+lf
+lf
+lf
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,text_auto,eol_crlf/binary-all-crlf b/tests/resources/crlf_data/windows/autocrlf_false,text_auto,eol_crlf/binary-all-crlf
new file mode 100644
index 000000000..85340755c
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,text_auto,eol_crlf/binary-all-crlf
@@ -0,0 +1,4 @@
+one
+two
+three
+four
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,text_auto,eol_crlf/binary-all-lf b/tests/resources/crlf_data/windows/autocrlf_false,text_auto,eol_crlf/binary-all-lf
new file mode 100644
index 000000000..85340755c
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,text_auto,eol_crlf/binary-all-lf
@@ -0,0 +1,4 @@
+one
+two
+three
+four
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,text_auto,eol_crlf/binary-mixed-lf-cr b/tests/resources/crlf_data/windows/autocrlf_false,text_auto,eol_crlf/binary-mixed-lf-cr
new file mode 100644
index 000000000..fd2abfa9d
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,text_auto,eol_crlf/binary-mixed-lf-cr
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,text_auto,eol_crlf/binary-mixed-lf-cr-crlf b/tests/resources/crlf_data/windows/autocrlf_false,text_auto,eol_crlf/binary-mixed-lf-cr-crlf
new file mode 100644
index 000000000..fd2abfa9d
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,text_auto,eol_crlf/binary-mixed-lf-cr-crlf
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,text_auto,eol_crlf/few-utf8-chars-crlf b/tests/resources/crlf_data/windows/autocrlf_false,text_auto,eol_crlf/few-utf8-chars-crlf
new file mode 100644
index 000000000..0e0528888
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,text_auto,eol_crlf/few-utf8-chars-crlf
@@ -0,0 +1,22 @@
+⚽The rest is ASCII01.
+The rest is ASCII02.
+The rest is ASCII03.
+The rest is ASCII04.
+The rest is ASCII05.
+The rest is ASCII06.
+The rest is ASCII07.
+The rest is ASCII08.
+The rest is ASCII09.
+The rest is ASCII10.
+The rest is ASCII11.
+The rest is ASCII12.
+The rest is ASCII13.
+The rest is ASCII14.
+The rest is ASCII15.
+The rest is ASCII16.
+The rest is ASCII17.
+The rest is ASCII18.
+The rest is ASCII19.
+The rest is ASCII20.
+The rest is ASCII21.
+The rest is ASCII22.
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,text_auto,eol_crlf/few-utf8-chars-lf b/tests/resources/crlf_data/windows/autocrlf_false,text_auto,eol_crlf/few-utf8-chars-lf
new file mode 100644
index 000000000..0e0528888
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,text_auto,eol_crlf/few-utf8-chars-lf
@@ -0,0 +1,22 @@
+⚽The rest is ASCII01.
+The rest is ASCII02.
+The rest is ASCII03.
+The rest is ASCII04.
+The rest is ASCII05.
+The rest is ASCII06.
+The rest is ASCII07.
+The rest is ASCII08.
+The rest is ASCII09.
+The rest is ASCII10.
+The rest is ASCII11.
+The rest is ASCII12.
+The rest is ASCII13.
+The rest is ASCII14.
+The rest is ASCII15.
+The rest is ASCII16.
+The rest is ASCII17.
+The rest is ASCII18.
+The rest is ASCII19.
+The rest is ASCII20.
+The rest is ASCII21.
+The rest is ASCII22.
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,text_auto,eol_crlf/many-utf8-chars-crlf b/tests/resources/crlf_data/windows/autocrlf_false,text_auto,eol_crlf/many-utf8-chars-crlf
new file mode 100644
index 000000000..cd574f5a2
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,text_auto,eol_crlf/many-utf8-chars-crlf
@@ -0,0 +1,4 @@
+Lets sing!
+♫♪♬♩
+Eat food
+🍅🍕
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,text_auto,eol_crlf/many-utf8-chars-lf b/tests/resources/crlf_data/windows/autocrlf_false,text_auto,eol_crlf/many-utf8-chars-lf
new file mode 100644
index 000000000..cd574f5a2
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,text_auto,eol_crlf/many-utf8-chars-lf
@@ -0,0 +1,4 @@
+Lets sing!
+♫♪♬♩
+Eat food
+🍅🍕
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,text_auto,eol_crlf/mixed-lf-cr b/tests/resources/crlf_data/windows/autocrlf_false,text_auto,eol_crlf/mixed-lf-cr
new file mode 100644
index 000000000..df8c0f680
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,text_auto,eol_crlf/mixed-lf-cr
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,text_auto,eol_crlf/mixed-lf-cr-crlf b/tests/resources/crlf_data/windows/autocrlf_false,text_auto,eol_crlf/mixed-lf-cr-crlf
new file mode 100644
index 000000000..df8c0f680
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,text_auto,eol_crlf/mixed-lf-cr-crlf
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,text_auto,eol_crlf/more-crlf b/tests/resources/crlf_data/windows/autocrlf_false,text_auto,eol_crlf/more-crlf
new file mode 100644
index 000000000..e682c3077
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,text_auto,eol_crlf/more-crlf
@@ -0,0 +1,5 @@
+crlf
+crlf
+lf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,text_auto,eol_crlf/more-crlf-utf8bom b/tests/resources/crlf_data/windows/autocrlf_false,text_auto,eol_crlf/more-crlf-utf8bom
new file mode 100644
index 000000000..2e1220cbb
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,text_auto,eol_crlf/more-crlf-utf8bom
@@ -0,0 +1,5 @@
+crlf
+crlf
+lf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,text_auto,eol_crlf/more-lf b/tests/resources/crlf_data/windows/autocrlf_false,text_auto,eol_crlf/more-lf
new file mode 100644
index 000000000..6da5b0c7e
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,text_auto,eol_crlf/more-lf
@@ -0,0 +1,5 @@
+lf
+lf
+crlf
+lf
+lf
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,text_auto,eol_crlf/more-lf-utf8bom b/tests/resources/crlf_data/windows/autocrlf_false,text_auto,eol_crlf/more-lf-utf8bom
new file mode 100644
index 000000000..3fa59c809
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,text_auto,eol_crlf/more-lf-utf8bom
@@ -0,0 +1,5 @@
+lf
+lf
+crlf
+lf
+lf
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,text_auto,eol_crlf/zero-byte b/tests/resources/crlf_data/windows/autocrlf_false,text_auto,eol_crlf/zero-byte
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,text_auto,eol_crlf/zero-byte
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,text_auto,eol_lf/all-crlf b/tests/resources/crlf_data/windows/autocrlf_false,text_auto,eol_lf/all-crlf
new file mode 100644
index 000000000..a9a2e8913
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,text_auto,eol_lf/all-crlf
@@ -0,0 +1,4 @@
+crlf
+crlf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,text_auto,eol_lf/all-crlf-utf8bom b/tests/resources/crlf_data/windows/autocrlf_false,text_auto,eol_lf/all-crlf-utf8bom
new file mode 100644
index 000000000..0aa76e474
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,text_auto,eol_lf/all-crlf-utf8bom
@@ -0,0 +1,4 @@
+crlf
+crlf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,text_auto,eol_lf/all-lf b/tests/resources/crlf_data/windows/autocrlf_false,text_auto,eol_lf/all-lf
new file mode 100644
index 000000000..799770d1c
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,text_auto,eol_lf/all-lf
@@ -0,0 +1,5 @@
+lf
+lf
+lf
+lf
+lf
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,text_auto,eol_lf/all-lf-utf8bom b/tests/resources/crlf_data/windows/autocrlf_false,text_auto,eol_lf/all-lf-utf8bom
new file mode 100644
index 000000000..7cce67e58
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,text_auto,eol_lf/all-lf-utf8bom
@@ -0,0 +1,5 @@
+lf
+lf
+lf
+lf
+lf
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,text_auto,eol_lf/binary-all-crlf b/tests/resources/crlf_data/windows/autocrlf_false,text_auto,eol_lf/binary-all-crlf
new file mode 100644
index 000000000..85340755c
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,text_auto,eol_lf/binary-all-crlf
@@ -0,0 +1,4 @@
+one
+two
+three
+four
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,text_auto,eol_lf/binary-all-lf b/tests/resources/crlf_data/windows/autocrlf_false,text_auto,eol_lf/binary-all-lf
new file mode 100644
index 000000000..af6fcf6da
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,text_auto,eol_lf/binary-all-lf
@@ -0,0 +1,4 @@
+one
+two
+three
+four
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,text_auto,eol_lf/binary-mixed-lf-cr b/tests/resources/crlf_data/windows/autocrlf_false,text_auto,eol_lf/binary-mixed-lf-cr
new file mode 100644
index 000000000..203555c56
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,text_auto,eol_lf/binary-mixed-lf-cr
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,text_auto,eol_lf/binary-mixed-lf-cr-crlf b/tests/resources/crlf_data/windows/autocrlf_false,text_auto,eol_lf/binary-mixed-lf-cr-crlf
new file mode 100644
index 000000000..aaf083a9c
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,text_auto,eol_lf/binary-mixed-lf-cr-crlf
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,text_auto,eol_lf/few-utf8-chars-crlf b/tests/resources/crlf_data/windows/autocrlf_false,text_auto,eol_lf/few-utf8-chars-crlf
new file mode 100644
index 000000000..0e0528888
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,text_auto,eol_lf/few-utf8-chars-crlf
@@ -0,0 +1,22 @@
+⚽The rest is ASCII01.
+The rest is ASCII02.
+The rest is ASCII03.
+The rest is ASCII04.
+The rest is ASCII05.
+The rest is ASCII06.
+The rest is ASCII07.
+The rest is ASCII08.
+The rest is ASCII09.
+The rest is ASCII10.
+The rest is ASCII11.
+The rest is ASCII12.
+The rest is ASCII13.
+The rest is ASCII14.
+The rest is ASCII15.
+The rest is ASCII16.
+The rest is ASCII17.
+The rest is ASCII18.
+The rest is ASCII19.
+The rest is ASCII20.
+The rest is ASCII21.
+The rest is ASCII22.
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,text_auto,eol_lf/few-utf8-chars-lf b/tests/resources/crlf_data/windows/autocrlf_false,text_auto,eol_lf/few-utf8-chars-lf
new file mode 100644
index 000000000..f4d25b796
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,text_auto,eol_lf/few-utf8-chars-lf
@@ -0,0 +1,22 @@
+⚽The rest is ASCII01.
+The rest is ASCII02.
+The rest is ASCII03.
+The rest is ASCII04.
+The rest is ASCII05.
+The rest is ASCII06.
+The rest is ASCII07.
+The rest is ASCII08.
+The rest is ASCII09.
+The rest is ASCII10.
+The rest is ASCII11.
+The rest is ASCII12.
+The rest is ASCII13.
+The rest is ASCII14.
+The rest is ASCII15.
+The rest is ASCII16.
+The rest is ASCII17.
+The rest is ASCII18.
+The rest is ASCII19.
+The rest is ASCII20.
+The rest is ASCII21.
+The rest is ASCII22.
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,text_auto,eol_lf/many-utf8-chars-crlf b/tests/resources/crlf_data/windows/autocrlf_false,text_auto,eol_lf/many-utf8-chars-crlf
new file mode 100644
index 000000000..cd574f5a2
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,text_auto,eol_lf/many-utf8-chars-crlf
@@ -0,0 +1,4 @@
+Lets sing!
+♫♪♬♩
+Eat food
+🍅🍕
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,text_auto,eol_lf/many-utf8-chars-lf b/tests/resources/crlf_data/windows/autocrlf_false,text_auto,eol_lf/many-utf8-chars-lf
new file mode 100644
index 000000000..9a6c3533f
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,text_auto,eol_lf/many-utf8-chars-lf
@@ -0,0 +1,4 @@
+Lets sing!
+♫♪♬♩
+Eat food
+🍅🍕
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,text_auto,eol_lf/mixed-lf-cr b/tests/resources/crlf_data/windows/autocrlf_false,text_auto,eol_lf/mixed-lf-cr
new file mode 100644
index 000000000..d11e7ef63
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,text_auto,eol_lf/mixed-lf-cr
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,text_auto,eol_lf/mixed-lf-cr-crlf b/tests/resources/crlf_data/windows/autocrlf_false,text_auto,eol_lf/mixed-lf-cr-crlf
new file mode 100644
index 000000000..417786fc3
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,text_auto,eol_lf/mixed-lf-cr-crlf
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,text_auto,eol_lf/more-crlf b/tests/resources/crlf_data/windows/autocrlf_false,text_auto,eol_lf/more-crlf
new file mode 100644
index 000000000..0ff5a53f1
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,text_auto,eol_lf/more-crlf
@@ -0,0 +1,5 @@
+crlf
+crlf
+lf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,text_auto,eol_lf/more-crlf-utf8bom b/tests/resources/crlf_data/windows/autocrlf_false,text_auto,eol_lf/more-crlf-utf8bom
new file mode 100644
index 000000000..ea030d3c6
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,text_auto,eol_lf/more-crlf-utf8bom
@@ -0,0 +1,5 @@
+crlf
+crlf
+lf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,text_auto,eol_lf/more-lf b/tests/resources/crlf_data/windows/autocrlf_false,text_auto,eol_lf/more-lf
new file mode 100644
index 000000000..04de00b35
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,text_auto,eol_lf/more-lf
@@ -0,0 +1,5 @@
+lf
+lf
+crlf
+lf
+lf
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,text_auto,eol_lf/more-lf-utf8bom b/tests/resources/crlf_data/windows/autocrlf_false,text_auto,eol_lf/more-lf-utf8bom
new file mode 100644
index 000000000..dc88e3b91
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,text_auto,eol_lf/more-lf-utf8bom
@@ -0,0 +1,5 @@
+lf
+lf
+crlf
+lf
+lf
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,text_auto,eol_lf/zero-byte b/tests/resources/crlf_data/windows/autocrlf_false,text_auto,eol_lf/zero-byte
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,text_auto,eol_lf/zero-byte
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,text_auto/all-crlf b/tests/resources/crlf_data/windows/autocrlf_false,text_auto/all-crlf
new file mode 100644
index 000000000..a9a2e8913
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,text_auto/all-crlf
@@ -0,0 +1,4 @@
+crlf
+crlf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,text_auto/all-crlf-utf8bom b/tests/resources/crlf_data/windows/autocrlf_false,text_auto/all-crlf-utf8bom
new file mode 100644
index 000000000..0aa76e474
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,text_auto/all-crlf-utf8bom
@@ -0,0 +1,4 @@
+crlf
+crlf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,text_auto/all-lf b/tests/resources/crlf_data/windows/autocrlf_false,text_auto/all-lf
new file mode 100644
index 000000000..f557a02d8
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,text_auto/all-lf
@@ -0,0 +1,5 @@
+lf
+lf
+lf
+lf
+lf
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,text_auto/all-lf-utf8bom b/tests/resources/crlf_data/windows/autocrlf_false,text_auto/all-lf-utf8bom
new file mode 100644
index 000000000..381cfe630
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,text_auto/all-lf-utf8bom
@@ -0,0 +1,5 @@
+lf
+lf
+lf
+lf
+lf
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,text_auto/binary-all-crlf b/tests/resources/crlf_data/windows/autocrlf_false,text_auto/binary-all-crlf
new file mode 100644
index 000000000..85340755c
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,text_auto/binary-all-crlf
@@ -0,0 +1,4 @@
+one
+two
+three
+four
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,text_auto/binary-all-lf b/tests/resources/crlf_data/windows/autocrlf_false,text_auto/binary-all-lf
new file mode 100644
index 000000000..af6fcf6da
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,text_auto/binary-all-lf
@@ -0,0 +1,4 @@
+one
+two
+three
+four
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,text_auto/binary-mixed-lf-cr b/tests/resources/crlf_data/windows/autocrlf_false,text_auto/binary-mixed-lf-cr
new file mode 100644
index 000000000..203555c56
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,text_auto/binary-mixed-lf-cr
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,text_auto/binary-mixed-lf-cr-crlf b/tests/resources/crlf_data/windows/autocrlf_false,text_auto/binary-mixed-lf-cr-crlf
new file mode 100644
index 000000000..aaf083a9c
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,text_auto/binary-mixed-lf-cr-crlf
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,text_auto/few-utf8-chars-crlf b/tests/resources/crlf_data/windows/autocrlf_false,text_auto/few-utf8-chars-crlf
new file mode 100644
index 000000000..0e0528888
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,text_auto/few-utf8-chars-crlf
@@ -0,0 +1,22 @@
+⚽The rest is ASCII01.
+The rest is ASCII02.
+The rest is ASCII03.
+The rest is ASCII04.
+The rest is ASCII05.
+The rest is ASCII06.
+The rest is ASCII07.
+The rest is ASCII08.
+The rest is ASCII09.
+The rest is ASCII10.
+The rest is ASCII11.
+The rest is ASCII12.
+The rest is ASCII13.
+The rest is ASCII14.
+The rest is ASCII15.
+The rest is ASCII16.
+The rest is ASCII17.
+The rest is ASCII18.
+The rest is ASCII19.
+The rest is ASCII20.
+The rest is ASCII21.
+The rest is ASCII22.
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,text_auto/few-utf8-chars-lf b/tests/resources/crlf_data/windows/autocrlf_false,text_auto/few-utf8-chars-lf
new file mode 100644
index 000000000..0e0528888
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,text_auto/few-utf8-chars-lf
@@ -0,0 +1,22 @@
+⚽The rest is ASCII01.
+The rest is ASCII02.
+The rest is ASCII03.
+The rest is ASCII04.
+The rest is ASCII05.
+The rest is ASCII06.
+The rest is ASCII07.
+The rest is ASCII08.
+The rest is ASCII09.
+The rest is ASCII10.
+The rest is ASCII11.
+The rest is ASCII12.
+The rest is ASCII13.
+The rest is ASCII14.
+The rest is ASCII15.
+The rest is ASCII16.
+The rest is ASCII17.
+The rest is ASCII18.
+The rest is ASCII19.
+The rest is ASCII20.
+The rest is ASCII21.
+The rest is ASCII22.
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,text_auto/many-utf8-chars-crlf b/tests/resources/crlf_data/windows/autocrlf_false,text_auto/many-utf8-chars-crlf
new file mode 100644
index 000000000..cd574f5a2
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,text_auto/many-utf8-chars-crlf
@@ -0,0 +1,4 @@
+Lets sing!
+♫♪♬♩
+Eat food
+🍅🍕
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,text_auto/many-utf8-chars-lf b/tests/resources/crlf_data/windows/autocrlf_false,text_auto/many-utf8-chars-lf
new file mode 100644
index 000000000..cd574f5a2
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,text_auto/many-utf8-chars-lf
@@ -0,0 +1,4 @@
+Lets sing!
+♫♪♬♩
+Eat food
+🍅🍕
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,text_auto/mixed-lf-cr b/tests/resources/crlf_data/windows/autocrlf_false,text_auto/mixed-lf-cr
new file mode 100644
index 000000000..d11e7ef63
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,text_auto/mixed-lf-cr
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,text_auto/mixed-lf-cr-crlf b/tests/resources/crlf_data/windows/autocrlf_false,text_auto/mixed-lf-cr-crlf
new file mode 100644
index 000000000..417786fc3
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,text_auto/mixed-lf-cr-crlf
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,text_auto/more-crlf b/tests/resources/crlf_data/windows/autocrlf_false,text_auto/more-crlf
new file mode 100644
index 000000000..e682c3077
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,text_auto/more-crlf
@@ -0,0 +1,5 @@
+crlf
+crlf
+lf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,text_auto/more-crlf-utf8bom b/tests/resources/crlf_data/windows/autocrlf_false,text_auto/more-crlf-utf8bom
new file mode 100644
index 000000000..2e1220cbb
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,text_auto/more-crlf-utf8bom
@@ -0,0 +1,5 @@
+crlf
+crlf
+lf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,text_auto/more-lf b/tests/resources/crlf_data/windows/autocrlf_false,text_auto/more-lf
new file mode 100644
index 000000000..6da5b0c7e
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,text_auto/more-lf
@@ -0,0 +1,5 @@
+lf
+lf
+crlf
+lf
+lf
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,text_auto/more-lf-utf8bom b/tests/resources/crlf_data/windows/autocrlf_false,text_auto/more-lf-utf8bom
new file mode 100644
index 000000000..3fa59c809
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,text_auto/more-lf-utf8bom
@@ -0,0 +1,5 @@
+lf
+lf
+crlf
+lf
+lf
diff --git a/tests/resources/crlf_data/windows/autocrlf_false,text_auto/zero-byte b/tests/resources/crlf_data/windows/autocrlf_false,text_auto/zero-byte
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false,text_auto/zero-byte
diff --git a/tests/resources/crlf_data/windows/autocrlf_false/all-crlf b/tests/resources/crlf_data/windows/autocrlf_false/all-crlf
new file mode 100644
index 000000000..a9a2e8913
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false/all-crlf
@@ -0,0 +1,4 @@
+crlf
+crlf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/windows/autocrlf_false/all-crlf-utf8bom b/tests/resources/crlf_data/windows/autocrlf_false/all-crlf-utf8bom
new file mode 100644
index 000000000..0aa76e474
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false/all-crlf-utf8bom
@@ -0,0 +1,4 @@
+crlf
+crlf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/windows/autocrlf_false/all-lf b/tests/resources/crlf_data/windows/autocrlf_false/all-lf
new file mode 100644
index 000000000..799770d1c
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false/all-lf
@@ -0,0 +1,5 @@
+lf
+lf
+lf
+lf
+lf
diff --git a/tests/resources/crlf_data/windows/autocrlf_false/all-lf-utf8bom b/tests/resources/crlf_data/windows/autocrlf_false/all-lf-utf8bom
new file mode 100644
index 000000000..7cce67e58
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false/all-lf-utf8bom
@@ -0,0 +1,5 @@
+lf
+lf
+lf
+lf
+lf
diff --git a/tests/resources/crlf_data/windows/autocrlf_false/binary-all-crlf b/tests/resources/crlf_data/windows/autocrlf_false/binary-all-crlf
new file mode 100644
index 000000000..85340755c
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false/binary-all-crlf
@@ -0,0 +1,4 @@
+one
+two
+three
+four
diff --git a/tests/resources/crlf_data/windows/autocrlf_false/binary-all-lf b/tests/resources/crlf_data/windows/autocrlf_false/binary-all-lf
new file mode 100644
index 000000000..af6fcf6da
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false/binary-all-lf
@@ -0,0 +1,4 @@
+one
+two
+three
+four
diff --git a/tests/resources/crlf_data/windows/autocrlf_false/binary-mixed-lf-cr b/tests/resources/crlf_data/windows/autocrlf_false/binary-mixed-lf-cr
new file mode 100644
index 000000000..203555c56
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false/binary-mixed-lf-cr
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/windows/autocrlf_false/binary-mixed-lf-cr-crlf b/tests/resources/crlf_data/windows/autocrlf_false/binary-mixed-lf-cr-crlf
new file mode 100644
index 000000000..aaf083a9c
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false/binary-mixed-lf-cr-crlf
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/windows/autocrlf_false/few-utf8-chars-crlf b/tests/resources/crlf_data/windows/autocrlf_false/few-utf8-chars-crlf
new file mode 100644
index 000000000..0e0528888
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false/few-utf8-chars-crlf
@@ -0,0 +1,22 @@
+⚽The rest is ASCII01.
+The rest is ASCII02.
+The rest is ASCII03.
+The rest is ASCII04.
+The rest is ASCII05.
+The rest is ASCII06.
+The rest is ASCII07.
+The rest is ASCII08.
+The rest is ASCII09.
+The rest is ASCII10.
+The rest is ASCII11.
+The rest is ASCII12.
+The rest is ASCII13.
+The rest is ASCII14.
+The rest is ASCII15.
+The rest is ASCII16.
+The rest is ASCII17.
+The rest is ASCII18.
+The rest is ASCII19.
+The rest is ASCII20.
+The rest is ASCII21.
+The rest is ASCII22.
diff --git a/tests/resources/crlf_data/windows/autocrlf_false/few-utf8-chars-lf b/tests/resources/crlf_data/windows/autocrlf_false/few-utf8-chars-lf
new file mode 100644
index 000000000..f4d25b796
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false/few-utf8-chars-lf
@@ -0,0 +1,22 @@
+⚽The rest is ASCII01.
+The rest is ASCII02.
+The rest is ASCII03.
+The rest is ASCII04.
+The rest is ASCII05.
+The rest is ASCII06.
+The rest is ASCII07.
+The rest is ASCII08.
+The rest is ASCII09.
+The rest is ASCII10.
+The rest is ASCII11.
+The rest is ASCII12.
+The rest is ASCII13.
+The rest is ASCII14.
+The rest is ASCII15.
+The rest is ASCII16.
+The rest is ASCII17.
+The rest is ASCII18.
+The rest is ASCII19.
+The rest is ASCII20.
+The rest is ASCII21.
+The rest is ASCII22.
diff --git a/tests/resources/crlf_data/windows/autocrlf_false/many-utf8-chars-crlf b/tests/resources/crlf_data/windows/autocrlf_false/many-utf8-chars-crlf
new file mode 100644
index 000000000..cd574f5a2
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false/many-utf8-chars-crlf
@@ -0,0 +1,4 @@
+Lets sing!
+♫♪♬♩
+Eat food
+🍅🍕
diff --git a/tests/resources/crlf_data/windows/autocrlf_false/many-utf8-chars-lf b/tests/resources/crlf_data/windows/autocrlf_false/many-utf8-chars-lf
new file mode 100644
index 000000000..9a6c3533f
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false/many-utf8-chars-lf
@@ -0,0 +1,4 @@
+Lets sing!
+♫♪♬♩
+Eat food
+🍅🍕
diff --git a/tests/resources/crlf_data/windows/autocrlf_false/mixed-lf-cr b/tests/resources/crlf_data/windows/autocrlf_false/mixed-lf-cr
new file mode 100644
index 000000000..d11e7ef63
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false/mixed-lf-cr
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/windows/autocrlf_false/mixed-lf-cr-crlf b/tests/resources/crlf_data/windows/autocrlf_false/mixed-lf-cr-crlf
new file mode 100644
index 000000000..417786fc3
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false/mixed-lf-cr-crlf
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/windows/autocrlf_false/more-crlf b/tests/resources/crlf_data/windows/autocrlf_false/more-crlf
new file mode 100644
index 000000000..0ff5a53f1
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false/more-crlf
@@ -0,0 +1,5 @@
+crlf
+crlf
+lf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/windows/autocrlf_false/more-crlf-utf8bom b/tests/resources/crlf_data/windows/autocrlf_false/more-crlf-utf8bom
new file mode 100644
index 000000000..ea030d3c6
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false/more-crlf-utf8bom
@@ -0,0 +1,5 @@
+crlf
+crlf
+lf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/windows/autocrlf_false/more-lf b/tests/resources/crlf_data/windows/autocrlf_false/more-lf
new file mode 100644
index 000000000..04de00b35
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false/more-lf
@@ -0,0 +1,5 @@
+lf
+lf
+crlf
+lf
+lf
diff --git a/tests/resources/crlf_data/windows/autocrlf_false/more-lf-utf8bom b/tests/resources/crlf_data/windows/autocrlf_false/more-lf-utf8bom
new file mode 100644
index 000000000..dc88e3b91
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false/more-lf-utf8bom
@@ -0,0 +1,5 @@
+lf
+lf
+crlf
+lf
+lf
diff --git a/tests/resources/crlf_data/windows/autocrlf_false/zero-byte b/tests/resources/crlf_data/windows/autocrlf_false/zero-byte
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_false/zero-byte
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,-crlf/all-crlf b/tests/resources/crlf_data/windows/autocrlf_input,-crlf/all-crlf
new file mode 100644
index 000000000..a9a2e8913
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,-crlf/all-crlf
@@ -0,0 +1,4 @@
+crlf
+crlf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,-crlf/all-crlf-utf8bom b/tests/resources/crlf_data/windows/autocrlf_input,-crlf/all-crlf-utf8bom
new file mode 100644
index 000000000..0aa76e474
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,-crlf/all-crlf-utf8bom
@@ -0,0 +1,4 @@
+crlf
+crlf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,-crlf/all-lf b/tests/resources/crlf_data/windows/autocrlf_input,-crlf/all-lf
new file mode 100644
index 000000000..799770d1c
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,-crlf/all-lf
@@ -0,0 +1,5 @@
+lf
+lf
+lf
+lf
+lf
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,-crlf/all-lf-utf8bom b/tests/resources/crlf_data/windows/autocrlf_input,-crlf/all-lf-utf8bom
new file mode 100644
index 000000000..7cce67e58
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,-crlf/all-lf-utf8bom
@@ -0,0 +1,5 @@
+lf
+lf
+lf
+lf
+lf
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,-crlf/binary-all-crlf b/tests/resources/crlf_data/windows/autocrlf_input,-crlf/binary-all-crlf
new file mode 100644
index 000000000..85340755c
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,-crlf/binary-all-crlf
@@ -0,0 +1,4 @@
+one
+two
+three
+four
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,-crlf/binary-all-lf b/tests/resources/crlf_data/windows/autocrlf_input,-crlf/binary-all-lf
new file mode 100644
index 000000000..af6fcf6da
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,-crlf/binary-all-lf
@@ -0,0 +1,4 @@
+one
+two
+three
+four
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,-crlf/binary-mixed-lf-cr b/tests/resources/crlf_data/windows/autocrlf_input,-crlf/binary-mixed-lf-cr
new file mode 100644
index 000000000..203555c56
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,-crlf/binary-mixed-lf-cr
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,-crlf/binary-mixed-lf-cr-crlf b/tests/resources/crlf_data/windows/autocrlf_input,-crlf/binary-mixed-lf-cr-crlf
new file mode 100644
index 000000000..aaf083a9c
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,-crlf/binary-mixed-lf-cr-crlf
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,-crlf/few-utf8-chars-crlf b/tests/resources/crlf_data/windows/autocrlf_input,-crlf/few-utf8-chars-crlf
new file mode 100644
index 000000000..0e0528888
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,-crlf/few-utf8-chars-crlf
@@ -0,0 +1,22 @@
+⚽The rest is ASCII01.
+The rest is ASCII02.
+The rest is ASCII03.
+The rest is ASCII04.
+The rest is ASCII05.
+The rest is ASCII06.
+The rest is ASCII07.
+The rest is ASCII08.
+The rest is ASCII09.
+The rest is ASCII10.
+The rest is ASCII11.
+The rest is ASCII12.
+The rest is ASCII13.
+The rest is ASCII14.
+The rest is ASCII15.
+The rest is ASCII16.
+The rest is ASCII17.
+The rest is ASCII18.
+The rest is ASCII19.
+The rest is ASCII20.
+The rest is ASCII21.
+The rest is ASCII22.
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,-crlf/few-utf8-chars-lf b/tests/resources/crlf_data/windows/autocrlf_input,-crlf/few-utf8-chars-lf
new file mode 100644
index 000000000..f4d25b796
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,-crlf/few-utf8-chars-lf
@@ -0,0 +1,22 @@
+⚽The rest is ASCII01.
+The rest is ASCII02.
+The rest is ASCII03.
+The rest is ASCII04.
+The rest is ASCII05.
+The rest is ASCII06.
+The rest is ASCII07.
+The rest is ASCII08.
+The rest is ASCII09.
+The rest is ASCII10.
+The rest is ASCII11.
+The rest is ASCII12.
+The rest is ASCII13.
+The rest is ASCII14.
+The rest is ASCII15.
+The rest is ASCII16.
+The rest is ASCII17.
+The rest is ASCII18.
+The rest is ASCII19.
+The rest is ASCII20.
+The rest is ASCII21.
+The rest is ASCII22.
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,-crlf/many-utf8-chars-crlf b/tests/resources/crlf_data/windows/autocrlf_input,-crlf/many-utf8-chars-crlf
new file mode 100644
index 000000000..cd574f5a2
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,-crlf/many-utf8-chars-crlf
@@ -0,0 +1,4 @@
+Lets sing!
+♫♪♬♩
+Eat food
+🍅🍕
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,-crlf/many-utf8-chars-lf b/tests/resources/crlf_data/windows/autocrlf_input,-crlf/many-utf8-chars-lf
new file mode 100644
index 000000000..9a6c3533f
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,-crlf/many-utf8-chars-lf
@@ -0,0 +1,4 @@
+Lets sing!
+♫♪♬♩
+Eat food
+🍅🍕
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,-crlf/mixed-lf-cr b/tests/resources/crlf_data/windows/autocrlf_input,-crlf/mixed-lf-cr
new file mode 100644
index 000000000..d11e7ef63
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,-crlf/mixed-lf-cr
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,-crlf/mixed-lf-cr-crlf b/tests/resources/crlf_data/windows/autocrlf_input,-crlf/mixed-lf-cr-crlf
new file mode 100644
index 000000000..417786fc3
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,-crlf/mixed-lf-cr-crlf
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,-crlf/more-crlf b/tests/resources/crlf_data/windows/autocrlf_input,-crlf/more-crlf
new file mode 100644
index 000000000..0ff5a53f1
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,-crlf/more-crlf
@@ -0,0 +1,5 @@
+crlf
+crlf
+lf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,-crlf/more-crlf-utf8bom b/tests/resources/crlf_data/windows/autocrlf_input,-crlf/more-crlf-utf8bom
new file mode 100644
index 000000000..ea030d3c6
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,-crlf/more-crlf-utf8bom
@@ -0,0 +1,5 @@
+crlf
+crlf
+lf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,-crlf/more-lf b/tests/resources/crlf_data/windows/autocrlf_input,-crlf/more-lf
new file mode 100644
index 000000000..04de00b35
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,-crlf/more-lf
@@ -0,0 +1,5 @@
+lf
+lf
+crlf
+lf
+lf
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,-crlf/more-lf-utf8bom b/tests/resources/crlf_data/windows/autocrlf_input,-crlf/more-lf-utf8bom
new file mode 100644
index 000000000..dc88e3b91
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,-crlf/more-lf-utf8bom
@@ -0,0 +1,5 @@
+lf
+lf
+crlf
+lf
+lf
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,-crlf/zero-byte b/tests/resources/crlf_data/windows/autocrlf_input,-crlf/zero-byte
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,-crlf/zero-byte
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,-text/all-crlf b/tests/resources/crlf_data/windows/autocrlf_input,-text/all-crlf
new file mode 100644
index 000000000..a9a2e8913
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,-text/all-crlf
@@ -0,0 +1,4 @@
+crlf
+crlf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,-text/all-crlf-utf8bom b/tests/resources/crlf_data/windows/autocrlf_input,-text/all-crlf-utf8bom
new file mode 100644
index 000000000..0aa76e474
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,-text/all-crlf-utf8bom
@@ -0,0 +1,4 @@
+crlf
+crlf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,-text/all-lf b/tests/resources/crlf_data/windows/autocrlf_input,-text/all-lf
new file mode 100644
index 000000000..799770d1c
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,-text/all-lf
@@ -0,0 +1,5 @@
+lf
+lf
+lf
+lf
+lf
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,-text/all-lf-utf8bom b/tests/resources/crlf_data/windows/autocrlf_input,-text/all-lf-utf8bom
new file mode 100644
index 000000000..7cce67e58
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,-text/all-lf-utf8bom
@@ -0,0 +1,5 @@
+lf
+lf
+lf
+lf
+lf
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,-text/binary-all-crlf b/tests/resources/crlf_data/windows/autocrlf_input,-text/binary-all-crlf
new file mode 100644
index 000000000..85340755c
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,-text/binary-all-crlf
@@ -0,0 +1,4 @@
+one
+two
+three
+four
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,-text/binary-all-lf b/tests/resources/crlf_data/windows/autocrlf_input,-text/binary-all-lf
new file mode 100644
index 000000000..af6fcf6da
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,-text/binary-all-lf
@@ -0,0 +1,4 @@
+one
+two
+three
+four
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,-text/binary-mixed-lf-cr b/tests/resources/crlf_data/windows/autocrlf_input,-text/binary-mixed-lf-cr
new file mode 100644
index 000000000..203555c56
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,-text/binary-mixed-lf-cr
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,-text/binary-mixed-lf-cr-crlf b/tests/resources/crlf_data/windows/autocrlf_input,-text/binary-mixed-lf-cr-crlf
new file mode 100644
index 000000000..aaf083a9c
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,-text/binary-mixed-lf-cr-crlf
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,-text/few-utf8-chars-crlf b/tests/resources/crlf_data/windows/autocrlf_input,-text/few-utf8-chars-crlf
new file mode 100644
index 000000000..0e0528888
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,-text/few-utf8-chars-crlf
@@ -0,0 +1,22 @@
+⚽The rest is ASCII01.
+The rest is ASCII02.
+The rest is ASCII03.
+The rest is ASCII04.
+The rest is ASCII05.
+The rest is ASCII06.
+The rest is ASCII07.
+The rest is ASCII08.
+The rest is ASCII09.
+The rest is ASCII10.
+The rest is ASCII11.
+The rest is ASCII12.
+The rest is ASCII13.
+The rest is ASCII14.
+The rest is ASCII15.
+The rest is ASCII16.
+The rest is ASCII17.
+The rest is ASCII18.
+The rest is ASCII19.
+The rest is ASCII20.
+The rest is ASCII21.
+The rest is ASCII22.
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,-text/few-utf8-chars-lf b/tests/resources/crlf_data/windows/autocrlf_input,-text/few-utf8-chars-lf
new file mode 100644
index 000000000..f4d25b796
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,-text/few-utf8-chars-lf
@@ -0,0 +1,22 @@
+⚽The rest is ASCII01.
+The rest is ASCII02.
+The rest is ASCII03.
+The rest is ASCII04.
+The rest is ASCII05.
+The rest is ASCII06.
+The rest is ASCII07.
+The rest is ASCII08.
+The rest is ASCII09.
+The rest is ASCII10.
+The rest is ASCII11.
+The rest is ASCII12.
+The rest is ASCII13.
+The rest is ASCII14.
+The rest is ASCII15.
+The rest is ASCII16.
+The rest is ASCII17.
+The rest is ASCII18.
+The rest is ASCII19.
+The rest is ASCII20.
+The rest is ASCII21.
+The rest is ASCII22.
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,-text/many-utf8-chars-crlf b/tests/resources/crlf_data/windows/autocrlf_input,-text/many-utf8-chars-crlf
new file mode 100644
index 000000000..cd574f5a2
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,-text/many-utf8-chars-crlf
@@ -0,0 +1,4 @@
+Lets sing!
+♫♪♬♩
+Eat food
+🍅🍕
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,-text/many-utf8-chars-lf b/tests/resources/crlf_data/windows/autocrlf_input,-text/many-utf8-chars-lf
new file mode 100644
index 000000000..9a6c3533f
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,-text/many-utf8-chars-lf
@@ -0,0 +1,4 @@
+Lets sing!
+♫♪♬♩
+Eat food
+🍅🍕
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,-text/mixed-lf-cr b/tests/resources/crlf_data/windows/autocrlf_input,-text/mixed-lf-cr
new file mode 100644
index 000000000..d11e7ef63
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,-text/mixed-lf-cr
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,-text/mixed-lf-cr-crlf b/tests/resources/crlf_data/windows/autocrlf_input,-text/mixed-lf-cr-crlf
new file mode 100644
index 000000000..417786fc3
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,-text/mixed-lf-cr-crlf
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,-text/more-crlf b/tests/resources/crlf_data/windows/autocrlf_input,-text/more-crlf
new file mode 100644
index 000000000..0ff5a53f1
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,-text/more-crlf
@@ -0,0 +1,5 @@
+crlf
+crlf
+lf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,-text/more-crlf-utf8bom b/tests/resources/crlf_data/windows/autocrlf_input,-text/more-crlf-utf8bom
new file mode 100644
index 000000000..ea030d3c6
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,-text/more-crlf-utf8bom
@@ -0,0 +1,5 @@
+crlf
+crlf
+lf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,-text/more-lf b/tests/resources/crlf_data/windows/autocrlf_input,-text/more-lf
new file mode 100644
index 000000000..04de00b35
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,-text/more-lf
@@ -0,0 +1,5 @@
+lf
+lf
+crlf
+lf
+lf
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,-text/more-lf-utf8bom b/tests/resources/crlf_data/windows/autocrlf_input,-text/more-lf-utf8bom
new file mode 100644
index 000000000..dc88e3b91
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,-text/more-lf-utf8bom
@@ -0,0 +1,5 @@
+lf
+lf
+crlf
+lf
+lf
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,-text/zero-byte b/tests/resources/crlf_data/windows/autocrlf_input,-text/zero-byte
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,-text/zero-byte
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,crlf/all-crlf b/tests/resources/crlf_data/windows/autocrlf_input,crlf/all-crlf
new file mode 100644
index 000000000..a9a2e8913
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,crlf/all-crlf
@@ -0,0 +1,4 @@
+crlf
+crlf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,crlf/all-crlf-utf8bom b/tests/resources/crlf_data/windows/autocrlf_input,crlf/all-crlf-utf8bom
new file mode 100644
index 000000000..0aa76e474
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,crlf/all-crlf-utf8bom
@@ -0,0 +1,4 @@
+crlf
+crlf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,crlf/all-lf b/tests/resources/crlf_data/windows/autocrlf_input,crlf/all-lf
new file mode 100644
index 000000000..799770d1c
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,crlf/all-lf
@@ -0,0 +1,5 @@
+lf
+lf
+lf
+lf
+lf
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,crlf/all-lf-utf8bom b/tests/resources/crlf_data/windows/autocrlf_input,crlf/all-lf-utf8bom
new file mode 100644
index 000000000..7cce67e58
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,crlf/all-lf-utf8bom
@@ -0,0 +1,5 @@
+lf
+lf
+lf
+lf
+lf
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,crlf/binary-all-crlf b/tests/resources/crlf_data/windows/autocrlf_input,crlf/binary-all-crlf
new file mode 100644
index 000000000..85340755c
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,crlf/binary-all-crlf
@@ -0,0 +1,4 @@
+one
+two
+three
+four
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,crlf/binary-all-lf b/tests/resources/crlf_data/windows/autocrlf_input,crlf/binary-all-lf
new file mode 100644
index 000000000..af6fcf6da
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,crlf/binary-all-lf
@@ -0,0 +1,4 @@
+one
+two
+three
+four
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,crlf/binary-mixed-lf-cr b/tests/resources/crlf_data/windows/autocrlf_input,crlf/binary-mixed-lf-cr
new file mode 100644
index 000000000..203555c56
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,crlf/binary-mixed-lf-cr
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,crlf/binary-mixed-lf-cr-crlf b/tests/resources/crlf_data/windows/autocrlf_input,crlf/binary-mixed-lf-cr-crlf
new file mode 100644
index 000000000..aaf083a9c
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,crlf/binary-mixed-lf-cr-crlf
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,crlf/few-utf8-chars-crlf b/tests/resources/crlf_data/windows/autocrlf_input,crlf/few-utf8-chars-crlf
new file mode 100644
index 000000000..0e0528888
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,crlf/few-utf8-chars-crlf
@@ -0,0 +1,22 @@
+⚽The rest is ASCII01.
+The rest is ASCII02.
+The rest is ASCII03.
+The rest is ASCII04.
+The rest is ASCII05.
+The rest is ASCII06.
+The rest is ASCII07.
+The rest is ASCII08.
+The rest is ASCII09.
+The rest is ASCII10.
+The rest is ASCII11.
+The rest is ASCII12.
+The rest is ASCII13.
+The rest is ASCII14.
+The rest is ASCII15.
+The rest is ASCII16.
+The rest is ASCII17.
+The rest is ASCII18.
+The rest is ASCII19.
+The rest is ASCII20.
+The rest is ASCII21.
+The rest is ASCII22.
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,crlf/few-utf8-chars-lf b/tests/resources/crlf_data/windows/autocrlf_input,crlf/few-utf8-chars-lf
new file mode 100644
index 000000000..f4d25b796
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,crlf/few-utf8-chars-lf
@@ -0,0 +1,22 @@
+⚽The rest is ASCII01.
+The rest is ASCII02.
+The rest is ASCII03.
+The rest is ASCII04.
+The rest is ASCII05.
+The rest is ASCII06.
+The rest is ASCII07.
+The rest is ASCII08.
+The rest is ASCII09.
+The rest is ASCII10.
+The rest is ASCII11.
+The rest is ASCII12.
+The rest is ASCII13.
+The rest is ASCII14.
+The rest is ASCII15.
+The rest is ASCII16.
+The rest is ASCII17.
+The rest is ASCII18.
+The rest is ASCII19.
+The rest is ASCII20.
+The rest is ASCII21.
+The rest is ASCII22.
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,crlf/many-utf8-chars-crlf b/tests/resources/crlf_data/windows/autocrlf_input,crlf/many-utf8-chars-crlf
new file mode 100644
index 000000000..cd574f5a2
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,crlf/many-utf8-chars-crlf
@@ -0,0 +1,4 @@
+Lets sing!
+♫♪♬♩
+Eat food
+🍅🍕
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,crlf/many-utf8-chars-lf b/tests/resources/crlf_data/windows/autocrlf_input,crlf/many-utf8-chars-lf
new file mode 100644
index 000000000..9a6c3533f
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,crlf/many-utf8-chars-lf
@@ -0,0 +1,4 @@
+Lets sing!
+♫♪♬♩
+Eat food
+🍅🍕
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,crlf/mixed-lf-cr b/tests/resources/crlf_data/windows/autocrlf_input,crlf/mixed-lf-cr
new file mode 100644
index 000000000..d11e7ef63
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,crlf/mixed-lf-cr
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,crlf/mixed-lf-cr-crlf b/tests/resources/crlf_data/windows/autocrlf_input,crlf/mixed-lf-cr-crlf
new file mode 100644
index 000000000..417786fc3
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,crlf/mixed-lf-cr-crlf
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,crlf/more-crlf b/tests/resources/crlf_data/windows/autocrlf_input,crlf/more-crlf
new file mode 100644
index 000000000..0ff5a53f1
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,crlf/more-crlf
@@ -0,0 +1,5 @@
+crlf
+crlf
+lf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,crlf/more-crlf-utf8bom b/tests/resources/crlf_data/windows/autocrlf_input,crlf/more-crlf-utf8bom
new file mode 100644
index 000000000..ea030d3c6
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,crlf/more-crlf-utf8bom
@@ -0,0 +1,5 @@
+crlf
+crlf
+lf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,crlf/more-lf b/tests/resources/crlf_data/windows/autocrlf_input,crlf/more-lf
new file mode 100644
index 000000000..04de00b35
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,crlf/more-lf
@@ -0,0 +1,5 @@
+lf
+lf
+crlf
+lf
+lf
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,crlf/more-lf-utf8bom b/tests/resources/crlf_data/windows/autocrlf_input,crlf/more-lf-utf8bom
new file mode 100644
index 000000000..dc88e3b91
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,crlf/more-lf-utf8bom
@@ -0,0 +1,5 @@
+lf
+lf
+crlf
+lf
+lf
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,crlf/zero-byte b/tests/resources/crlf_data/windows/autocrlf_input,crlf/zero-byte
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,crlf/zero-byte
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,eol_crlf/all-crlf b/tests/resources/crlf_data/windows/autocrlf_input,eol_crlf/all-crlf
new file mode 100644
index 000000000..a9a2e8913
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,eol_crlf/all-crlf
@@ -0,0 +1,4 @@
+crlf
+crlf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,eol_crlf/all-crlf-utf8bom b/tests/resources/crlf_data/windows/autocrlf_input,eol_crlf/all-crlf-utf8bom
new file mode 100644
index 000000000..0aa76e474
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,eol_crlf/all-crlf-utf8bom
@@ -0,0 +1,4 @@
+crlf
+crlf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,eol_crlf/all-lf b/tests/resources/crlf_data/windows/autocrlf_input,eol_crlf/all-lf
new file mode 100644
index 000000000..f557a02d8
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,eol_crlf/all-lf
@@ -0,0 +1,5 @@
+lf
+lf
+lf
+lf
+lf
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,eol_crlf/all-lf-utf8bom b/tests/resources/crlf_data/windows/autocrlf_input,eol_crlf/all-lf-utf8bom
new file mode 100644
index 000000000..381cfe630
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,eol_crlf/all-lf-utf8bom
@@ -0,0 +1,5 @@
+lf
+lf
+lf
+lf
+lf
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,eol_crlf/binary-all-crlf b/tests/resources/crlf_data/windows/autocrlf_input,eol_crlf/binary-all-crlf
new file mode 100644
index 000000000..85340755c
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,eol_crlf/binary-all-crlf
@@ -0,0 +1,4 @@
+one
+two
+three
+four
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,eol_crlf/binary-all-lf b/tests/resources/crlf_data/windows/autocrlf_input,eol_crlf/binary-all-lf
new file mode 100644
index 000000000..85340755c
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,eol_crlf/binary-all-lf
@@ -0,0 +1,4 @@
+one
+two
+three
+four
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,eol_crlf/binary-mixed-lf-cr b/tests/resources/crlf_data/windows/autocrlf_input,eol_crlf/binary-mixed-lf-cr
new file mode 100644
index 000000000..fd2abfa9d
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,eol_crlf/binary-mixed-lf-cr
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,eol_crlf/binary-mixed-lf-cr-crlf b/tests/resources/crlf_data/windows/autocrlf_input,eol_crlf/binary-mixed-lf-cr-crlf
new file mode 100644
index 000000000..fd2abfa9d
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,eol_crlf/binary-mixed-lf-cr-crlf
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,eol_crlf/few-utf8-chars-crlf b/tests/resources/crlf_data/windows/autocrlf_input,eol_crlf/few-utf8-chars-crlf
new file mode 100644
index 000000000..0e0528888
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,eol_crlf/few-utf8-chars-crlf
@@ -0,0 +1,22 @@
+⚽The rest is ASCII01.
+The rest is ASCII02.
+The rest is ASCII03.
+The rest is ASCII04.
+The rest is ASCII05.
+The rest is ASCII06.
+The rest is ASCII07.
+The rest is ASCII08.
+The rest is ASCII09.
+The rest is ASCII10.
+The rest is ASCII11.
+The rest is ASCII12.
+The rest is ASCII13.
+The rest is ASCII14.
+The rest is ASCII15.
+The rest is ASCII16.
+The rest is ASCII17.
+The rest is ASCII18.
+The rest is ASCII19.
+The rest is ASCII20.
+The rest is ASCII21.
+The rest is ASCII22.
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,eol_crlf/few-utf8-chars-lf b/tests/resources/crlf_data/windows/autocrlf_input,eol_crlf/few-utf8-chars-lf
new file mode 100644
index 000000000..0e0528888
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,eol_crlf/few-utf8-chars-lf
@@ -0,0 +1,22 @@
+⚽The rest is ASCII01.
+The rest is ASCII02.
+The rest is ASCII03.
+The rest is ASCII04.
+The rest is ASCII05.
+The rest is ASCII06.
+The rest is ASCII07.
+The rest is ASCII08.
+The rest is ASCII09.
+The rest is ASCII10.
+The rest is ASCII11.
+The rest is ASCII12.
+The rest is ASCII13.
+The rest is ASCII14.
+The rest is ASCII15.
+The rest is ASCII16.
+The rest is ASCII17.
+The rest is ASCII18.
+The rest is ASCII19.
+The rest is ASCII20.
+The rest is ASCII21.
+The rest is ASCII22.
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,eol_crlf/many-utf8-chars-crlf b/tests/resources/crlf_data/windows/autocrlf_input,eol_crlf/many-utf8-chars-crlf
new file mode 100644
index 000000000..cd574f5a2
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,eol_crlf/many-utf8-chars-crlf
@@ -0,0 +1,4 @@
+Lets sing!
+♫♪♬♩
+Eat food
+🍅🍕
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,eol_crlf/many-utf8-chars-lf b/tests/resources/crlf_data/windows/autocrlf_input,eol_crlf/many-utf8-chars-lf
new file mode 100644
index 000000000..cd574f5a2
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,eol_crlf/many-utf8-chars-lf
@@ -0,0 +1,4 @@
+Lets sing!
+♫♪♬♩
+Eat food
+🍅🍕
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,eol_crlf/mixed-lf-cr b/tests/resources/crlf_data/windows/autocrlf_input,eol_crlf/mixed-lf-cr
new file mode 100644
index 000000000..df8c0f680
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,eol_crlf/mixed-lf-cr
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,eol_crlf/mixed-lf-cr-crlf b/tests/resources/crlf_data/windows/autocrlf_input,eol_crlf/mixed-lf-cr-crlf
new file mode 100644
index 000000000..df8c0f680
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,eol_crlf/mixed-lf-cr-crlf
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,eol_crlf/more-crlf b/tests/resources/crlf_data/windows/autocrlf_input,eol_crlf/more-crlf
new file mode 100644
index 000000000..e682c3077
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,eol_crlf/more-crlf
@@ -0,0 +1,5 @@
+crlf
+crlf
+lf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,eol_crlf/more-crlf-utf8bom b/tests/resources/crlf_data/windows/autocrlf_input,eol_crlf/more-crlf-utf8bom
new file mode 100644
index 000000000..2e1220cbb
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,eol_crlf/more-crlf-utf8bom
@@ -0,0 +1,5 @@
+crlf
+crlf
+lf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,eol_crlf/more-lf b/tests/resources/crlf_data/windows/autocrlf_input,eol_crlf/more-lf
new file mode 100644
index 000000000..6da5b0c7e
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,eol_crlf/more-lf
@@ -0,0 +1,5 @@
+lf
+lf
+crlf
+lf
+lf
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,eol_crlf/more-lf-utf8bom b/tests/resources/crlf_data/windows/autocrlf_input,eol_crlf/more-lf-utf8bom
new file mode 100644
index 000000000..3fa59c809
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,eol_crlf/more-lf-utf8bom
@@ -0,0 +1,5 @@
+lf
+lf
+crlf
+lf
+lf
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,eol_crlf/zero-byte b/tests/resources/crlf_data/windows/autocrlf_input,eol_crlf/zero-byte
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,eol_crlf/zero-byte
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,eol_lf/all-crlf b/tests/resources/crlf_data/windows/autocrlf_input,eol_lf/all-crlf
new file mode 100644
index 000000000..a9a2e8913
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,eol_lf/all-crlf
@@ -0,0 +1,4 @@
+crlf
+crlf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,eol_lf/all-crlf-utf8bom b/tests/resources/crlf_data/windows/autocrlf_input,eol_lf/all-crlf-utf8bom
new file mode 100644
index 000000000..0aa76e474
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,eol_lf/all-crlf-utf8bom
@@ -0,0 +1,4 @@
+crlf
+crlf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,eol_lf/all-lf b/tests/resources/crlf_data/windows/autocrlf_input,eol_lf/all-lf
new file mode 100644
index 000000000..799770d1c
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,eol_lf/all-lf
@@ -0,0 +1,5 @@
+lf
+lf
+lf
+lf
+lf
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,eol_lf/all-lf-utf8bom b/tests/resources/crlf_data/windows/autocrlf_input,eol_lf/all-lf-utf8bom
new file mode 100644
index 000000000..7cce67e58
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,eol_lf/all-lf-utf8bom
@@ -0,0 +1,5 @@
+lf
+lf
+lf
+lf
+lf
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,eol_lf/binary-all-crlf b/tests/resources/crlf_data/windows/autocrlf_input,eol_lf/binary-all-crlf
new file mode 100644
index 000000000..85340755c
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,eol_lf/binary-all-crlf
@@ -0,0 +1,4 @@
+one
+two
+three
+four
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,eol_lf/binary-all-lf b/tests/resources/crlf_data/windows/autocrlf_input,eol_lf/binary-all-lf
new file mode 100644
index 000000000..af6fcf6da
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,eol_lf/binary-all-lf
@@ -0,0 +1,4 @@
+one
+two
+three
+four
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,eol_lf/binary-mixed-lf-cr b/tests/resources/crlf_data/windows/autocrlf_input,eol_lf/binary-mixed-lf-cr
new file mode 100644
index 000000000..203555c56
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,eol_lf/binary-mixed-lf-cr
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,eol_lf/binary-mixed-lf-cr-crlf b/tests/resources/crlf_data/windows/autocrlf_input,eol_lf/binary-mixed-lf-cr-crlf
new file mode 100644
index 000000000..aaf083a9c
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,eol_lf/binary-mixed-lf-cr-crlf
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,eol_lf/few-utf8-chars-crlf b/tests/resources/crlf_data/windows/autocrlf_input,eol_lf/few-utf8-chars-crlf
new file mode 100644
index 000000000..0e0528888
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,eol_lf/few-utf8-chars-crlf
@@ -0,0 +1,22 @@
+⚽The rest is ASCII01.
+The rest is ASCII02.
+The rest is ASCII03.
+The rest is ASCII04.
+The rest is ASCII05.
+The rest is ASCII06.
+The rest is ASCII07.
+The rest is ASCII08.
+The rest is ASCII09.
+The rest is ASCII10.
+The rest is ASCII11.
+The rest is ASCII12.
+The rest is ASCII13.
+The rest is ASCII14.
+The rest is ASCII15.
+The rest is ASCII16.
+The rest is ASCII17.
+The rest is ASCII18.
+The rest is ASCII19.
+The rest is ASCII20.
+The rest is ASCII21.
+The rest is ASCII22.
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,eol_lf/few-utf8-chars-lf b/tests/resources/crlf_data/windows/autocrlf_input,eol_lf/few-utf8-chars-lf
new file mode 100644
index 000000000..f4d25b796
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,eol_lf/few-utf8-chars-lf
@@ -0,0 +1,22 @@
+⚽The rest is ASCII01.
+The rest is ASCII02.
+The rest is ASCII03.
+The rest is ASCII04.
+The rest is ASCII05.
+The rest is ASCII06.
+The rest is ASCII07.
+The rest is ASCII08.
+The rest is ASCII09.
+The rest is ASCII10.
+The rest is ASCII11.
+The rest is ASCII12.
+The rest is ASCII13.
+The rest is ASCII14.
+The rest is ASCII15.
+The rest is ASCII16.
+The rest is ASCII17.
+The rest is ASCII18.
+The rest is ASCII19.
+The rest is ASCII20.
+The rest is ASCII21.
+The rest is ASCII22.
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,eol_lf/many-utf8-chars-crlf b/tests/resources/crlf_data/windows/autocrlf_input,eol_lf/many-utf8-chars-crlf
new file mode 100644
index 000000000..cd574f5a2
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,eol_lf/many-utf8-chars-crlf
@@ -0,0 +1,4 @@
+Lets sing!
+♫♪♬♩
+Eat food
+🍅🍕
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,eol_lf/many-utf8-chars-lf b/tests/resources/crlf_data/windows/autocrlf_input,eol_lf/many-utf8-chars-lf
new file mode 100644
index 000000000..9a6c3533f
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,eol_lf/many-utf8-chars-lf
@@ -0,0 +1,4 @@
+Lets sing!
+♫♪♬♩
+Eat food
+🍅🍕
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,eol_lf/mixed-lf-cr b/tests/resources/crlf_data/windows/autocrlf_input,eol_lf/mixed-lf-cr
new file mode 100644
index 000000000..d11e7ef63
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,eol_lf/mixed-lf-cr
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,eol_lf/mixed-lf-cr-crlf b/tests/resources/crlf_data/windows/autocrlf_input,eol_lf/mixed-lf-cr-crlf
new file mode 100644
index 000000000..417786fc3
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,eol_lf/mixed-lf-cr-crlf
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,eol_lf/more-crlf b/tests/resources/crlf_data/windows/autocrlf_input,eol_lf/more-crlf
new file mode 100644
index 000000000..0ff5a53f1
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,eol_lf/more-crlf
@@ -0,0 +1,5 @@
+crlf
+crlf
+lf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,eol_lf/more-crlf-utf8bom b/tests/resources/crlf_data/windows/autocrlf_input,eol_lf/more-crlf-utf8bom
new file mode 100644
index 000000000..ea030d3c6
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,eol_lf/more-crlf-utf8bom
@@ -0,0 +1,5 @@
+crlf
+crlf
+lf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,eol_lf/more-lf b/tests/resources/crlf_data/windows/autocrlf_input,eol_lf/more-lf
new file mode 100644
index 000000000..04de00b35
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,eol_lf/more-lf
@@ -0,0 +1,5 @@
+lf
+lf
+crlf
+lf
+lf
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,eol_lf/more-lf-utf8bom b/tests/resources/crlf_data/windows/autocrlf_input,eol_lf/more-lf-utf8bom
new file mode 100644
index 000000000..dc88e3b91
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,eol_lf/more-lf-utf8bom
@@ -0,0 +1,5 @@
+lf
+lf
+crlf
+lf
+lf
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,eol_lf/zero-byte b/tests/resources/crlf_data/windows/autocrlf_input,eol_lf/zero-byte
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,eol_lf/zero-byte
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,text,eol_crlf/all-crlf b/tests/resources/crlf_data/windows/autocrlf_input,text,eol_crlf/all-crlf
new file mode 100644
index 000000000..a9a2e8913
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,text,eol_crlf/all-crlf
@@ -0,0 +1,4 @@
+crlf
+crlf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,text,eol_crlf/all-crlf-utf8bom b/tests/resources/crlf_data/windows/autocrlf_input,text,eol_crlf/all-crlf-utf8bom
new file mode 100644
index 000000000..0aa76e474
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,text,eol_crlf/all-crlf-utf8bom
@@ -0,0 +1,4 @@
+crlf
+crlf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,text,eol_crlf/all-lf b/tests/resources/crlf_data/windows/autocrlf_input,text,eol_crlf/all-lf
new file mode 100644
index 000000000..f557a02d8
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,text,eol_crlf/all-lf
@@ -0,0 +1,5 @@
+lf
+lf
+lf
+lf
+lf
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,text,eol_crlf/all-lf-utf8bom b/tests/resources/crlf_data/windows/autocrlf_input,text,eol_crlf/all-lf-utf8bom
new file mode 100644
index 000000000..381cfe630
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,text,eol_crlf/all-lf-utf8bom
@@ -0,0 +1,5 @@
+lf
+lf
+lf
+lf
+lf
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,text,eol_crlf/binary-all-crlf b/tests/resources/crlf_data/windows/autocrlf_input,text,eol_crlf/binary-all-crlf
new file mode 100644
index 000000000..85340755c
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,text,eol_crlf/binary-all-crlf
@@ -0,0 +1,4 @@
+one
+two
+three
+four
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,text,eol_crlf/binary-all-lf b/tests/resources/crlf_data/windows/autocrlf_input,text,eol_crlf/binary-all-lf
new file mode 100644
index 000000000..85340755c
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,text,eol_crlf/binary-all-lf
@@ -0,0 +1,4 @@
+one
+two
+three
+four
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,text,eol_crlf/binary-mixed-lf-cr b/tests/resources/crlf_data/windows/autocrlf_input,text,eol_crlf/binary-mixed-lf-cr
new file mode 100644
index 000000000..fd2abfa9d
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,text,eol_crlf/binary-mixed-lf-cr
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,text,eol_crlf/binary-mixed-lf-cr-crlf b/tests/resources/crlf_data/windows/autocrlf_input,text,eol_crlf/binary-mixed-lf-cr-crlf
new file mode 100644
index 000000000..fd2abfa9d
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,text,eol_crlf/binary-mixed-lf-cr-crlf
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,text,eol_crlf/few-utf8-chars-crlf b/tests/resources/crlf_data/windows/autocrlf_input,text,eol_crlf/few-utf8-chars-crlf
new file mode 100644
index 000000000..0e0528888
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,text,eol_crlf/few-utf8-chars-crlf
@@ -0,0 +1,22 @@
+⚽The rest is ASCII01.
+The rest is ASCII02.
+The rest is ASCII03.
+The rest is ASCII04.
+The rest is ASCII05.
+The rest is ASCII06.
+The rest is ASCII07.
+The rest is ASCII08.
+The rest is ASCII09.
+The rest is ASCII10.
+The rest is ASCII11.
+The rest is ASCII12.
+The rest is ASCII13.
+The rest is ASCII14.
+The rest is ASCII15.
+The rest is ASCII16.
+The rest is ASCII17.
+The rest is ASCII18.
+The rest is ASCII19.
+The rest is ASCII20.
+The rest is ASCII21.
+The rest is ASCII22.
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,text,eol_crlf/few-utf8-chars-lf b/tests/resources/crlf_data/windows/autocrlf_input,text,eol_crlf/few-utf8-chars-lf
new file mode 100644
index 000000000..0e0528888
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,text,eol_crlf/few-utf8-chars-lf
@@ -0,0 +1,22 @@
+⚽The rest is ASCII01.
+The rest is ASCII02.
+The rest is ASCII03.
+The rest is ASCII04.
+The rest is ASCII05.
+The rest is ASCII06.
+The rest is ASCII07.
+The rest is ASCII08.
+The rest is ASCII09.
+The rest is ASCII10.
+The rest is ASCII11.
+The rest is ASCII12.
+The rest is ASCII13.
+The rest is ASCII14.
+The rest is ASCII15.
+The rest is ASCII16.
+The rest is ASCII17.
+The rest is ASCII18.
+The rest is ASCII19.
+The rest is ASCII20.
+The rest is ASCII21.
+The rest is ASCII22.
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,text,eol_crlf/many-utf8-chars-crlf b/tests/resources/crlf_data/windows/autocrlf_input,text,eol_crlf/many-utf8-chars-crlf
new file mode 100644
index 000000000..cd574f5a2
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,text,eol_crlf/many-utf8-chars-crlf
@@ -0,0 +1,4 @@
+Lets sing!
+♫♪♬♩
+Eat food
+🍅🍕
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,text,eol_crlf/many-utf8-chars-lf b/tests/resources/crlf_data/windows/autocrlf_input,text,eol_crlf/many-utf8-chars-lf
new file mode 100644
index 000000000..cd574f5a2
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,text,eol_crlf/many-utf8-chars-lf
@@ -0,0 +1,4 @@
+Lets sing!
+♫♪♬♩
+Eat food
+🍅🍕
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,text,eol_crlf/mixed-lf-cr b/tests/resources/crlf_data/windows/autocrlf_input,text,eol_crlf/mixed-lf-cr
new file mode 100644
index 000000000..df8c0f680
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,text,eol_crlf/mixed-lf-cr
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,text,eol_crlf/mixed-lf-cr-crlf b/tests/resources/crlf_data/windows/autocrlf_input,text,eol_crlf/mixed-lf-cr-crlf
new file mode 100644
index 000000000..df8c0f680
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,text,eol_crlf/mixed-lf-cr-crlf
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,text,eol_crlf/more-crlf b/tests/resources/crlf_data/windows/autocrlf_input,text,eol_crlf/more-crlf
new file mode 100644
index 000000000..e682c3077
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,text,eol_crlf/more-crlf
@@ -0,0 +1,5 @@
+crlf
+crlf
+lf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,text,eol_crlf/more-crlf-utf8bom b/tests/resources/crlf_data/windows/autocrlf_input,text,eol_crlf/more-crlf-utf8bom
new file mode 100644
index 000000000..2e1220cbb
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,text,eol_crlf/more-crlf-utf8bom
@@ -0,0 +1,5 @@
+crlf
+crlf
+lf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,text,eol_crlf/more-lf b/tests/resources/crlf_data/windows/autocrlf_input,text,eol_crlf/more-lf
new file mode 100644
index 000000000..6da5b0c7e
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,text,eol_crlf/more-lf
@@ -0,0 +1,5 @@
+lf
+lf
+crlf
+lf
+lf
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,text,eol_crlf/more-lf-utf8bom b/tests/resources/crlf_data/windows/autocrlf_input,text,eol_crlf/more-lf-utf8bom
new file mode 100644
index 000000000..3fa59c809
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,text,eol_crlf/more-lf-utf8bom
@@ -0,0 +1,5 @@
+lf
+lf
+crlf
+lf
+lf
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,text,eol_crlf/zero-byte b/tests/resources/crlf_data/windows/autocrlf_input,text,eol_crlf/zero-byte
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,text,eol_crlf/zero-byte
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,text,eol_lf/all-crlf b/tests/resources/crlf_data/windows/autocrlf_input,text,eol_lf/all-crlf
new file mode 100644
index 000000000..a9a2e8913
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,text,eol_lf/all-crlf
@@ -0,0 +1,4 @@
+crlf
+crlf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,text,eol_lf/all-crlf-utf8bom b/tests/resources/crlf_data/windows/autocrlf_input,text,eol_lf/all-crlf-utf8bom
new file mode 100644
index 000000000..0aa76e474
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,text,eol_lf/all-crlf-utf8bom
@@ -0,0 +1,4 @@
+crlf
+crlf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,text,eol_lf/all-lf b/tests/resources/crlf_data/windows/autocrlf_input,text,eol_lf/all-lf
new file mode 100644
index 000000000..799770d1c
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,text,eol_lf/all-lf
@@ -0,0 +1,5 @@
+lf
+lf
+lf
+lf
+lf
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,text,eol_lf/all-lf-utf8bom b/tests/resources/crlf_data/windows/autocrlf_input,text,eol_lf/all-lf-utf8bom
new file mode 100644
index 000000000..7cce67e58
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,text,eol_lf/all-lf-utf8bom
@@ -0,0 +1,5 @@
+lf
+lf
+lf
+lf
+lf
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,text,eol_lf/binary-all-crlf b/tests/resources/crlf_data/windows/autocrlf_input,text,eol_lf/binary-all-crlf
new file mode 100644
index 000000000..85340755c
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,text,eol_lf/binary-all-crlf
@@ -0,0 +1,4 @@
+one
+two
+three
+four
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,text,eol_lf/binary-all-lf b/tests/resources/crlf_data/windows/autocrlf_input,text,eol_lf/binary-all-lf
new file mode 100644
index 000000000..af6fcf6da
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,text,eol_lf/binary-all-lf
@@ -0,0 +1,4 @@
+one
+two
+three
+four
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,text,eol_lf/binary-mixed-lf-cr b/tests/resources/crlf_data/windows/autocrlf_input,text,eol_lf/binary-mixed-lf-cr
new file mode 100644
index 000000000..203555c56
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,text,eol_lf/binary-mixed-lf-cr
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,text,eol_lf/binary-mixed-lf-cr-crlf b/tests/resources/crlf_data/windows/autocrlf_input,text,eol_lf/binary-mixed-lf-cr-crlf
new file mode 100644
index 000000000..aaf083a9c
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,text,eol_lf/binary-mixed-lf-cr-crlf
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,text,eol_lf/few-utf8-chars-crlf b/tests/resources/crlf_data/windows/autocrlf_input,text,eol_lf/few-utf8-chars-crlf
new file mode 100644
index 000000000..0e0528888
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,text,eol_lf/few-utf8-chars-crlf
@@ -0,0 +1,22 @@
+⚽The rest is ASCII01.
+The rest is ASCII02.
+The rest is ASCII03.
+The rest is ASCII04.
+The rest is ASCII05.
+The rest is ASCII06.
+The rest is ASCII07.
+The rest is ASCII08.
+The rest is ASCII09.
+The rest is ASCII10.
+The rest is ASCII11.
+The rest is ASCII12.
+The rest is ASCII13.
+The rest is ASCII14.
+The rest is ASCII15.
+The rest is ASCII16.
+The rest is ASCII17.
+The rest is ASCII18.
+The rest is ASCII19.
+The rest is ASCII20.
+The rest is ASCII21.
+The rest is ASCII22.
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,text,eol_lf/few-utf8-chars-lf b/tests/resources/crlf_data/windows/autocrlf_input,text,eol_lf/few-utf8-chars-lf
new file mode 100644
index 000000000..f4d25b796
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,text,eol_lf/few-utf8-chars-lf
@@ -0,0 +1,22 @@
+⚽The rest is ASCII01.
+The rest is ASCII02.
+The rest is ASCII03.
+The rest is ASCII04.
+The rest is ASCII05.
+The rest is ASCII06.
+The rest is ASCII07.
+The rest is ASCII08.
+The rest is ASCII09.
+The rest is ASCII10.
+The rest is ASCII11.
+The rest is ASCII12.
+The rest is ASCII13.
+The rest is ASCII14.
+The rest is ASCII15.
+The rest is ASCII16.
+The rest is ASCII17.
+The rest is ASCII18.
+The rest is ASCII19.
+The rest is ASCII20.
+The rest is ASCII21.
+The rest is ASCII22.
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,text,eol_lf/many-utf8-chars-crlf b/tests/resources/crlf_data/windows/autocrlf_input,text,eol_lf/many-utf8-chars-crlf
new file mode 100644
index 000000000..cd574f5a2
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,text,eol_lf/many-utf8-chars-crlf
@@ -0,0 +1,4 @@
+Lets sing!
+♫♪♬♩
+Eat food
+🍅🍕
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,text,eol_lf/many-utf8-chars-lf b/tests/resources/crlf_data/windows/autocrlf_input,text,eol_lf/many-utf8-chars-lf
new file mode 100644
index 000000000..9a6c3533f
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,text,eol_lf/many-utf8-chars-lf
@@ -0,0 +1,4 @@
+Lets sing!
+♫♪♬♩
+Eat food
+🍅🍕
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,text,eol_lf/mixed-lf-cr b/tests/resources/crlf_data/windows/autocrlf_input,text,eol_lf/mixed-lf-cr
new file mode 100644
index 000000000..d11e7ef63
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,text,eol_lf/mixed-lf-cr
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,text,eol_lf/mixed-lf-cr-crlf b/tests/resources/crlf_data/windows/autocrlf_input,text,eol_lf/mixed-lf-cr-crlf
new file mode 100644
index 000000000..417786fc3
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,text,eol_lf/mixed-lf-cr-crlf
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,text,eol_lf/more-crlf b/tests/resources/crlf_data/windows/autocrlf_input,text,eol_lf/more-crlf
new file mode 100644
index 000000000..0ff5a53f1
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,text,eol_lf/more-crlf
@@ -0,0 +1,5 @@
+crlf
+crlf
+lf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,text,eol_lf/more-crlf-utf8bom b/tests/resources/crlf_data/windows/autocrlf_input,text,eol_lf/more-crlf-utf8bom
new file mode 100644
index 000000000..ea030d3c6
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,text,eol_lf/more-crlf-utf8bom
@@ -0,0 +1,5 @@
+crlf
+crlf
+lf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,text,eol_lf/more-lf b/tests/resources/crlf_data/windows/autocrlf_input,text,eol_lf/more-lf
new file mode 100644
index 000000000..04de00b35
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,text,eol_lf/more-lf
@@ -0,0 +1,5 @@
+lf
+lf
+crlf
+lf
+lf
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,text,eol_lf/more-lf-utf8bom b/tests/resources/crlf_data/windows/autocrlf_input,text,eol_lf/more-lf-utf8bom
new file mode 100644
index 000000000..dc88e3b91
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,text,eol_lf/more-lf-utf8bom
@@ -0,0 +1,5 @@
+lf
+lf
+crlf
+lf
+lf
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,text,eol_lf/zero-byte b/tests/resources/crlf_data/windows/autocrlf_input,text,eol_lf/zero-byte
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,text,eol_lf/zero-byte
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,text/all-crlf b/tests/resources/crlf_data/windows/autocrlf_input,text/all-crlf
new file mode 100644
index 000000000..a9a2e8913
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,text/all-crlf
@@ -0,0 +1,4 @@
+crlf
+crlf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,text/all-crlf-utf8bom b/tests/resources/crlf_data/windows/autocrlf_input,text/all-crlf-utf8bom
new file mode 100644
index 000000000..0aa76e474
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,text/all-crlf-utf8bom
@@ -0,0 +1,4 @@
+crlf
+crlf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,text/all-lf b/tests/resources/crlf_data/windows/autocrlf_input,text/all-lf
new file mode 100644
index 000000000..799770d1c
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,text/all-lf
@@ -0,0 +1,5 @@
+lf
+lf
+lf
+lf
+lf
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,text/all-lf-utf8bom b/tests/resources/crlf_data/windows/autocrlf_input,text/all-lf-utf8bom
new file mode 100644
index 000000000..7cce67e58
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,text/all-lf-utf8bom
@@ -0,0 +1,5 @@
+lf
+lf
+lf
+lf
+lf
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,text/binary-all-crlf b/tests/resources/crlf_data/windows/autocrlf_input,text/binary-all-crlf
new file mode 100644
index 000000000..85340755c
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,text/binary-all-crlf
@@ -0,0 +1,4 @@
+one
+two
+three
+four
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,text/binary-all-lf b/tests/resources/crlf_data/windows/autocrlf_input,text/binary-all-lf
new file mode 100644
index 000000000..af6fcf6da
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,text/binary-all-lf
@@ -0,0 +1,4 @@
+one
+two
+three
+four
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,text/binary-mixed-lf-cr b/tests/resources/crlf_data/windows/autocrlf_input,text/binary-mixed-lf-cr
new file mode 100644
index 000000000..203555c56
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,text/binary-mixed-lf-cr
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,text/binary-mixed-lf-cr-crlf b/tests/resources/crlf_data/windows/autocrlf_input,text/binary-mixed-lf-cr-crlf
new file mode 100644
index 000000000..aaf083a9c
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,text/binary-mixed-lf-cr-crlf
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,text/few-utf8-chars-crlf b/tests/resources/crlf_data/windows/autocrlf_input,text/few-utf8-chars-crlf
new file mode 100644
index 000000000..0e0528888
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,text/few-utf8-chars-crlf
@@ -0,0 +1,22 @@
+⚽The rest is ASCII01.
+The rest is ASCII02.
+The rest is ASCII03.
+The rest is ASCII04.
+The rest is ASCII05.
+The rest is ASCII06.
+The rest is ASCII07.
+The rest is ASCII08.
+The rest is ASCII09.
+The rest is ASCII10.
+The rest is ASCII11.
+The rest is ASCII12.
+The rest is ASCII13.
+The rest is ASCII14.
+The rest is ASCII15.
+The rest is ASCII16.
+The rest is ASCII17.
+The rest is ASCII18.
+The rest is ASCII19.
+The rest is ASCII20.
+The rest is ASCII21.
+The rest is ASCII22.
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,text/few-utf8-chars-lf b/tests/resources/crlf_data/windows/autocrlf_input,text/few-utf8-chars-lf
new file mode 100644
index 000000000..f4d25b796
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,text/few-utf8-chars-lf
@@ -0,0 +1,22 @@
+⚽The rest is ASCII01.
+The rest is ASCII02.
+The rest is ASCII03.
+The rest is ASCII04.
+The rest is ASCII05.
+The rest is ASCII06.
+The rest is ASCII07.
+The rest is ASCII08.
+The rest is ASCII09.
+The rest is ASCII10.
+The rest is ASCII11.
+The rest is ASCII12.
+The rest is ASCII13.
+The rest is ASCII14.
+The rest is ASCII15.
+The rest is ASCII16.
+The rest is ASCII17.
+The rest is ASCII18.
+The rest is ASCII19.
+The rest is ASCII20.
+The rest is ASCII21.
+The rest is ASCII22.
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,text/many-utf8-chars-crlf b/tests/resources/crlf_data/windows/autocrlf_input,text/many-utf8-chars-crlf
new file mode 100644
index 000000000..cd574f5a2
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,text/many-utf8-chars-crlf
@@ -0,0 +1,4 @@
+Lets sing!
+♫♪♬♩
+Eat food
+🍅🍕
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,text/many-utf8-chars-lf b/tests/resources/crlf_data/windows/autocrlf_input,text/many-utf8-chars-lf
new file mode 100644
index 000000000..9a6c3533f
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,text/many-utf8-chars-lf
@@ -0,0 +1,4 @@
+Lets sing!
+♫♪♬♩
+Eat food
+🍅🍕
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,text/mixed-lf-cr b/tests/resources/crlf_data/windows/autocrlf_input,text/mixed-lf-cr
new file mode 100644
index 000000000..d11e7ef63
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,text/mixed-lf-cr
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,text/mixed-lf-cr-crlf b/tests/resources/crlf_data/windows/autocrlf_input,text/mixed-lf-cr-crlf
new file mode 100644
index 000000000..417786fc3
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,text/mixed-lf-cr-crlf
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,text/more-crlf b/tests/resources/crlf_data/windows/autocrlf_input,text/more-crlf
new file mode 100644
index 000000000..0ff5a53f1
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,text/more-crlf
@@ -0,0 +1,5 @@
+crlf
+crlf
+lf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,text/more-crlf-utf8bom b/tests/resources/crlf_data/windows/autocrlf_input,text/more-crlf-utf8bom
new file mode 100644
index 000000000..ea030d3c6
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,text/more-crlf-utf8bom
@@ -0,0 +1,5 @@
+crlf
+crlf
+lf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,text/more-lf b/tests/resources/crlf_data/windows/autocrlf_input,text/more-lf
new file mode 100644
index 000000000..04de00b35
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,text/more-lf
@@ -0,0 +1,5 @@
+lf
+lf
+crlf
+lf
+lf
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,text/more-lf-utf8bom b/tests/resources/crlf_data/windows/autocrlf_input,text/more-lf-utf8bom
new file mode 100644
index 000000000..dc88e3b91
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,text/more-lf-utf8bom
@@ -0,0 +1,5 @@
+lf
+lf
+crlf
+lf
+lf
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,text/zero-byte b/tests/resources/crlf_data/windows/autocrlf_input,text/zero-byte
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,text/zero-byte
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,text_auto,eol_crlf/all-crlf b/tests/resources/crlf_data/windows/autocrlf_input,text_auto,eol_crlf/all-crlf
new file mode 100644
index 000000000..a9a2e8913
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,text_auto,eol_crlf/all-crlf
@@ -0,0 +1,4 @@
+crlf
+crlf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,text_auto,eol_crlf/all-crlf-utf8bom b/tests/resources/crlf_data/windows/autocrlf_input,text_auto,eol_crlf/all-crlf-utf8bom
new file mode 100644
index 000000000..0aa76e474
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,text_auto,eol_crlf/all-crlf-utf8bom
@@ -0,0 +1,4 @@
+crlf
+crlf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,text_auto,eol_crlf/all-lf b/tests/resources/crlf_data/windows/autocrlf_input,text_auto,eol_crlf/all-lf
new file mode 100644
index 000000000..f557a02d8
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,text_auto,eol_crlf/all-lf
@@ -0,0 +1,5 @@
+lf
+lf
+lf
+lf
+lf
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,text_auto,eol_crlf/all-lf-utf8bom b/tests/resources/crlf_data/windows/autocrlf_input,text_auto,eol_crlf/all-lf-utf8bom
new file mode 100644
index 000000000..381cfe630
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,text_auto,eol_crlf/all-lf-utf8bom
@@ -0,0 +1,5 @@
+lf
+lf
+lf
+lf
+lf
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,text_auto,eol_crlf/binary-all-crlf b/tests/resources/crlf_data/windows/autocrlf_input,text_auto,eol_crlf/binary-all-crlf
new file mode 100644
index 000000000..85340755c
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,text_auto,eol_crlf/binary-all-crlf
@@ -0,0 +1,4 @@
+one
+two
+three
+four
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,text_auto,eol_crlf/binary-all-lf b/tests/resources/crlf_data/windows/autocrlf_input,text_auto,eol_crlf/binary-all-lf
new file mode 100644
index 000000000..85340755c
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,text_auto,eol_crlf/binary-all-lf
@@ -0,0 +1,4 @@
+one
+two
+three
+four
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,text_auto,eol_crlf/binary-mixed-lf-cr b/tests/resources/crlf_data/windows/autocrlf_input,text_auto,eol_crlf/binary-mixed-lf-cr
new file mode 100644
index 000000000..fd2abfa9d
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,text_auto,eol_crlf/binary-mixed-lf-cr
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,text_auto,eol_crlf/binary-mixed-lf-cr-crlf b/tests/resources/crlf_data/windows/autocrlf_input,text_auto,eol_crlf/binary-mixed-lf-cr-crlf
new file mode 100644
index 000000000..fd2abfa9d
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,text_auto,eol_crlf/binary-mixed-lf-cr-crlf
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,text_auto,eol_crlf/few-utf8-chars-crlf b/tests/resources/crlf_data/windows/autocrlf_input,text_auto,eol_crlf/few-utf8-chars-crlf
new file mode 100644
index 000000000..0e0528888
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,text_auto,eol_crlf/few-utf8-chars-crlf
@@ -0,0 +1,22 @@
+⚽The rest is ASCII01.
+The rest is ASCII02.
+The rest is ASCII03.
+The rest is ASCII04.
+The rest is ASCII05.
+The rest is ASCII06.
+The rest is ASCII07.
+The rest is ASCII08.
+The rest is ASCII09.
+The rest is ASCII10.
+The rest is ASCII11.
+The rest is ASCII12.
+The rest is ASCII13.
+The rest is ASCII14.
+The rest is ASCII15.
+The rest is ASCII16.
+The rest is ASCII17.
+The rest is ASCII18.
+The rest is ASCII19.
+The rest is ASCII20.
+The rest is ASCII21.
+The rest is ASCII22.
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,text_auto,eol_crlf/few-utf8-chars-lf b/tests/resources/crlf_data/windows/autocrlf_input,text_auto,eol_crlf/few-utf8-chars-lf
new file mode 100644
index 000000000..0e0528888
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,text_auto,eol_crlf/few-utf8-chars-lf
@@ -0,0 +1,22 @@
+⚽The rest is ASCII01.
+The rest is ASCII02.
+The rest is ASCII03.
+The rest is ASCII04.
+The rest is ASCII05.
+The rest is ASCII06.
+The rest is ASCII07.
+The rest is ASCII08.
+The rest is ASCII09.
+The rest is ASCII10.
+The rest is ASCII11.
+The rest is ASCII12.
+The rest is ASCII13.
+The rest is ASCII14.
+The rest is ASCII15.
+The rest is ASCII16.
+The rest is ASCII17.
+The rest is ASCII18.
+The rest is ASCII19.
+The rest is ASCII20.
+The rest is ASCII21.
+The rest is ASCII22.
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,text_auto,eol_crlf/many-utf8-chars-crlf b/tests/resources/crlf_data/windows/autocrlf_input,text_auto,eol_crlf/many-utf8-chars-crlf
new file mode 100644
index 000000000..cd574f5a2
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,text_auto,eol_crlf/many-utf8-chars-crlf
@@ -0,0 +1,4 @@
+Lets sing!
+♫♪♬♩
+Eat food
+🍅🍕
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,text_auto,eol_crlf/many-utf8-chars-lf b/tests/resources/crlf_data/windows/autocrlf_input,text_auto,eol_crlf/many-utf8-chars-lf
new file mode 100644
index 000000000..cd574f5a2
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,text_auto,eol_crlf/many-utf8-chars-lf
@@ -0,0 +1,4 @@
+Lets sing!
+♫♪♬♩
+Eat food
+🍅🍕
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,text_auto,eol_crlf/mixed-lf-cr b/tests/resources/crlf_data/windows/autocrlf_input,text_auto,eol_crlf/mixed-lf-cr
new file mode 100644
index 000000000..df8c0f680
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,text_auto,eol_crlf/mixed-lf-cr
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,text_auto,eol_crlf/mixed-lf-cr-crlf b/tests/resources/crlf_data/windows/autocrlf_input,text_auto,eol_crlf/mixed-lf-cr-crlf
new file mode 100644
index 000000000..df8c0f680
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,text_auto,eol_crlf/mixed-lf-cr-crlf
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,text_auto,eol_crlf/more-crlf b/tests/resources/crlf_data/windows/autocrlf_input,text_auto,eol_crlf/more-crlf
new file mode 100644
index 000000000..e682c3077
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,text_auto,eol_crlf/more-crlf
@@ -0,0 +1,5 @@
+crlf
+crlf
+lf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,text_auto,eol_crlf/more-crlf-utf8bom b/tests/resources/crlf_data/windows/autocrlf_input,text_auto,eol_crlf/more-crlf-utf8bom
new file mode 100644
index 000000000..2e1220cbb
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,text_auto,eol_crlf/more-crlf-utf8bom
@@ -0,0 +1,5 @@
+crlf
+crlf
+lf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,text_auto,eol_crlf/more-lf b/tests/resources/crlf_data/windows/autocrlf_input,text_auto,eol_crlf/more-lf
new file mode 100644
index 000000000..6da5b0c7e
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,text_auto,eol_crlf/more-lf
@@ -0,0 +1,5 @@
+lf
+lf
+crlf
+lf
+lf
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,text_auto,eol_crlf/more-lf-utf8bom b/tests/resources/crlf_data/windows/autocrlf_input,text_auto,eol_crlf/more-lf-utf8bom
new file mode 100644
index 000000000..3fa59c809
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,text_auto,eol_crlf/more-lf-utf8bom
@@ -0,0 +1,5 @@
+lf
+lf
+crlf
+lf
+lf
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,text_auto,eol_crlf/zero-byte b/tests/resources/crlf_data/windows/autocrlf_input,text_auto,eol_crlf/zero-byte
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,text_auto,eol_crlf/zero-byte
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,text_auto,eol_lf/all-crlf b/tests/resources/crlf_data/windows/autocrlf_input,text_auto,eol_lf/all-crlf
new file mode 100644
index 000000000..a9a2e8913
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,text_auto,eol_lf/all-crlf
@@ -0,0 +1,4 @@
+crlf
+crlf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,text_auto,eol_lf/all-crlf-utf8bom b/tests/resources/crlf_data/windows/autocrlf_input,text_auto,eol_lf/all-crlf-utf8bom
new file mode 100644
index 000000000..0aa76e474
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,text_auto,eol_lf/all-crlf-utf8bom
@@ -0,0 +1,4 @@
+crlf
+crlf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,text_auto,eol_lf/all-lf b/tests/resources/crlf_data/windows/autocrlf_input,text_auto,eol_lf/all-lf
new file mode 100644
index 000000000..799770d1c
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,text_auto,eol_lf/all-lf
@@ -0,0 +1,5 @@
+lf
+lf
+lf
+lf
+lf
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,text_auto,eol_lf/all-lf-utf8bom b/tests/resources/crlf_data/windows/autocrlf_input,text_auto,eol_lf/all-lf-utf8bom
new file mode 100644
index 000000000..7cce67e58
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,text_auto,eol_lf/all-lf-utf8bom
@@ -0,0 +1,5 @@
+lf
+lf
+lf
+lf
+lf
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,text_auto,eol_lf/binary-all-crlf b/tests/resources/crlf_data/windows/autocrlf_input,text_auto,eol_lf/binary-all-crlf
new file mode 100644
index 000000000..85340755c
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,text_auto,eol_lf/binary-all-crlf
@@ -0,0 +1,4 @@
+one
+two
+three
+four
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,text_auto,eol_lf/binary-all-lf b/tests/resources/crlf_data/windows/autocrlf_input,text_auto,eol_lf/binary-all-lf
new file mode 100644
index 000000000..af6fcf6da
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,text_auto,eol_lf/binary-all-lf
@@ -0,0 +1,4 @@
+one
+two
+three
+four
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,text_auto,eol_lf/binary-mixed-lf-cr b/tests/resources/crlf_data/windows/autocrlf_input,text_auto,eol_lf/binary-mixed-lf-cr
new file mode 100644
index 000000000..203555c56
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,text_auto,eol_lf/binary-mixed-lf-cr
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,text_auto,eol_lf/binary-mixed-lf-cr-crlf b/tests/resources/crlf_data/windows/autocrlf_input,text_auto,eol_lf/binary-mixed-lf-cr-crlf
new file mode 100644
index 000000000..aaf083a9c
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,text_auto,eol_lf/binary-mixed-lf-cr-crlf
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,text_auto,eol_lf/few-utf8-chars-crlf b/tests/resources/crlf_data/windows/autocrlf_input,text_auto,eol_lf/few-utf8-chars-crlf
new file mode 100644
index 000000000..0e0528888
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,text_auto,eol_lf/few-utf8-chars-crlf
@@ -0,0 +1,22 @@
+⚽The rest is ASCII01.
+The rest is ASCII02.
+The rest is ASCII03.
+The rest is ASCII04.
+The rest is ASCII05.
+The rest is ASCII06.
+The rest is ASCII07.
+The rest is ASCII08.
+The rest is ASCII09.
+The rest is ASCII10.
+The rest is ASCII11.
+The rest is ASCII12.
+The rest is ASCII13.
+The rest is ASCII14.
+The rest is ASCII15.
+The rest is ASCII16.
+The rest is ASCII17.
+The rest is ASCII18.
+The rest is ASCII19.
+The rest is ASCII20.
+The rest is ASCII21.
+The rest is ASCII22.
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,text_auto,eol_lf/few-utf8-chars-lf b/tests/resources/crlf_data/windows/autocrlf_input,text_auto,eol_lf/few-utf8-chars-lf
new file mode 100644
index 000000000..f4d25b796
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,text_auto,eol_lf/few-utf8-chars-lf
@@ -0,0 +1,22 @@
+⚽The rest is ASCII01.
+The rest is ASCII02.
+The rest is ASCII03.
+The rest is ASCII04.
+The rest is ASCII05.
+The rest is ASCII06.
+The rest is ASCII07.
+The rest is ASCII08.
+The rest is ASCII09.
+The rest is ASCII10.
+The rest is ASCII11.
+The rest is ASCII12.
+The rest is ASCII13.
+The rest is ASCII14.
+The rest is ASCII15.
+The rest is ASCII16.
+The rest is ASCII17.
+The rest is ASCII18.
+The rest is ASCII19.
+The rest is ASCII20.
+The rest is ASCII21.
+The rest is ASCII22.
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,text_auto,eol_lf/many-utf8-chars-crlf b/tests/resources/crlf_data/windows/autocrlf_input,text_auto,eol_lf/many-utf8-chars-crlf
new file mode 100644
index 000000000..cd574f5a2
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,text_auto,eol_lf/many-utf8-chars-crlf
@@ -0,0 +1,4 @@
+Lets sing!
+♫♪♬♩
+Eat food
+🍅🍕
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,text_auto,eol_lf/many-utf8-chars-lf b/tests/resources/crlf_data/windows/autocrlf_input,text_auto,eol_lf/many-utf8-chars-lf
new file mode 100644
index 000000000..9a6c3533f
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,text_auto,eol_lf/many-utf8-chars-lf
@@ -0,0 +1,4 @@
+Lets sing!
+♫♪♬♩
+Eat food
+🍅🍕
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,text_auto,eol_lf/mixed-lf-cr b/tests/resources/crlf_data/windows/autocrlf_input,text_auto,eol_lf/mixed-lf-cr
new file mode 100644
index 000000000..d11e7ef63
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,text_auto,eol_lf/mixed-lf-cr
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,text_auto,eol_lf/mixed-lf-cr-crlf b/tests/resources/crlf_data/windows/autocrlf_input,text_auto,eol_lf/mixed-lf-cr-crlf
new file mode 100644
index 000000000..417786fc3
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,text_auto,eol_lf/mixed-lf-cr-crlf
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,text_auto,eol_lf/more-crlf b/tests/resources/crlf_data/windows/autocrlf_input,text_auto,eol_lf/more-crlf
new file mode 100644
index 000000000..0ff5a53f1
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,text_auto,eol_lf/more-crlf
@@ -0,0 +1,5 @@
+crlf
+crlf
+lf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,text_auto,eol_lf/more-crlf-utf8bom b/tests/resources/crlf_data/windows/autocrlf_input,text_auto,eol_lf/more-crlf-utf8bom
new file mode 100644
index 000000000..ea030d3c6
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,text_auto,eol_lf/more-crlf-utf8bom
@@ -0,0 +1,5 @@
+crlf
+crlf
+lf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,text_auto,eol_lf/more-lf b/tests/resources/crlf_data/windows/autocrlf_input,text_auto,eol_lf/more-lf
new file mode 100644
index 000000000..04de00b35
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,text_auto,eol_lf/more-lf
@@ -0,0 +1,5 @@
+lf
+lf
+crlf
+lf
+lf
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,text_auto,eol_lf/more-lf-utf8bom b/tests/resources/crlf_data/windows/autocrlf_input,text_auto,eol_lf/more-lf-utf8bom
new file mode 100644
index 000000000..dc88e3b91
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,text_auto,eol_lf/more-lf-utf8bom
@@ -0,0 +1,5 @@
+lf
+lf
+crlf
+lf
+lf
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,text_auto,eol_lf/zero-byte b/tests/resources/crlf_data/windows/autocrlf_input,text_auto,eol_lf/zero-byte
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,text_auto,eol_lf/zero-byte
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,text_auto/all-crlf b/tests/resources/crlf_data/windows/autocrlf_input,text_auto/all-crlf
new file mode 100644
index 000000000..a9a2e8913
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,text_auto/all-crlf
@@ -0,0 +1,4 @@
+crlf
+crlf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,text_auto/all-crlf-utf8bom b/tests/resources/crlf_data/windows/autocrlf_input,text_auto/all-crlf-utf8bom
new file mode 100644
index 000000000..0aa76e474
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,text_auto/all-crlf-utf8bom
@@ -0,0 +1,4 @@
+crlf
+crlf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,text_auto/all-lf b/tests/resources/crlf_data/windows/autocrlf_input,text_auto/all-lf
new file mode 100644
index 000000000..799770d1c
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,text_auto/all-lf
@@ -0,0 +1,5 @@
+lf
+lf
+lf
+lf
+lf
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,text_auto/all-lf-utf8bom b/tests/resources/crlf_data/windows/autocrlf_input,text_auto/all-lf-utf8bom
new file mode 100644
index 000000000..7cce67e58
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,text_auto/all-lf-utf8bom
@@ -0,0 +1,5 @@
+lf
+lf
+lf
+lf
+lf
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,text_auto/binary-all-crlf b/tests/resources/crlf_data/windows/autocrlf_input,text_auto/binary-all-crlf
new file mode 100644
index 000000000..85340755c
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,text_auto/binary-all-crlf
@@ -0,0 +1,4 @@
+one
+two
+three
+four
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,text_auto/binary-all-lf b/tests/resources/crlf_data/windows/autocrlf_input,text_auto/binary-all-lf
new file mode 100644
index 000000000..af6fcf6da
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,text_auto/binary-all-lf
@@ -0,0 +1,4 @@
+one
+two
+three
+four
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,text_auto/binary-mixed-lf-cr b/tests/resources/crlf_data/windows/autocrlf_input,text_auto/binary-mixed-lf-cr
new file mode 100644
index 000000000..203555c56
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,text_auto/binary-mixed-lf-cr
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,text_auto/binary-mixed-lf-cr-crlf b/tests/resources/crlf_data/windows/autocrlf_input,text_auto/binary-mixed-lf-cr-crlf
new file mode 100644
index 000000000..aaf083a9c
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,text_auto/binary-mixed-lf-cr-crlf
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,text_auto/few-utf8-chars-crlf b/tests/resources/crlf_data/windows/autocrlf_input,text_auto/few-utf8-chars-crlf
new file mode 100644
index 000000000..0e0528888
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,text_auto/few-utf8-chars-crlf
@@ -0,0 +1,22 @@
+⚽The rest is ASCII01.
+The rest is ASCII02.
+The rest is ASCII03.
+The rest is ASCII04.
+The rest is ASCII05.
+The rest is ASCII06.
+The rest is ASCII07.
+The rest is ASCII08.
+The rest is ASCII09.
+The rest is ASCII10.
+The rest is ASCII11.
+The rest is ASCII12.
+The rest is ASCII13.
+The rest is ASCII14.
+The rest is ASCII15.
+The rest is ASCII16.
+The rest is ASCII17.
+The rest is ASCII18.
+The rest is ASCII19.
+The rest is ASCII20.
+The rest is ASCII21.
+The rest is ASCII22.
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,text_auto/few-utf8-chars-lf b/tests/resources/crlf_data/windows/autocrlf_input,text_auto/few-utf8-chars-lf
new file mode 100644
index 000000000..f4d25b796
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,text_auto/few-utf8-chars-lf
@@ -0,0 +1,22 @@
+⚽The rest is ASCII01.
+The rest is ASCII02.
+The rest is ASCII03.
+The rest is ASCII04.
+The rest is ASCII05.
+The rest is ASCII06.
+The rest is ASCII07.
+The rest is ASCII08.
+The rest is ASCII09.
+The rest is ASCII10.
+The rest is ASCII11.
+The rest is ASCII12.
+The rest is ASCII13.
+The rest is ASCII14.
+The rest is ASCII15.
+The rest is ASCII16.
+The rest is ASCII17.
+The rest is ASCII18.
+The rest is ASCII19.
+The rest is ASCII20.
+The rest is ASCII21.
+The rest is ASCII22.
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,text_auto/many-utf8-chars-crlf b/tests/resources/crlf_data/windows/autocrlf_input,text_auto/many-utf8-chars-crlf
new file mode 100644
index 000000000..cd574f5a2
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,text_auto/many-utf8-chars-crlf
@@ -0,0 +1,4 @@
+Lets sing!
+♫♪♬♩
+Eat food
+🍅🍕
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,text_auto/many-utf8-chars-lf b/tests/resources/crlf_data/windows/autocrlf_input,text_auto/many-utf8-chars-lf
new file mode 100644
index 000000000..9a6c3533f
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,text_auto/many-utf8-chars-lf
@@ -0,0 +1,4 @@
+Lets sing!
+♫♪♬♩
+Eat food
+🍅🍕
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,text_auto/mixed-lf-cr b/tests/resources/crlf_data/windows/autocrlf_input,text_auto/mixed-lf-cr
new file mode 100644
index 000000000..d11e7ef63
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,text_auto/mixed-lf-cr
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,text_auto/mixed-lf-cr-crlf b/tests/resources/crlf_data/windows/autocrlf_input,text_auto/mixed-lf-cr-crlf
new file mode 100644
index 000000000..417786fc3
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,text_auto/mixed-lf-cr-crlf
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,text_auto/more-crlf b/tests/resources/crlf_data/windows/autocrlf_input,text_auto/more-crlf
new file mode 100644
index 000000000..0ff5a53f1
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,text_auto/more-crlf
@@ -0,0 +1,5 @@
+crlf
+crlf
+lf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,text_auto/more-crlf-utf8bom b/tests/resources/crlf_data/windows/autocrlf_input,text_auto/more-crlf-utf8bom
new file mode 100644
index 000000000..ea030d3c6
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,text_auto/more-crlf-utf8bom
@@ -0,0 +1,5 @@
+crlf
+crlf
+lf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,text_auto/more-lf b/tests/resources/crlf_data/windows/autocrlf_input,text_auto/more-lf
new file mode 100644
index 000000000..04de00b35
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,text_auto/more-lf
@@ -0,0 +1,5 @@
+lf
+lf
+crlf
+lf
+lf
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,text_auto/more-lf-utf8bom b/tests/resources/crlf_data/windows/autocrlf_input,text_auto/more-lf-utf8bom
new file mode 100644
index 000000000..dc88e3b91
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,text_auto/more-lf-utf8bom
@@ -0,0 +1,5 @@
+lf
+lf
+crlf
+lf
+lf
diff --git a/tests/resources/crlf_data/windows/autocrlf_input,text_auto/zero-byte b/tests/resources/crlf_data/windows/autocrlf_input,text_auto/zero-byte
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input,text_auto/zero-byte
diff --git a/tests/resources/crlf_data/windows/autocrlf_input/all-crlf b/tests/resources/crlf_data/windows/autocrlf_input/all-crlf
new file mode 100644
index 000000000..a9a2e8913
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input/all-crlf
@@ -0,0 +1,4 @@
+crlf
+crlf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/windows/autocrlf_input/all-crlf-utf8bom b/tests/resources/crlf_data/windows/autocrlf_input/all-crlf-utf8bom
new file mode 100644
index 000000000..0aa76e474
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input/all-crlf-utf8bom
@@ -0,0 +1,4 @@
+crlf
+crlf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/windows/autocrlf_input/all-lf b/tests/resources/crlf_data/windows/autocrlf_input/all-lf
new file mode 100644
index 000000000..799770d1c
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input/all-lf
@@ -0,0 +1,5 @@
+lf
+lf
+lf
+lf
+lf
diff --git a/tests/resources/crlf_data/windows/autocrlf_input/all-lf-utf8bom b/tests/resources/crlf_data/windows/autocrlf_input/all-lf-utf8bom
new file mode 100644
index 000000000..7cce67e58
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input/all-lf-utf8bom
@@ -0,0 +1,5 @@
+lf
+lf
+lf
+lf
+lf
diff --git a/tests/resources/crlf_data/windows/autocrlf_input/binary-all-crlf b/tests/resources/crlf_data/windows/autocrlf_input/binary-all-crlf
new file mode 100644
index 000000000..85340755c
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input/binary-all-crlf
@@ -0,0 +1,4 @@
+one
+two
+three
+four
diff --git a/tests/resources/crlf_data/windows/autocrlf_input/binary-all-lf b/tests/resources/crlf_data/windows/autocrlf_input/binary-all-lf
new file mode 100644
index 000000000..af6fcf6da
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input/binary-all-lf
@@ -0,0 +1,4 @@
+one
+two
+three
+four
diff --git a/tests/resources/crlf_data/windows/autocrlf_input/binary-mixed-lf-cr b/tests/resources/crlf_data/windows/autocrlf_input/binary-mixed-lf-cr
new file mode 100644
index 000000000..203555c56
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input/binary-mixed-lf-cr
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/windows/autocrlf_input/binary-mixed-lf-cr-crlf b/tests/resources/crlf_data/windows/autocrlf_input/binary-mixed-lf-cr-crlf
new file mode 100644
index 000000000..aaf083a9c
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input/binary-mixed-lf-cr-crlf
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/windows/autocrlf_input/few-utf8-chars-crlf b/tests/resources/crlf_data/windows/autocrlf_input/few-utf8-chars-crlf
new file mode 100644
index 000000000..0e0528888
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input/few-utf8-chars-crlf
@@ -0,0 +1,22 @@
+⚽The rest is ASCII01.
+The rest is ASCII02.
+The rest is ASCII03.
+The rest is ASCII04.
+The rest is ASCII05.
+The rest is ASCII06.
+The rest is ASCII07.
+The rest is ASCII08.
+The rest is ASCII09.
+The rest is ASCII10.
+The rest is ASCII11.
+The rest is ASCII12.
+The rest is ASCII13.
+The rest is ASCII14.
+The rest is ASCII15.
+The rest is ASCII16.
+The rest is ASCII17.
+The rest is ASCII18.
+The rest is ASCII19.
+The rest is ASCII20.
+The rest is ASCII21.
+The rest is ASCII22.
diff --git a/tests/resources/crlf_data/windows/autocrlf_input/few-utf8-chars-lf b/tests/resources/crlf_data/windows/autocrlf_input/few-utf8-chars-lf
new file mode 100644
index 000000000..f4d25b796
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input/few-utf8-chars-lf
@@ -0,0 +1,22 @@
+⚽The rest is ASCII01.
+The rest is ASCII02.
+The rest is ASCII03.
+The rest is ASCII04.
+The rest is ASCII05.
+The rest is ASCII06.
+The rest is ASCII07.
+The rest is ASCII08.
+The rest is ASCII09.
+The rest is ASCII10.
+The rest is ASCII11.
+The rest is ASCII12.
+The rest is ASCII13.
+The rest is ASCII14.
+The rest is ASCII15.
+The rest is ASCII16.
+The rest is ASCII17.
+The rest is ASCII18.
+The rest is ASCII19.
+The rest is ASCII20.
+The rest is ASCII21.
+The rest is ASCII22.
diff --git a/tests/resources/crlf_data/windows/autocrlf_input/many-utf8-chars-crlf b/tests/resources/crlf_data/windows/autocrlf_input/many-utf8-chars-crlf
new file mode 100644
index 000000000..cd574f5a2
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input/many-utf8-chars-crlf
@@ -0,0 +1,4 @@
+Lets sing!
+♫♪♬♩
+Eat food
+🍅🍕
diff --git a/tests/resources/crlf_data/windows/autocrlf_input/many-utf8-chars-lf b/tests/resources/crlf_data/windows/autocrlf_input/many-utf8-chars-lf
new file mode 100644
index 000000000..9a6c3533f
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input/many-utf8-chars-lf
@@ -0,0 +1,4 @@
+Lets sing!
+♫♪♬♩
+Eat food
+🍅🍕
diff --git a/tests/resources/crlf_data/windows/autocrlf_input/mixed-lf-cr b/tests/resources/crlf_data/windows/autocrlf_input/mixed-lf-cr
new file mode 100644
index 000000000..d11e7ef63
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input/mixed-lf-cr
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/windows/autocrlf_input/mixed-lf-cr-crlf b/tests/resources/crlf_data/windows/autocrlf_input/mixed-lf-cr-crlf
new file mode 100644
index 000000000..417786fc3
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input/mixed-lf-cr-crlf
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/windows/autocrlf_input/more-crlf b/tests/resources/crlf_data/windows/autocrlf_input/more-crlf
new file mode 100644
index 000000000..0ff5a53f1
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input/more-crlf
@@ -0,0 +1,5 @@
+crlf
+crlf
+lf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/windows/autocrlf_input/more-crlf-utf8bom b/tests/resources/crlf_data/windows/autocrlf_input/more-crlf-utf8bom
new file mode 100644
index 000000000..ea030d3c6
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input/more-crlf-utf8bom
@@ -0,0 +1,5 @@
+crlf
+crlf
+lf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/windows/autocrlf_input/more-lf b/tests/resources/crlf_data/windows/autocrlf_input/more-lf
new file mode 100644
index 000000000..04de00b35
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input/more-lf
@@ -0,0 +1,5 @@
+lf
+lf
+crlf
+lf
+lf
diff --git a/tests/resources/crlf_data/windows/autocrlf_input/more-lf-utf8bom b/tests/resources/crlf_data/windows/autocrlf_input/more-lf-utf8bom
new file mode 100644
index 000000000..dc88e3b91
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input/more-lf-utf8bom
@@ -0,0 +1,5 @@
+lf
+lf
+crlf
+lf
+lf
diff --git a/tests/resources/crlf_data/windows/autocrlf_input/zero-byte b/tests/resources/crlf_data/windows/autocrlf_input/zero-byte
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_input/zero-byte
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,-crlf/all-crlf b/tests/resources/crlf_data/windows/autocrlf_true,-crlf/all-crlf
new file mode 100644
index 000000000..a9a2e8913
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,-crlf/all-crlf
@@ -0,0 +1,4 @@
+crlf
+crlf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,-crlf/all-crlf-utf8bom b/tests/resources/crlf_data/windows/autocrlf_true,-crlf/all-crlf-utf8bom
new file mode 100644
index 000000000..0aa76e474
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,-crlf/all-crlf-utf8bom
@@ -0,0 +1,4 @@
+crlf
+crlf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,-crlf/all-lf b/tests/resources/crlf_data/windows/autocrlf_true,-crlf/all-lf
new file mode 100644
index 000000000..799770d1c
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,-crlf/all-lf
@@ -0,0 +1,5 @@
+lf
+lf
+lf
+lf
+lf
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,-crlf/all-lf-utf8bom b/tests/resources/crlf_data/windows/autocrlf_true,-crlf/all-lf-utf8bom
new file mode 100644
index 000000000..7cce67e58
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,-crlf/all-lf-utf8bom
@@ -0,0 +1,5 @@
+lf
+lf
+lf
+lf
+lf
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,-crlf/binary-all-crlf b/tests/resources/crlf_data/windows/autocrlf_true,-crlf/binary-all-crlf
new file mode 100644
index 000000000..85340755c
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,-crlf/binary-all-crlf
@@ -0,0 +1,4 @@
+one
+two
+three
+four
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,-crlf/binary-all-lf b/tests/resources/crlf_data/windows/autocrlf_true,-crlf/binary-all-lf
new file mode 100644
index 000000000..af6fcf6da
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,-crlf/binary-all-lf
@@ -0,0 +1,4 @@
+one
+two
+three
+four
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,-crlf/binary-mixed-lf-cr b/tests/resources/crlf_data/windows/autocrlf_true,-crlf/binary-mixed-lf-cr
new file mode 100644
index 000000000..203555c56
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,-crlf/binary-mixed-lf-cr
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,-crlf/binary-mixed-lf-cr-crlf b/tests/resources/crlf_data/windows/autocrlf_true,-crlf/binary-mixed-lf-cr-crlf
new file mode 100644
index 000000000..aaf083a9c
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,-crlf/binary-mixed-lf-cr-crlf
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,-crlf/few-utf8-chars-crlf b/tests/resources/crlf_data/windows/autocrlf_true,-crlf/few-utf8-chars-crlf
new file mode 100644
index 000000000..0e0528888
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,-crlf/few-utf8-chars-crlf
@@ -0,0 +1,22 @@
+⚽The rest is ASCII01.
+The rest is ASCII02.
+The rest is ASCII03.
+The rest is ASCII04.
+The rest is ASCII05.
+The rest is ASCII06.
+The rest is ASCII07.
+The rest is ASCII08.
+The rest is ASCII09.
+The rest is ASCII10.
+The rest is ASCII11.
+The rest is ASCII12.
+The rest is ASCII13.
+The rest is ASCII14.
+The rest is ASCII15.
+The rest is ASCII16.
+The rest is ASCII17.
+The rest is ASCII18.
+The rest is ASCII19.
+The rest is ASCII20.
+The rest is ASCII21.
+The rest is ASCII22.
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,-crlf/few-utf8-chars-lf b/tests/resources/crlf_data/windows/autocrlf_true,-crlf/few-utf8-chars-lf
new file mode 100644
index 000000000..f4d25b796
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,-crlf/few-utf8-chars-lf
@@ -0,0 +1,22 @@
+⚽The rest is ASCII01.
+The rest is ASCII02.
+The rest is ASCII03.
+The rest is ASCII04.
+The rest is ASCII05.
+The rest is ASCII06.
+The rest is ASCII07.
+The rest is ASCII08.
+The rest is ASCII09.
+The rest is ASCII10.
+The rest is ASCII11.
+The rest is ASCII12.
+The rest is ASCII13.
+The rest is ASCII14.
+The rest is ASCII15.
+The rest is ASCII16.
+The rest is ASCII17.
+The rest is ASCII18.
+The rest is ASCII19.
+The rest is ASCII20.
+The rest is ASCII21.
+The rest is ASCII22.
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,-crlf/many-utf8-chars-crlf b/tests/resources/crlf_data/windows/autocrlf_true,-crlf/many-utf8-chars-crlf
new file mode 100644
index 000000000..cd574f5a2
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,-crlf/many-utf8-chars-crlf
@@ -0,0 +1,4 @@
+Lets sing!
+♫♪♬♩
+Eat food
+🍅🍕
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,-crlf/many-utf8-chars-lf b/tests/resources/crlf_data/windows/autocrlf_true,-crlf/many-utf8-chars-lf
new file mode 100644
index 000000000..9a6c3533f
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,-crlf/many-utf8-chars-lf
@@ -0,0 +1,4 @@
+Lets sing!
+♫♪♬♩
+Eat food
+🍅🍕
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,-crlf/mixed-lf-cr b/tests/resources/crlf_data/windows/autocrlf_true,-crlf/mixed-lf-cr
new file mode 100644
index 000000000..d11e7ef63
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,-crlf/mixed-lf-cr
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,-crlf/mixed-lf-cr-crlf b/tests/resources/crlf_data/windows/autocrlf_true,-crlf/mixed-lf-cr-crlf
new file mode 100644
index 000000000..417786fc3
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,-crlf/mixed-lf-cr-crlf
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,-crlf/more-crlf b/tests/resources/crlf_data/windows/autocrlf_true,-crlf/more-crlf
new file mode 100644
index 000000000..0ff5a53f1
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,-crlf/more-crlf
@@ -0,0 +1,5 @@
+crlf
+crlf
+lf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,-crlf/more-crlf-utf8bom b/tests/resources/crlf_data/windows/autocrlf_true,-crlf/more-crlf-utf8bom
new file mode 100644
index 000000000..ea030d3c6
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,-crlf/more-crlf-utf8bom
@@ -0,0 +1,5 @@
+crlf
+crlf
+lf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,-crlf/more-lf b/tests/resources/crlf_data/windows/autocrlf_true,-crlf/more-lf
new file mode 100644
index 000000000..04de00b35
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,-crlf/more-lf
@@ -0,0 +1,5 @@
+lf
+lf
+crlf
+lf
+lf
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,-crlf/more-lf-utf8bom b/tests/resources/crlf_data/windows/autocrlf_true,-crlf/more-lf-utf8bom
new file mode 100644
index 000000000..dc88e3b91
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,-crlf/more-lf-utf8bom
@@ -0,0 +1,5 @@
+lf
+lf
+crlf
+lf
+lf
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,-crlf/zero-byte b/tests/resources/crlf_data/windows/autocrlf_true,-crlf/zero-byte
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,-crlf/zero-byte
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,-text/all-crlf b/tests/resources/crlf_data/windows/autocrlf_true,-text/all-crlf
new file mode 100644
index 000000000..a9a2e8913
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,-text/all-crlf
@@ -0,0 +1,4 @@
+crlf
+crlf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,-text/all-crlf-utf8bom b/tests/resources/crlf_data/windows/autocrlf_true,-text/all-crlf-utf8bom
new file mode 100644
index 000000000..0aa76e474
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,-text/all-crlf-utf8bom
@@ -0,0 +1,4 @@
+crlf
+crlf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,-text/all-lf b/tests/resources/crlf_data/windows/autocrlf_true,-text/all-lf
new file mode 100644
index 000000000..799770d1c
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,-text/all-lf
@@ -0,0 +1,5 @@
+lf
+lf
+lf
+lf
+lf
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,-text/all-lf-utf8bom b/tests/resources/crlf_data/windows/autocrlf_true,-text/all-lf-utf8bom
new file mode 100644
index 000000000..7cce67e58
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,-text/all-lf-utf8bom
@@ -0,0 +1,5 @@
+lf
+lf
+lf
+lf
+lf
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,-text/binary-all-crlf b/tests/resources/crlf_data/windows/autocrlf_true,-text/binary-all-crlf
new file mode 100644
index 000000000..85340755c
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,-text/binary-all-crlf
@@ -0,0 +1,4 @@
+one
+two
+three
+four
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,-text/binary-all-lf b/tests/resources/crlf_data/windows/autocrlf_true,-text/binary-all-lf
new file mode 100644
index 000000000..af6fcf6da
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,-text/binary-all-lf
@@ -0,0 +1,4 @@
+one
+two
+three
+four
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,-text/binary-mixed-lf-cr b/tests/resources/crlf_data/windows/autocrlf_true,-text/binary-mixed-lf-cr
new file mode 100644
index 000000000..203555c56
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,-text/binary-mixed-lf-cr
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,-text/binary-mixed-lf-cr-crlf b/tests/resources/crlf_data/windows/autocrlf_true,-text/binary-mixed-lf-cr-crlf
new file mode 100644
index 000000000..aaf083a9c
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,-text/binary-mixed-lf-cr-crlf
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,-text/few-utf8-chars-crlf b/tests/resources/crlf_data/windows/autocrlf_true,-text/few-utf8-chars-crlf
new file mode 100644
index 000000000..0e0528888
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,-text/few-utf8-chars-crlf
@@ -0,0 +1,22 @@
+⚽The rest is ASCII01.
+The rest is ASCII02.
+The rest is ASCII03.
+The rest is ASCII04.
+The rest is ASCII05.
+The rest is ASCII06.
+The rest is ASCII07.
+The rest is ASCII08.
+The rest is ASCII09.
+The rest is ASCII10.
+The rest is ASCII11.
+The rest is ASCII12.
+The rest is ASCII13.
+The rest is ASCII14.
+The rest is ASCII15.
+The rest is ASCII16.
+The rest is ASCII17.
+The rest is ASCII18.
+The rest is ASCII19.
+The rest is ASCII20.
+The rest is ASCII21.
+The rest is ASCII22.
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,-text/few-utf8-chars-lf b/tests/resources/crlf_data/windows/autocrlf_true,-text/few-utf8-chars-lf
new file mode 100644
index 000000000..f4d25b796
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,-text/few-utf8-chars-lf
@@ -0,0 +1,22 @@
+⚽The rest is ASCII01.
+The rest is ASCII02.
+The rest is ASCII03.
+The rest is ASCII04.
+The rest is ASCII05.
+The rest is ASCII06.
+The rest is ASCII07.
+The rest is ASCII08.
+The rest is ASCII09.
+The rest is ASCII10.
+The rest is ASCII11.
+The rest is ASCII12.
+The rest is ASCII13.
+The rest is ASCII14.
+The rest is ASCII15.
+The rest is ASCII16.
+The rest is ASCII17.
+The rest is ASCII18.
+The rest is ASCII19.
+The rest is ASCII20.
+The rest is ASCII21.
+The rest is ASCII22.
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,-text/many-utf8-chars-crlf b/tests/resources/crlf_data/windows/autocrlf_true,-text/many-utf8-chars-crlf
new file mode 100644
index 000000000..cd574f5a2
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,-text/many-utf8-chars-crlf
@@ -0,0 +1,4 @@
+Lets sing!
+♫♪♬♩
+Eat food
+🍅🍕
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,-text/many-utf8-chars-lf b/tests/resources/crlf_data/windows/autocrlf_true,-text/many-utf8-chars-lf
new file mode 100644
index 000000000..9a6c3533f
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,-text/many-utf8-chars-lf
@@ -0,0 +1,4 @@
+Lets sing!
+♫♪♬♩
+Eat food
+🍅🍕
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,-text/mixed-lf-cr b/tests/resources/crlf_data/windows/autocrlf_true,-text/mixed-lf-cr
new file mode 100644
index 000000000..d11e7ef63
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,-text/mixed-lf-cr
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,-text/mixed-lf-cr-crlf b/tests/resources/crlf_data/windows/autocrlf_true,-text/mixed-lf-cr-crlf
new file mode 100644
index 000000000..417786fc3
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,-text/mixed-lf-cr-crlf
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,-text/more-crlf b/tests/resources/crlf_data/windows/autocrlf_true,-text/more-crlf
new file mode 100644
index 000000000..0ff5a53f1
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,-text/more-crlf
@@ -0,0 +1,5 @@
+crlf
+crlf
+lf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,-text/more-crlf-utf8bom b/tests/resources/crlf_data/windows/autocrlf_true,-text/more-crlf-utf8bom
new file mode 100644
index 000000000..ea030d3c6
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,-text/more-crlf-utf8bom
@@ -0,0 +1,5 @@
+crlf
+crlf
+lf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,-text/more-lf b/tests/resources/crlf_data/windows/autocrlf_true,-text/more-lf
new file mode 100644
index 000000000..04de00b35
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,-text/more-lf
@@ -0,0 +1,5 @@
+lf
+lf
+crlf
+lf
+lf
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,-text/more-lf-utf8bom b/tests/resources/crlf_data/windows/autocrlf_true,-text/more-lf-utf8bom
new file mode 100644
index 000000000..dc88e3b91
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,-text/more-lf-utf8bom
@@ -0,0 +1,5 @@
+lf
+lf
+crlf
+lf
+lf
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,-text/zero-byte b/tests/resources/crlf_data/windows/autocrlf_true,-text/zero-byte
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,-text/zero-byte
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,crlf/all-crlf b/tests/resources/crlf_data/windows/autocrlf_true,crlf/all-crlf
new file mode 100644
index 000000000..a9a2e8913
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,crlf/all-crlf
@@ -0,0 +1,4 @@
+crlf
+crlf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,crlf/all-crlf-utf8bom b/tests/resources/crlf_data/windows/autocrlf_true,crlf/all-crlf-utf8bom
new file mode 100644
index 000000000..0aa76e474
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,crlf/all-crlf-utf8bom
@@ -0,0 +1,4 @@
+crlf
+crlf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,crlf/all-lf b/tests/resources/crlf_data/windows/autocrlf_true,crlf/all-lf
new file mode 100644
index 000000000..f557a02d8
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,crlf/all-lf
@@ -0,0 +1,5 @@
+lf
+lf
+lf
+lf
+lf
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,crlf/all-lf-utf8bom b/tests/resources/crlf_data/windows/autocrlf_true,crlf/all-lf-utf8bom
new file mode 100644
index 000000000..381cfe630
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,crlf/all-lf-utf8bom
@@ -0,0 +1,5 @@
+lf
+lf
+lf
+lf
+lf
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,crlf/binary-all-crlf b/tests/resources/crlf_data/windows/autocrlf_true,crlf/binary-all-crlf
new file mode 100644
index 000000000..85340755c
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,crlf/binary-all-crlf
@@ -0,0 +1,4 @@
+one
+two
+three
+four
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,crlf/binary-all-lf b/tests/resources/crlf_data/windows/autocrlf_true,crlf/binary-all-lf
new file mode 100644
index 000000000..85340755c
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,crlf/binary-all-lf
@@ -0,0 +1,4 @@
+one
+two
+three
+four
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,crlf/binary-mixed-lf-cr b/tests/resources/crlf_data/windows/autocrlf_true,crlf/binary-mixed-lf-cr
new file mode 100644
index 000000000..fd2abfa9d
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,crlf/binary-mixed-lf-cr
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,crlf/binary-mixed-lf-cr-crlf b/tests/resources/crlf_data/windows/autocrlf_true,crlf/binary-mixed-lf-cr-crlf
new file mode 100644
index 000000000..fd2abfa9d
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,crlf/binary-mixed-lf-cr-crlf
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,crlf/few-utf8-chars-crlf b/tests/resources/crlf_data/windows/autocrlf_true,crlf/few-utf8-chars-crlf
new file mode 100644
index 000000000..0e0528888
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,crlf/few-utf8-chars-crlf
@@ -0,0 +1,22 @@
+⚽The rest is ASCII01.
+The rest is ASCII02.
+The rest is ASCII03.
+The rest is ASCII04.
+The rest is ASCII05.
+The rest is ASCII06.
+The rest is ASCII07.
+The rest is ASCII08.
+The rest is ASCII09.
+The rest is ASCII10.
+The rest is ASCII11.
+The rest is ASCII12.
+The rest is ASCII13.
+The rest is ASCII14.
+The rest is ASCII15.
+The rest is ASCII16.
+The rest is ASCII17.
+The rest is ASCII18.
+The rest is ASCII19.
+The rest is ASCII20.
+The rest is ASCII21.
+The rest is ASCII22.
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,crlf/few-utf8-chars-lf b/tests/resources/crlf_data/windows/autocrlf_true,crlf/few-utf8-chars-lf
new file mode 100644
index 000000000..0e0528888
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,crlf/few-utf8-chars-lf
@@ -0,0 +1,22 @@
+⚽The rest is ASCII01.
+The rest is ASCII02.
+The rest is ASCII03.
+The rest is ASCII04.
+The rest is ASCII05.
+The rest is ASCII06.
+The rest is ASCII07.
+The rest is ASCII08.
+The rest is ASCII09.
+The rest is ASCII10.
+The rest is ASCII11.
+The rest is ASCII12.
+The rest is ASCII13.
+The rest is ASCII14.
+The rest is ASCII15.
+The rest is ASCII16.
+The rest is ASCII17.
+The rest is ASCII18.
+The rest is ASCII19.
+The rest is ASCII20.
+The rest is ASCII21.
+The rest is ASCII22.
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,crlf/many-utf8-chars-crlf b/tests/resources/crlf_data/windows/autocrlf_true,crlf/many-utf8-chars-crlf
new file mode 100644
index 000000000..cd574f5a2
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,crlf/many-utf8-chars-crlf
@@ -0,0 +1,4 @@
+Lets sing!
+♫♪♬♩
+Eat food
+🍅🍕
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,crlf/many-utf8-chars-lf b/tests/resources/crlf_data/windows/autocrlf_true,crlf/many-utf8-chars-lf
new file mode 100644
index 000000000..cd574f5a2
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,crlf/many-utf8-chars-lf
@@ -0,0 +1,4 @@
+Lets sing!
+♫♪♬♩
+Eat food
+🍅🍕
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,crlf/mixed-lf-cr b/tests/resources/crlf_data/windows/autocrlf_true,crlf/mixed-lf-cr
new file mode 100644
index 000000000..df8c0f680
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,crlf/mixed-lf-cr
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,crlf/mixed-lf-cr-crlf b/tests/resources/crlf_data/windows/autocrlf_true,crlf/mixed-lf-cr-crlf
new file mode 100644
index 000000000..df8c0f680
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,crlf/mixed-lf-cr-crlf
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,crlf/more-crlf b/tests/resources/crlf_data/windows/autocrlf_true,crlf/more-crlf
new file mode 100644
index 000000000..e682c3077
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,crlf/more-crlf
@@ -0,0 +1,5 @@
+crlf
+crlf
+lf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,crlf/more-crlf-utf8bom b/tests/resources/crlf_data/windows/autocrlf_true,crlf/more-crlf-utf8bom
new file mode 100644
index 000000000..2e1220cbb
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,crlf/more-crlf-utf8bom
@@ -0,0 +1,5 @@
+crlf
+crlf
+lf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,crlf/more-lf b/tests/resources/crlf_data/windows/autocrlf_true,crlf/more-lf
new file mode 100644
index 000000000..6da5b0c7e
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,crlf/more-lf
@@ -0,0 +1,5 @@
+lf
+lf
+crlf
+lf
+lf
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,crlf/more-lf-utf8bom b/tests/resources/crlf_data/windows/autocrlf_true,crlf/more-lf-utf8bom
new file mode 100644
index 000000000..3fa59c809
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,crlf/more-lf-utf8bom
@@ -0,0 +1,5 @@
+lf
+lf
+crlf
+lf
+lf
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,crlf/zero-byte b/tests/resources/crlf_data/windows/autocrlf_true,crlf/zero-byte
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,crlf/zero-byte
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,eol_crlf/all-crlf b/tests/resources/crlf_data/windows/autocrlf_true,eol_crlf/all-crlf
new file mode 100644
index 000000000..a9a2e8913
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,eol_crlf/all-crlf
@@ -0,0 +1,4 @@
+crlf
+crlf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,eol_crlf/all-crlf-utf8bom b/tests/resources/crlf_data/windows/autocrlf_true,eol_crlf/all-crlf-utf8bom
new file mode 100644
index 000000000..0aa76e474
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,eol_crlf/all-crlf-utf8bom
@@ -0,0 +1,4 @@
+crlf
+crlf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,eol_crlf/all-lf b/tests/resources/crlf_data/windows/autocrlf_true,eol_crlf/all-lf
new file mode 100644
index 000000000..f557a02d8
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,eol_crlf/all-lf
@@ -0,0 +1,5 @@
+lf
+lf
+lf
+lf
+lf
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,eol_crlf/all-lf-utf8bom b/tests/resources/crlf_data/windows/autocrlf_true,eol_crlf/all-lf-utf8bom
new file mode 100644
index 000000000..381cfe630
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,eol_crlf/all-lf-utf8bom
@@ -0,0 +1,5 @@
+lf
+lf
+lf
+lf
+lf
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,eol_crlf/binary-all-crlf b/tests/resources/crlf_data/windows/autocrlf_true,eol_crlf/binary-all-crlf
new file mode 100644
index 000000000..85340755c
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,eol_crlf/binary-all-crlf
@@ -0,0 +1,4 @@
+one
+two
+three
+four
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,eol_crlf/binary-all-lf b/tests/resources/crlf_data/windows/autocrlf_true,eol_crlf/binary-all-lf
new file mode 100644
index 000000000..85340755c
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,eol_crlf/binary-all-lf
@@ -0,0 +1,4 @@
+one
+two
+three
+four
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,eol_crlf/binary-mixed-lf-cr b/tests/resources/crlf_data/windows/autocrlf_true,eol_crlf/binary-mixed-lf-cr
new file mode 100644
index 000000000..fd2abfa9d
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,eol_crlf/binary-mixed-lf-cr
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,eol_crlf/binary-mixed-lf-cr-crlf b/tests/resources/crlf_data/windows/autocrlf_true,eol_crlf/binary-mixed-lf-cr-crlf
new file mode 100644
index 000000000..fd2abfa9d
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,eol_crlf/binary-mixed-lf-cr-crlf
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,eol_crlf/few-utf8-chars-crlf b/tests/resources/crlf_data/windows/autocrlf_true,eol_crlf/few-utf8-chars-crlf
new file mode 100644
index 000000000..0e0528888
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,eol_crlf/few-utf8-chars-crlf
@@ -0,0 +1,22 @@
+⚽The rest is ASCII01.
+The rest is ASCII02.
+The rest is ASCII03.
+The rest is ASCII04.
+The rest is ASCII05.
+The rest is ASCII06.
+The rest is ASCII07.
+The rest is ASCII08.
+The rest is ASCII09.
+The rest is ASCII10.
+The rest is ASCII11.
+The rest is ASCII12.
+The rest is ASCII13.
+The rest is ASCII14.
+The rest is ASCII15.
+The rest is ASCII16.
+The rest is ASCII17.
+The rest is ASCII18.
+The rest is ASCII19.
+The rest is ASCII20.
+The rest is ASCII21.
+The rest is ASCII22.
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,eol_crlf/few-utf8-chars-lf b/tests/resources/crlf_data/windows/autocrlf_true,eol_crlf/few-utf8-chars-lf
new file mode 100644
index 000000000..0e0528888
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,eol_crlf/few-utf8-chars-lf
@@ -0,0 +1,22 @@
+⚽The rest is ASCII01.
+The rest is ASCII02.
+The rest is ASCII03.
+The rest is ASCII04.
+The rest is ASCII05.
+The rest is ASCII06.
+The rest is ASCII07.
+The rest is ASCII08.
+The rest is ASCII09.
+The rest is ASCII10.
+The rest is ASCII11.
+The rest is ASCII12.
+The rest is ASCII13.
+The rest is ASCII14.
+The rest is ASCII15.
+The rest is ASCII16.
+The rest is ASCII17.
+The rest is ASCII18.
+The rest is ASCII19.
+The rest is ASCII20.
+The rest is ASCII21.
+The rest is ASCII22.
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,eol_crlf/many-utf8-chars-crlf b/tests/resources/crlf_data/windows/autocrlf_true,eol_crlf/many-utf8-chars-crlf
new file mode 100644
index 000000000..cd574f5a2
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,eol_crlf/many-utf8-chars-crlf
@@ -0,0 +1,4 @@
+Lets sing!
+♫♪♬♩
+Eat food
+🍅🍕
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,eol_crlf/many-utf8-chars-lf b/tests/resources/crlf_data/windows/autocrlf_true,eol_crlf/many-utf8-chars-lf
new file mode 100644
index 000000000..cd574f5a2
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,eol_crlf/many-utf8-chars-lf
@@ -0,0 +1,4 @@
+Lets sing!
+♫♪♬♩
+Eat food
+🍅🍕
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,eol_crlf/mixed-lf-cr b/tests/resources/crlf_data/windows/autocrlf_true,eol_crlf/mixed-lf-cr
new file mode 100644
index 000000000..df8c0f680
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,eol_crlf/mixed-lf-cr
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,eol_crlf/mixed-lf-cr-crlf b/tests/resources/crlf_data/windows/autocrlf_true,eol_crlf/mixed-lf-cr-crlf
new file mode 100644
index 000000000..df8c0f680
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,eol_crlf/mixed-lf-cr-crlf
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,eol_crlf/more-crlf b/tests/resources/crlf_data/windows/autocrlf_true,eol_crlf/more-crlf
new file mode 100644
index 000000000..e682c3077
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,eol_crlf/more-crlf
@@ -0,0 +1,5 @@
+crlf
+crlf
+lf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,eol_crlf/more-crlf-utf8bom b/tests/resources/crlf_data/windows/autocrlf_true,eol_crlf/more-crlf-utf8bom
new file mode 100644
index 000000000..2e1220cbb
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,eol_crlf/more-crlf-utf8bom
@@ -0,0 +1,5 @@
+crlf
+crlf
+lf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,eol_crlf/more-lf b/tests/resources/crlf_data/windows/autocrlf_true,eol_crlf/more-lf
new file mode 100644
index 000000000..6da5b0c7e
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,eol_crlf/more-lf
@@ -0,0 +1,5 @@
+lf
+lf
+crlf
+lf
+lf
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,eol_crlf/more-lf-utf8bom b/tests/resources/crlf_data/windows/autocrlf_true,eol_crlf/more-lf-utf8bom
new file mode 100644
index 000000000..3fa59c809
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,eol_crlf/more-lf-utf8bom
@@ -0,0 +1,5 @@
+lf
+lf
+crlf
+lf
+lf
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,eol_crlf/zero-byte b/tests/resources/crlf_data/windows/autocrlf_true,eol_crlf/zero-byte
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,eol_crlf/zero-byte
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,eol_lf/all-crlf b/tests/resources/crlf_data/windows/autocrlf_true,eol_lf/all-crlf
new file mode 100644
index 000000000..a9a2e8913
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,eol_lf/all-crlf
@@ -0,0 +1,4 @@
+crlf
+crlf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,eol_lf/all-crlf-utf8bom b/tests/resources/crlf_data/windows/autocrlf_true,eol_lf/all-crlf-utf8bom
new file mode 100644
index 000000000..0aa76e474
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,eol_lf/all-crlf-utf8bom
@@ -0,0 +1,4 @@
+crlf
+crlf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,eol_lf/all-lf b/tests/resources/crlf_data/windows/autocrlf_true,eol_lf/all-lf
new file mode 100644
index 000000000..799770d1c
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,eol_lf/all-lf
@@ -0,0 +1,5 @@
+lf
+lf
+lf
+lf
+lf
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,eol_lf/all-lf-utf8bom b/tests/resources/crlf_data/windows/autocrlf_true,eol_lf/all-lf-utf8bom
new file mode 100644
index 000000000..7cce67e58
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,eol_lf/all-lf-utf8bom
@@ -0,0 +1,5 @@
+lf
+lf
+lf
+lf
+lf
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,eol_lf/binary-all-crlf b/tests/resources/crlf_data/windows/autocrlf_true,eol_lf/binary-all-crlf
new file mode 100644
index 000000000..85340755c
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,eol_lf/binary-all-crlf
@@ -0,0 +1,4 @@
+one
+two
+three
+four
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,eol_lf/binary-all-lf b/tests/resources/crlf_data/windows/autocrlf_true,eol_lf/binary-all-lf
new file mode 100644
index 000000000..af6fcf6da
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,eol_lf/binary-all-lf
@@ -0,0 +1,4 @@
+one
+two
+three
+four
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,eol_lf/binary-mixed-lf-cr b/tests/resources/crlf_data/windows/autocrlf_true,eol_lf/binary-mixed-lf-cr
new file mode 100644
index 000000000..203555c56
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,eol_lf/binary-mixed-lf-cr
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,eol_lf/binary-mixed-lf-cr-crlf b/tests/resources/crlf_data/windows/autocrlf_true,eol_lf/binary-mixed-lf-cr-crlf
new file mode 100644
index 000000000..aaf083a9c
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,eol_lf/binary-mixed-lf-cr-crlf
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,eol_lf/few-utf8-chars-crlf b/tests/resources/crlf_data/windows/autocrlf_true,eol_lf/few-utf8-chars-crlf
new file mode 100644
index 000000000..0e0528888
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,eol_lf/few-utf8-chars-crlf
@@ -0,0 +1,22 @@
+⚽The rest is ASCII01.
+The rest is ASCII02.
+The rest is ASCII03.
+The rest is ASCII04.
+The rest is ASCII05.
+The rest is ASCII06.
+The rest is ASCII07.
+The rest is ASCII08.
+The rest is ASCII09.
+The rest is ASCII10.
+The rest is ASCII11.
+The rest is ASCII12.
+The rest is ASCII13.
+The rest is ASCII14.
+The rest is ASCII15.
+The rest is ASCII16.
+The rest is ASCII17.
+The rest is ASCII18.
+The rest is ASCII19.
+The rest is ASCII20.
+The rest is ASCII21.
+The rest is ASCII22.
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,eol_lf/few-utf8-chars-lf b/tests/resources/crlf_data/windows/autocrlf_true,eol_lf/few-utf8-chars-lf
new file mode 100644
index 000000000..f4d25b796
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,eol_lf/few-utf8-chars-lf
@@ -0,0 +1,22 @@
+⚽The rest is ASCII01.
+The rest is ASCII02.
+The rest is ASCII03.
+The rest is ASCII04.
+The rest is ASCII05.
+The rest is ASCII06.
+The rest is ASCII07.
+The rest is ASCII08.
+The rest is ASCII09.
+The rest is ASCII10.
+The rest is ASCII11.
+The rest is ASCII12.
+The rest is ASCII13.
+The rest is ASCII14.
+The rest is ASCII15.
+The rest is ASCII16.
+The rest is ASCII17.
+The rest is ASCII18.
+The rest is ASCII19.
+The rest is ASCII20.
+The rest is ASCII21.
+The rest is ASCII22.
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,eol_lf/many-utf8-chars-crlf b/tests/resources/crlf_data/windows/autocrlf_true,eol_lf/many-utf8-chars-crlf
new file mode 100644
index 000000000..cd574f5a2
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,eol_lf/many-utf8-chars-crlf
@@ -0,0 +1,4 @@
+Lets sing!
+♫♪♬♩
+Eat food
+🍅🍕
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,eol_lf/many-utf8-chars-lf b/tests/resources/crlf_data/windows/autocrlf_true,eol_lf/many-utf8-chars-lf
new file mode 100644
index 000000000..9a6c3533f
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,eol_lf/many-utf8-chars-lf
@@ -0,0 +1,4 @@
+Lets sing!
+♫♪♬♩
+Eat food
+🍅🍕
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,eol_lf/mixed-lf-cr b/tests/resources/crlf_data/windows/autocrlf_true,eol_lf/mixed-lf-cr
new file mode 100644
index 000000000..d11e7ef63
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,eol_lf/mixed-lf-cr
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,eol_lf/mixed-lf-cr-crlf b/tests/resources/crlf_data/windows/autocrlf_true,eol_lf/mixed-lf-cr-crlf
new file mode 100644
index 000000000..417786fc3
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,eol_lf/mixed-lf-cr-crlf
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,eol_lf/more-crlf b/tests/resources/crlf_data/windows/autocrlf_true,eol_lf/more-crlf
new file mode 100644
index 000000000..0ff5a53f1
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,eol_lf/more-crlf
@@ -0,0 +1,5 @@
+crlf
+crlf
+lf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,eol_lf/more-crlf-utf8bom b/tests/resources/crlf_data/windows/autocrlf_true,eol_lf/more-crlf-utf8bom
new file mode 100644
index 000000000..ea030d3c6
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,eol_lf/more-crlf-utf8bom
@@ -0,0 +1,5 @@
+crlf
+crlf
+lf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,eol_lf/more-lf b/tests/resources/crlf_data/windows/autocrlf_true,eol_lf/more-lf
new file mode 100644
index 000000000..04de00b35
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,eol_lf/more-lf
@@ -0,0 +1,5 @@
+lf
+lf
+crlf
+lf
+lf
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,eol_lf/more-lf-utf8bom b/tests/resources/crlf_data/windows/autocrlf_true,eol_lf/more-lf-utf8bom
new file mode 100644
index 000000000..dc88e3b91
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,eol_lf/more-lf-utf8bom
@@ -0,0 +1,5 @@
+lf
+lf
+crlf
+lf
+lf
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,eol_lf/zero-byte b/tests/resources/crlf_data/windows/autocrlf_true,eol_lf/zero-byte
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,eol_lf/zero-byte
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,text,eol_crlf/all-crlf b/tests/resources/crlf_data/windows/autocrlf_true,text,eol_crlf/all-crlf
new file mode 100644
index 000000000..a9a2e8913
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,text,eol_crlf/all-crlf
@@ -0,0 +1,4 @@
+crlf
+crlf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,text,eol_crlf/all-crlf-utf8bom b/tests/resources/crlf_data/windows/autocrlf_true,text,eol_crlf/all-crlf-utf8bom
new file mode 100644
index 000000000..0aa76e474
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,text,eol_crlf/all-crlf-utf8bom
@@ -0,0 +1,4 @@
+crlf
+crlf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,text,eol_crlf/all-lf b/tests/resources/crlf_data/windows/autocrlf_true,text,eol_crlf/all-lf
new file mode 100644
index 000000000..f557a02d8
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,text,eol_crlf/all-lf
@@ -0,0 +1,5 @@
+lf
+lf
+lf
+lf
+lf
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,text,eol_crlf/all-lf-utf8bom b/tests/resources/crlf_data/windows/autocrlf_true,text,eol_crlf/all-lf-utf8bom
new file mode 100644
index 000000000..381cfe630
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,text,eol_crlf/all-lf-utf8bom
@@ -0,0 +1,5 @@
+lf
+lf
+lf
+lf
+lf
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,text,eol_crlf/binary-all-crlf b/tests/resources/crlf_data/windows/autocrlf_true,text,eol_crlf/binary-all-crlf
new file mode 100644
index 000000000..85340755c
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,text,eol_crlf/binary-all-crlf
@@ -0,0 +1,4 @@
+one
+two
+three
+four
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,text,eol_crlf/binary-all-lf b/tests/resources/crlf_data/windows/autocrlf_true,text,eol_crlf/binary-all-lf
new file mode 100644
index 000000000..85340755c
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,text,eol_crlf/binary-all-lf
@@ -0,0 +1,4 @@
+one
+two
+three
+four
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,text,eol_crlf/binary-mixed-lf-cr b/tests/resources/crlf_data/windows/autocrlf_true,text,eol_crlf/binary-mixed-lf-cr
new file mode 100644
index 000000000..fd2abfa9d
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,text,eol_crlf/binary-mixed-lf-cr
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,text,eol_crlf/binary-mixed-lf-cr-crlf b/tests/resources/crlf_data/windows/autocrlf_true,text,eol_crlf/binary-mixed-lf-cr-crlf
new file mode 100644
index 000000000..fd2abfa9d
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,text,eol_crlf/binary-mixed-lf-cr-crlf
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,text,eol_crlf/few-utf8-chars-crlf b/tests/resources/crlf_data/windows/autocrlf_true,text,eol_crlf/few-utf8-chars-crlf
new file mode 100644
index 000000000..0e0528888
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,text,eol_crlf/few-utf8-chars-crlf
@@ -0,0 +1,22 @@
+⚽The rest is ASCII01.
+The rest is ASCII02.
+The rest is ASCII03.
+The rest is ASCII04.
+The rest is ASCII05.
+The rest is ASCII06.
+The rest is ASCII07.
+The rest is ASCII08.
+The rest is ASCII09.
+The rest is ASCII10.
+The rest is ASCII11.
+The rest is ASCII12.
+The rest is ASCII13.
+The rest is ASCII14.
+The rest is ASCII15.
+The rest is ASCII16.
+The rest is ASCII17.
+The rest is ASCII18.
+The rest is ASCII19.
+The rest is ASCII20.
+The rest is ASCII21.
+The rest is ASCII22.
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,text,eol_crlf/few-utf8-chars-lf b/tests/resources/crlf_data/windows/autocrlf_true,text,eol_crlf/few-utf8-chars-lf
new file mode 100644
index 000000000..0e0528888
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,text,eol_crlf/few-utf8-chars-lf
@@ -0,0 +1,22 @@
+⚽The rest is ASCII01.
+The rest is ASCII02.
+The rest is ASCII03.
+The rest is ASCII04.
+The rest is ASCII05.
+The rest is ASCII06.
+The rest is ASCII07.
+The rest is ASCII08.
+The rest is ASCII09.
+The rest is ASCII10.
+The rest is ASCII11.
+The rest is ASCII12.
+The rest is ASCII13.
+The rest is ASCII14.
+The rest is ASCII15.
+The rest is ASCII16.
+The rest is ASCII17.
+The rest is ASCII18.
+The rest is ASCII19.
+The rest is ASCII20.
+The rest is ASCII21.
+The rest is ASCII22.
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,text,eol_crlf/many-utf8-chars-crlf b/tests/resources/crlf_data/windows/autocrlf_true,text,eol_crlf/many-utf8-chars-crlf
new file mode 100644
index 000000000..cd574f5a2
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,text,eol_crlf/many-utf8-chars-crlf
@@ -0,0 +1,4 @@
+Lets sing!
+♫♪♬♩
+Eat food
+🍅🍕
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,text,eol_crlf/many-utf8-chars-lf b/tests/resources/crlf_data/windows/autocrlf_true,text,eol_crlf/many-utf8-chars-lf
new file mode 100644
index 000000000..cd574f5a2
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,text,eol_crlf/many-utf8-chars-lf
@@ -0,0 +1,4 @@
+Lets sing!
+♫♪♬♩
+Eat food
+🍅🍕
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,text,eol_crlf/mixed-lf-cr b/tests/resources/crlf_data/windows/autocrlf_true,text,eol_crlf/mixed-lf-cr
new file mode 100644
index 000000000..df8c0f680
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,text,eol_crlf/mixed-lf-cr
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,text,eol_crlf/mixed-lf-cr-crlf b/tests/resources/crlf_data/windows/autocrlf_true,text,eol_crlf/mixed-lf-cr-crlf
new file mode 100644
index 000000000..df8c0f680
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,text,eol_crlf/mixed-lf-cr-crlf
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,text,eol_crlf/more-crlf b/tests/resources/crlf_data/windows/autocrlf_true,text,eol_crlf/more-crlf
new file mode 100644
index 000000000..e682c3077
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,text,eol_crlf/more-crlf
@@ -0,0 +1,5 @@
+crlf
+crlf
+lf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,text,eol_crlf/more-crlf-utf8bom b/tests/resources/crlf_data/windows/autocrlf_true,text,eol_crlf/more-crlf-utf8bom
new file mode 100644
index 000000000..2e1220cbb
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,text,eol_crlf/more-crlf-utf8bom
@@ -0,0 +1,5 @@
+crlf
+crlf
+lf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,text,eol_crlf/more-lf b/tests/resources/crlf_data/windows/autocrlf_true,text,eol_crlf/more-lf
new file mode 100644
index 000000000..6da5b0c7e
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,text,eol_crlf/more-lf
@@ -0,0 +1,5 @@
+lf
+lf
+crlf
+lf
+lf
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,text,eol_crlf/more-lf-utf8bom b/tests/resources/crlf_data/windows/autocrlf_true,text,eol_crlf/more-lf-utf8bom
new file mode 100644
index 000000000..3fa59c809
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,text,eol_crlf/more-lf-utf8bom
@@ -0,0 +1,5 @@
+lf
+lf
+crlf
+lf
+lf
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,text,eol_crlf/zero-byte b/tests/resources/crlf_data/windows/autocrlf_true,text,eol_crlf/zero-byte
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,text,eol_crlf/zero-byte
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,text,eol_lf/all-crlf b/tests/resources/crlf_data/windows/autocrlf_true,text,eol_lf/all-crlf
new file mode 100644
index 000000000..a9a2e8913
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,text,eol_lf/all-crlf
@@ -0,0 +1,4 @@
+crlf
+crlf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,text,eol_lf/all-crlf-utf8bom b/tests/resources/crlf_data/windows/autocrlf_true,text,eol_lf/all-crlf-utf8bom
new file mode 100644
index 000000000..0aa76e474
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,text,eol_lf/all-crlf-utf8bom
@@ -0,0 +1,4 @@
+crlf
+crlf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,text,eol_lf/all-lf b/tests/resources/crlf_data/windows/autocrlf_true,text,eol_lf/all-lf
new file mode 100644
index 000000000..799770d1c
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,text,eol_lf/all-lf
@@ -0,0 +1,5 @@
+lf
+lf
+lf
+lf
+lf
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,text,eol_lf/all-lf-utf8bom b/tests/resources/crlf_data/windows/autocrlf_true,text,eol_lf/all-lf-utf8bom
new file mode 100644
index 000000000..7cce67e58
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,text,eol_lf/all-lf-utf8bom
@@ -0,0 +1,5 @@
+lf
+lf
+lf
+lf
+lf
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,text,eol_lf/binary-all-crlf b/tests/resources/crlf_data/windows/autocrlf_true,text,eol_lf/binary-all-crlf
new file mode 100644
index 000000000..85340755c
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,text,eol_lf/binary-all-crlf
@@ -0,0 +1,4 @@
+one
+two
+three
+four
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,text,eol_lf/binary-all-lf b/tests/resources/crlf_data/windows/autocrlf_true,text,eol_lf/binary-all-lf
new file mode 100644
index 000000000..af6fcf6da
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,text,eol_lf/binary-all-lf
@@ -0,0 +1,4 @@
+one
+two
+three
+four
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,text,eol_lf/binary-mixed-lf-cr b/tests/resources/crlf_data/windows/autocrlf_true,text,eol_lf/binary-mixed-lf-cr
new file mode 100644
index 000000000..203555c56
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,text,eol_lf/binary-mixed-lf-cr
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,text,eol_lf/binary-mixed-lf-cr-crlf b/tests/resources/crlf_data/windows/autocrlf_true,text,eol_lf/binary-mixed-lf-cr-crlf
new file mode 100644
index 000000000..aaf083a9c
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,text,eol_lf/binary-mixed-lf-cr-crlf
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,text,eol_lf/few-utf8-chars-crlf b/tests/resources/crlf_data/windows/autocrlf_true,text,eol_lf/few-utf8-chars-crlf
new file mode 100644
index 000000000..0e0528888
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,text,eol_lf/few-utf8-chars-crlf
@@ -0,0 +1,22 @@
+⚽The rest is ASCII01.
+The rest is ASCII02.
+The rest is ASCII03.
+The rest is ASCII04.
+The rest is ASCII05.
+The rest is ASCII06.
+The rest is ASCII07.
+The rest is ASCII08.
+The rest is ASCII09.
+The rest is ASCII10.
+The rest is ASCII11.
+The rest is ASCII12.
+The rest is ASCII13.
+The rest is ASCII14.
+The rest is ASCII15.
+The rest is ASCII16.
+The rest is ASCII17.
+The rest is ASCII18.
+The rest is ASCII19.
+The rest is ASCII20.
+The rest is ASCII21.
+The rest is ASCII22.
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,text,eol_lf/few-utf8-chars-lf b/tests/resources/crlf_data/windows/autocrlf_true,text,eol_lf/few-utf8-chars-lf
new file mode 100644
index 000000000..f4d25b796
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,text,eol_lf/few-utf8-chars-lf
@@ -0,0 +1,22 @@
+⚽The rest is ASCII01.
+The rest is ASCII02.
+The rest is ASCII03.
+The rest is ASCII04.
+The rest is ASCII05.
+The rest is ASCII06.
+The rest is ASCII07.
+The rest is ASCII08.
+The rest is ASCII09.
+The rest is ASCII10.
+The rest is ASCII11.
+The rest is ASCII12.
+The rest is ASCII13.
+The rest is ASCII14.
+The rest is ASCII15.
+The rest is ASCII16.
+The rest is ASCII17.
+The rest is ASCII18.
+The rest is ASCII19.
+The rest is ASCII20.
+The rest is ASCII21.
+The rest is ASCII22.
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,text,eol_lf/many-utf8-chars-crlf b/tests/resources/crlf_data/windows/autocrlf_true,text,eol_lf/many-utf8-chars-crlf
new file mode 100644
index 000000000..cd574f5a2
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,text,eol_lf/many-utf8-chars-crlf
@@ -0,0 +1,4 @@
+Lets sing!
+♫♪♬♩
+Eat food
+🍅🍕
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,text,eol_lf/many-utf8-chars-lf b/tests/resources/crlf_data/windows/autocrlf_true,text,eol_lf/many-utf8-chars-lf
new file mode 100644
index 000000000..9a6c3533f
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,text,eol_lf/many-utf8-chars-lf
@@ -0,0 +1,4 @@
+Lets sing!
+♫♪♬♩
+Eat food
+🍅🍕
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,text,eol_lf/mixed-lf-cr b/tests/resources/crlf_data/windows/autocrlf_true,text,eol_lf/mixed-lf-cr
new file mode 100644
index 000000000..d11e7ef63
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,text,eol_lf/mixed-lf-cr
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,text,eol_lf/mixed-lf-cr-crlf b/tests/resources/crlf_data/windows/autocrlf_true,text,eol_lf/mixed-lf-cr-crlf
new file mode 100644
index 000000000..417786fc3
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,text,eol_lf/mixed-lf-cr-crlf
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,text,eol_lf/more-crlf b/tests/resources/crlf_data/windows/autocrlf_true,text,eol_lf/more-crlf
new file mode 100644
index 000000000..0ff5a53f1
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,text,eol_lf/more-crlf
@@ -0,0 +1,5 @@
+crlf
+crlf
+lf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,text,eol_lf/more-crlf-utf8bom b/tests/resources/crlf_data/windows/autocrlf_true,text,eol_lf/more-crlf-utf8bom
new file mode 100644
index 000000000..ea030d3c6
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,text,eol_lf/more-crlf-utf8bom
@@ -0,0 +1,5 @@
+crlf
+crlf
+lf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,text,eol_lf/more-lf b/tests/resources/crlf_data/windows/autocrlf_true,text,eol_lf/more-lf
new file mode 100644
index 000000000..04de00b35
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,text,eol_lf/more-lf
@@ -0,0 +1,5 @@
+lf
+lf
+crlf
+lf
+lf
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,text,eol_lf/more-lf-utf8bom b/tests/resources/crlf_data/windows/autocrlf_true,text,eol_lf/more-lf-utf8bom
new file mode 100644
index 000000000..dc88e3b91
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,text,eol_lf/more-lf-utf8bom
@@ -0,0 +1,5 @@
+lf
+lf
+crlf
+lf
+lf
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,text,eol_lf/zero-byte b/tests/resources/crlf_data/windows/autocrlf_true,text,eol_lf/zero-byte
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,text,eol_lf/zero-byte
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,text/all-crlf b/tests/resources/crlf_data/windows/autocrlf_true,text/all-crlf
new file mode 100644
index 000000000..a9a2e8913
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,text/all-crlf
@@ -0,0 +1,4 @@
+crlf
+crlf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,text/all-crlf-utf8bom b/tests/resources/crlf_data/windows/autocrlf_true,text/all-crlf-utf8bom
new file mode 100644
index 000000000..0aa76e474
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,text/all-crlf-utf8bom
@@ -0,0 +1,4 @@
+crlf
+crlf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,text/all-lf b/tests/resources/crlf_data/windows/autocrlf_true,text/all-lf
new file mode 100644
index 000000000..f557a02d8
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,text/all-lf
@@ -0,0 +1,5 @@
+lf
+lf
+lf
+lf
+lf
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,text/all-lf-utf8bom b/tests/resources/crlf_data/windows/autocrlf_true,text/all-lf-utf8bom
new file mode 100644
index 000000000..381cfe630
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,text/all-lf-utf8bom
@@ -0,0 +1,5 @@
+lf
+lf
+lf
+lf
+lf
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,text/binary-all-crlf b/tests/resources/crlf_data/windows/autocrlf_true,text/binary-all-crlf
new file mode 100644
index 000000000..85340755c
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,text/binary-all-crlf
@@ -0,0 +1,4 @@
+one
+two
+three
+four
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,text/binary-all-lf b/tests/resources/crlf_data/windows/autocrlf_true,text/binary-all-lf
new file mode 100644
index 000000000..85340755c
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,text/binary-all-lf
@@ -0,0 +1,4 @@
+one
+two
+three
+four
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,text/binary-mixed-lf-cr b/tests/resources/crlf_data/windows/autocrlf_true,text/binary-mixed-lf-cr
new file mode 100644
index 000000000..fd2abfa9d
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,text/binary-mixed-lf-cr
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,text/binary-mixed-lf-cr-crlf b/tests/resources/crlf_data/windows/autocrlf_true,text/binary-mixed-lf-cr-crlf
new file mode 100644
index 000000000..fd2abfa9d
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,text/binary-mixed-lf-cr-crlf
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,text/few-utf8-chars-crlf b/tests/resources/crlf_data/windows/autocrlf_true,text/few-utf8-chars-crlf
new file mode 100644
index 000000000..0e0528888
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,text/few-utf8-chars-crlf
@@ -0,0 +1,22 @@
+⚽The rest is ASCII01.
+The rest is ASCII02.
+The rest is ASCII03.
+The rest is ASCII04.
+The rest is ASCII05.
+The rest is ASCII06.
+The rest is ASCII07.
+The rest is ASCII08.
+The rest is ASCII09.
+The rest is ASCII10.
+The rest is ASCII11.
+The rest is ASCII12.
+The rest is ASCII13.
+The rest is ASCII14.
+The rest is ASCII15.
+The rest is ASCII16.
+The rest is ASCII17.
+The rest is ASCII18.
+The rest is ASCII19.
+The rest is ASCII20.
+The rest is ASCII21.
+The rest is ASCII22.
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,text/few-utf8-chars-lf b/tests/resources/crlf_data/windows/autocrlf_true,text/few-utf8-chars-lf
new file mode 100644
index 000000000..0e0528888
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,text/few-utf8-chars-lf
@@ -0,0 +1,22 @@
+⚽The rest is ASCII01.
+The rest is ASCII02.
+The rest is ASCII03.
+The rest is ASCII04.
+The rest is ASCII05.
+The rest is ASCII06.
+The rest is ASCII07.
+The rest is ASCII08.
+The rest is ASCII09.
+The rest is ASCII10.
+The rest is ASCII11.
+The rest is ASCII12.
+The rest is ASCII13.
+The rest is ASCII14.
+The rest is ASCII15.
+The rest is ASCII16.
+The rest is ASCII17.
+The rest is ASCII18.
+The rest is ASCII19.
+The rest is ASCII20.
+The rest is ASCII21.
+The rest is ASCII22.
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,text/many-utf8-chars-crlf b/tests/resources/crlf_data/windows/autocrlf_true,text/many-utf8-chars-crlf
new file mode 100644
index 000000000..cd574f5a2
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,text/many-utf8-chars-crlf
@@ -0,0 +1,4 @@
+Lets sing!
+♫♪♬♩
+Eat food
+🍅🍕
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,text/many-utf8-chars-lf b/tests/resources/crlf_data/windows/autocrlf_true,text/many-utf8-chars-lf
new file mode 100644
index 000000000..cd574f5a2
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,text/many-utf8-chars-lf
@@ -0,0 +1,4 @@
+Lets sing!
+♫♪♬♩
+Eat food
+🍅🍕
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,text/mixed-lf-cr b/tests/resources/crlf_data/windows/autocrlf_true,text/mixed-lf-cr
new file mode 100644
index 000000000..df8c0f680
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,text/mixed-lf-cr
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,text/mixed-lf-cr-crlf b/tests/resources/crlf_data/windows/autocrlf_true,text/mixed-lf-cr-crlf
new file mode 100644
index 000000000..df8c0f680
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,text/mixed-lf-cr-crlf
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,text/more-crlf b/tests/resources/crlf_data/windows/autocrlf_true,text/more-crlf
new file mode 100644
index 000000000..e682c3077
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,text/more-crlf
@@ -0,0 +1,5 @@
+crlf
+crlf
+lf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,text/more-crlf-utf8bom b/tests/resources/crlf_data/windows/autocrlf_true,text/more-crlf-utf8bom
new file mode 100644
index 000000000..2e1220cbb
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,text/more-crlf-utf8bom
@@ -0,0 +1,5 @@
+crlf
+crlf
+lf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,text/more-lf b/tests/resources/crlf_data/windows/autocrlf_true,text/more-lf
new file mode 100644
index 000000000..6da5b0c7e
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,text/more-lf
@@ -0,0 +1,5 @@
+lf
+lf
+crlf
+lf
+lf
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,text/more-lf-utf8bom b/tests/resources/crlf_data/windows/autocrlf_true,text/more-lf-utf8bom
new file mode 100644
index 000000000..3fa59c809
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,text/more-lf-utf8bom
@@ -0,0 +1,5 @@
+lf
+lf
+crlf
+lf
+lf
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,text/zero-byte b/tests/resources/crlf_data/windows/autocrlf_true,text/zero-byte
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,text/zero-byte
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,text_auto,eol_crlf/all-crlf b/tests/resources/crlf_data/windows/autocrlf_true,text_auto,eol_crlf/all-crlf
new file mode 100644
index 000000000..a9a2e8913
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,text_auto,eol_crlf/all-crlf
@@ -0,0 +1,4 @@
+crlf
+crlf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,text_auto,eol_crlf/all-crlf-utf8bom b/tests/resources/crlf_data/windows/autocrlf_true,text_auto,eol_crlf/all-crlf-utf8bom
new file mode 100644
index 000000000..0aa76e474
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,text_auto,eol_crlf/all-crlf-utf8bom
@@ -0,0 +1,4 @@
+crlf
+crlf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,text_auto,eol_crlf/all-lf b/tests/resources/crlf_data/windows/autocrlf_true,text_auto,eol_crlf/all-lf
new file mode 100644
index 000000000..f557a02d8
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,text_auto,eol_crlf/all-lf
@@ -0,0 +1,5 @@
+lf
+lf
+lf
+lf
+lf
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,text_auto,eol_crlf/all-lf-utf8bom b/tests/resources/crlf_data/windows/autocrlf_true,text_auto,eol_crlf/all-lf-utf8bom
new file mode 100644
index 000000000..381cfe630
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,text_auto,eol_crlf/all-lf-utf8bom
@@ -0,0 +1,5 @@
+lf
+lf
+lf
+lf
+lf
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,text_auto,eol_crlf/binary-all-crlf b/tests/resources/crlf_data/windows/autocrlf_true,text_auto,eol_crlf/binary-all-crlf
new file mode 100644
index 000000000..85340755c
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,text_auto,eol_crlf/binary-all-crlf
@@ -0,0 +1,4 @@
+one
+two
+three
+four
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,text_auto,eol_crlf/binary-all-lf b/tests/resources/crlf_data/windows/autocrlf_true,text_auto,eol_crlf/binary-all-lf
new file mode 100644
index 000000000..85340755c
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,text_auto,eol_crlf/binary-all-lf
@@ -0,0 +1,4 @@
+one
+two
+three
+four
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,text_auto,eol_crlf/binary-mixed-lf-cr b/tests/resources/crlf_data/windows/autocrlf_true,text_auto,eol_crlf/binary-mixed-lf-cr
new file mode 100644
index 000000000..fd2abfa9d
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,text_auto,eol_crlf/binary-mixed-lf-cr
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,text_auto,eol_crlf/binary-mixed-lf-cr-crlf b/tests/resources/crlf_data/windows/autocrlf_true,text_auto,eol_crlf/binary-mixed-lf-cr-crlf
new file mode 100644
index 000000000..fd2abfa9d
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,text_auto,eol_crlf/binary-mixed-lf-cr-crlf
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,text_auto,eol_crlf/few-utf8-chars-crlf b/tests/resources/crlf_data/windows/autocrlf_true,text_auto,eol_crlf/few-utf8-chars-crlf
new file mode 100644
index 000000000..0e0528888
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,text_auto,eol_crlf/few-utf8-chars-crlf
@@ -0,0 +1,22 @@
+⚽The rest is ASCII01.
+The rest is ASCII02.
+The rest is ASCII03.
+The rest is ASCII04.
+The rest is ASCII05.
+The rest is ASCII06.
+The rest is ASCII07.
+The rest is ASCII08.
+The rest is ASCII09.
+The rest is ASCII10.
+The rest is ASCII11.
+The rest is ASCII12.
+The rest is ASCII13.
+The rest is ASCII14.
+The rest is ASCII15.
+The rest is ASCII16.
+The rest is ASCII17.
+The rest is ASCII18.
+The rest is ASCII19.
+The rest is ASCII20.
+The rest is ASCII21.
+The rest is ASCII22.
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,text_auto,eol_crlf/few-utf8-chars-lf b/tests/resources/crlf_data/windows/autocrlf_true,text_auto,eol_crlf/few-utf8-chars-lf
new file mode 100644
index 000000000..0e0528888
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,text_auto,eol_crlf/few-utf8-chars-lf
@@ -0,0 +1,22 @@
+⚽The rest is ASCII01.
+The rest is ASCII02.
+The rest is ASCII03.
+The rest is ASCII04.
+The rest is ASCII05.
+The rest is ASCII06.
+The rest is ASCII07.
+The rest is ASCII08.
+The rest is ASCII09.
+The rest is ASCII10.
+The rest is ASCII11.
+The rest is ASCII12.
+The rest is ASCII13.
+The rest is ASCII14.
+The rest is ASCII15.
+The rest is ASCII16.
+The rest is ASCII17.
+The rest is ASCII18.
+The rest is ASCII19.
+The rest is ASCII20.
+The rest is ASCII21.
+The rest is ASCII22.
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,text_auto,eol_crlf/many-utf8-chars-crlf b/tests/resources/crlf_data/windows/autocrlf_true,text_auto,eol_crlf/many-utf8-chars-crlf
new file mode 100644
index 000000000..cd574f5a2
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,text_auto,eol_crlf/many-utf8-chars-crlf
@@ -0,0 +1,4 @@
+Lets sing!
+♫♪♬♩
+Eat food
+🍅🍕
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,text_auto,eol_crlf/many-utf8-chars-lf b/tests/resources/crlf_data/windows/autocrlf_true,text_auto,eol_crlf/many-utf8-chars-lf
new file mode 100644
index 000000000..cd574f5a2
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,text_auto,eol_crlf/many-utf8-chars-lf
@@ -0,0 +1,4 @@
+Lets sing!
+♫♪♬♩
+Eat food
+🍅🍕
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,text_auto,eol_crlf/mixed-lf-cr b/tests/resources/crlf_data/windows/autocrlf_true,text_auto,eol_crlf/mixed-lf-cr
new file mode 100644
index 000000000..df8c0f680
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,text_auto,eol_crlf/mixed-lf-cr
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,text_auto,eol_crlf/mixed-lf-cr-crlf b/tests/resources/crlf_data/windows/autocrlf_true,text_auto,eol_crlf/mixed-lf-cr-crlf
new file mode 100644
index 000000000..df8c0f680
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,text_auto,eol_crlf/mixed-lf-cr-crlf
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,text_auto,eol_crlf/more-crlf b/tests/resources/crlf_data/windows/autocrlf_true,text_auto,eol_crlf/more-crlf
new file mode 100644
index 000000000..e682c3077
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,text_auto,eol_crlf/more-crlf
@@ -0,0 +1,5 @@
+crlf
+crlf
+lf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,text_auto,eol_crlf/more-crlf-utf8bom b/tests/resources/crlf_data/windows/autocrlf_true,text_auto,eol_crlf/more-crlf-utf8bom
new file mode 100644
index 000000000..2e1220cbb
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,text_auto,eol_crlf/more-crlf-utf8bom
@@ -0,0 +1,5 @@
+crlf
+crlf
+lf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,text_auto,eol_crlf/more-lf b/tests/resources/crlf_data/windows/autocrlf_true,text_auto,eol_crlf/more-lf
new file mode 100644
index 000000000..6da5b0c7e
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,text_auto,eol_crlf/more-lf
@@ -0,0 +1,5 @@
+lf
+lf
+crlf
+lf
+lf
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,text_auto,eol_crlf/more-lf-utf8bom b/tests/resources/crlf_data/windows/autocrlf_true,text_auto,eol_crlf/more-lf-utf8bom
new file mode 100644
index 000000000..3fa59c809
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,text_auto,eol_crlf/more-lf-utf8bom
@@ -0,0 +1,5 @@
+lf
+lf
+crlf
+lf
+lf
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,text_auto,eol_crlf/zero-byte b/tests/resources/crlf_data/windows/autocrlf_true,text_auto,eol_crlf/zero-byte
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,text_auto,eol_crlf/zero-byte
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,text_auto,eol_lf/all-crlf b/tests/resources/crlf_data/windows/autocrlf_true,text_auto,eol_lf/all-crlf
new file mode 100644
index 000000000..a9a2e8913
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,text_auto,eol_lf/all-crlf
@@ -0,0 +1,4 @@
+crlf
+crlf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,text_auto,eol_lf/all-crlf-utf8bom b/tests/resources/crlf_data/windows/autocrlf_true,text_auto,eol_lf/all-crlf-utf8bom
new file mode 100644
index 000000000..0aa76e474
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,text_auto,eol_lf/all-crlf-utf8bom
@@ -0,0 +1,4 @@
+crlf
+crlf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,text_auto,eol_lf/all-lf b/tests/resources/crlf_data/windows/autocrlf_true,text_auto,eol_lf/all-lf
new file mode 100644
index 000000000..799770d1c
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,text_auto,eol_lf/all-lf
@@ -0,0 +1,5 @@
+lf
+lf
+lf
+lf
+lf
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,text_auto,eol_lf/all-lf-utf8bom b/tests/resources/crlf_data/windows/autocrlf_true,text_auto,eol_lf/all-lf-utf8bom
new file mode 100644
index 000000000..7cce67e58
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,text_auto,eol_lf/all-lf-utf8bom
@@ -0,0 +1,5 @@
+lf
+lf
+lf
+lf
+lf
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,text_auto,eol_lf/binary-all-crlf b/tests/resources/crlf_data/windows/autocrlf_true,text_auto,eol_lf/binary-all-crlf
new file mode 100644
index 000000000..85340755c
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,text_auto,eol_lf/binary-all-crlf
@@ -0,0 +1,4 @@
+one
+two
+three
+four
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,text_auto,eol_lf/binary-all-lf b/tests/resources/crlf_data/windows/autocrlf_true,text_auto,eol_lf/binary-all-lf
new file mode 100644
index 000000000..af6fcf6da
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,text_auto,eol_lf/binary-all-lf
@@ -0,0 +1,4 @@
+one
+two
+three
+four
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,text_auto,eol_lf/binary-mixed-lf-cr b/tests/resources/crlf_data/windows/autocrlf_true,text_auto,eol_lf/binary-mixed-lf-cr
new file mode 100644
index 000000000..203555c56
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,text_auto,eol_lf/binary-mixed-lf-cr
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,text_auto,eol_lf/binary-mixed-lf-cr-crlf b/tests/resources/crlf_data/windows/autocrlf_true,text_auto,eol_lf/binary-mixed-lf-cr-crlf
new file mode 100644
index 000000000..aaf083a9c
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,text_auto,eol_lf/binary-mixed-lf-cr-crlf
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,text_auto,eol_lf/few-utf8-chars-crlf b/tests/resources/crlf_data/windows/autocrlf_true,text_auto,eol_lf/few-utf8-chars-crlf
new file mode 100644
index 000000000..0e0528888
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,text_auto,eol_lf/few-utf8-chars-crlf
@@ -0,0 +1,22 @@
+⚽The rest is ASCII01.
+The rest is ASCII02.
+The rest is ASCII03.
+The rest is ASCII04.
+The rest is ASCII05.
+The rest is ASCII06.
+The rest is ASCII07.
+The rest is ASCII08.
+The rest is ASCII09.
+The rest is ASCII10.
+The rest is ASCII11.
+The rest is ASCII12.
+The rest is ASCII13.
+The rest is ASCII14.
+The rest is ASCII15.
+The rest is ASCII16.
+The rest is ASCII17.
+The rest is ASCII18.
+The rest is ASCII19.
+The rest is ASCII20.
+The rest is ASCII21.
+The rest is ASCII22.
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,text_auto,eol_lf/few-utf8-chars-lf b/tests/resources/crlf_data/windows/autocrlf_true,text_auto,eol_lf/few-utf8-chars-lf
new file mode 100644
index 000000000..f4d25b796
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,text_auto,eol_lf/few-utf8-chars-lf
@@ -0,0 +1,22 @@
+⚽The rest is ASCII01.
+The rest is ASCII02.
+The rest is ASCII03.
+The rest is ASCII04.
+The rest is ASCII05.
+The rest is ASCII06.
+The rest is ASCII07.
+The rest is ASCII08.
+The rest is ASCII09.
+The rest is ASCII10.
+The rest is ASCII11.
+The rest is ASCII12.
+The rest is ASCII13.
+The rest is ASCII14.
+The rest is ASCII15.
+The rest is ASCII16.
+The rest is ASCII17.
+The rest is ASCII18.
+The rest is ASCII19.
+The rest is ASCII20.
+The rest is ASCII21.
+The rest is ASCII22.
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,text_auto,eol_lf/many-utf8-chars-crlf b/tests/resources/crlf_data/windows/autocrlf_true,text_auto,eol_lf/many-utf8-chars-crlf
new file mode 100644
index 000000000..cd574f5a2
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,text_auto,eol_lf/many-utf8-chars-crlf
@@ -0,0 +1,4 @@
+Lets sing!
+♫♪♬♩
+Eat food
+🍅🍕
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,text_auto,eol_lf/many-utf8-chars-lf b/tests/resources/crlf_data/windows/autocrlf_true,text_auto,eol_lf/many-utf8-chars-lf
new file mode 100644
index 000000000..9a6c3533f
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,text_auto,eol_lf/many-utf8-chars-lf
@@ -0,0 +1,4 @@
+Lets sing!
+♫♪♬♩
+Eat food
+🍅🍕
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,text_auto,eol_lf/mixed-lf-cr b/tests/resources/crlf_data/windows/autocrlf_true,text_auto,eol_lf/mixed-lf-cr
new file mode 100644
index 000000000..d11e7ef63
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,text_auto,eol_lf/mixed-lf-cr
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,text_auto,eol_lf/mixed-lf-cr-crlf b/tests/resources/crlf_data/windows/autocrlf_true,text_auto,eol_lf/mixed-lf-cr-crlf
new file mode 100644
index 000000000..417786fc3
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,text_auto,eol_lf/mixed-lf-cr-crlf
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,text_auto,eol_lf/more-crlf b/tests/resources/crlf_data/windows/autocrlf_true,text_auto,eol_lf/more-crlf
new file mode 100644
index 000000000..0ff5a53f1
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,text_auto,eol_lf/more-crlf
@@ -0,0 +1,5 @@
+crlf
+crlf
+lf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,text_auto,eol_lf/more-crlf-utf8bom b/tests/resources/crlf_data/windows/autocrlf_true,text_auto,eol_lf/more-crlf-utf8bom
new file mode 100644
index 000000000..ea030d3c6
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,text_auto,eol_lf/more-crlf-utf8bom
@@ -0,0 +1,5 @@
+crlf
+crlf
+lf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,text_auto,eol_lf/more-lf b/tests/resources/crlf_data/windows/autocrlf_true,text_auto,eol_lf/more-lf
new file mode 100644
index 000000000..04de00b35
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,text_auto,eol_lf/more-lf
@@ -0,0 +1,5 @@
+lf
+lf
+crlf
+lf
+lf
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,text_auto,eol_lf/more-lf-utf8bom b/tests/resources/crlf_data/windows/autocrlf_true,text_auto,eol_lf/more-lf-utf8bom
new file mode 100644
index 000000000..dc88e3b91
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,text_auto,eol_lf/more-lf-utf8bom
@@ -0,0 +1,5 @@
+lf
+lf
+crlf
+lf
+lf
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,text_auto,eol_lf/zero-byte b/tests/resources/crlf_data/windows/autocrlf_true,text_auto,eol_lf/zero-byte
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,text_auto,eol_lf/zero-byte
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,text_auto/all-crlf b/tests/resources/crlf_data/windows/autocrlf_true,text_auto/all-crlf
new file mode 100644
index 000000000..a9a2e8913
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,text_auto/all-crlf
@@ -0,0 +1,4 @@
+crlf
+crlf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,text_auto/all-crlf-utf8bom b/tests/resources/crlf_data/windows/autocrlf_true,text_auto/all-crlf-utf8bom
new file mode 100644
index 000000000..0aa76e474
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,text_auto/all-crlf-utf8bom
@@ -0,0 +1,4 @@
+crlf
+crlf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,text_auto/all-lf b/tests/resources/crlf_data/windows/autocrlf_true,text_auto/all-lf
new file mode 100644
index 000000000..f557a02d8
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,text_auto/all-lf
@@ -0,0 +1,5 @@
+lf
+lf
+lf
+lf
+lf
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,text_auto/all-lf-utf8bom b/tests/resources/crlf_data/windows/autocrlf_true,text_auto/all-lf-utf8bom
new file mode 100644
index 000000000..381cfe630
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,text_auto/all-lf-utf8bom
@@ -0,0 +1,5 @@
+lf
+lf
+lf
+lf
+lf
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,text_auto/binary-all-crlf b/tests/resources/crlf_data/windows/autocrlf_true,text_auto/binary-all-crlf
new file mode 100644
index 000000000..85340755c
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,text_auto/binary-all-crlf
@@ -0,0 +1,4 @@
+one
+two
+three
+four
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,text_auto/binary-all-lf b/tests/resources/crlf_data/windows/autocrlf_true,text_auto/binary-all-lf
new file mode 100644
index 000000000..af6fcf6da
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,text_auto/binary-all-lf
@@ -0,0 +1,4 @@
+one
+two
+three
+four
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,text_auto/binary-mixed-lf-cr b/tests/resources/crlf_data/windows/autocrlf_true,text_auto/binary-mixed-lf-cr
new file mode 100644
index 000000000..203555c56
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,text_auto/binary-mixed-lf-cr
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,text_auto/binary-mixed-lf-cr-crlf b/tests/resources/crlf_data/windows/autocrlf_true,text_auto/binary-mixed-lf-cr-crlf
new file mode 100644
index 000000000..aaf083a9c
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,text_auto/binary-mixed-lf-cr-crlf
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,text_auto/few-utf8-chars-crlf b/tests/resources/crlf_data/windows/autocrlf_true,text_auto/few-utf8-chars-crlf
new file mode 100644
index 000000000..0e0528888
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,text_auto/few-utf8-chars-crlf
@@ -0,0 +1,22 @@
+⚽The rest is ASCII01.
+The rest is ASCII02.
+The rest is ASCII03.
+The rest is ASCII04.
+The rest is ASCII05.
+The rest is ASCII06.
+The rest is ASCII07.
+The rest is ASCII08.
+The rest is ASCII09.
+The rest is ASCII10.
+The rest is ASCII11.
+The rest is ASCII12.
+The rest is ASCII13.
+The rest is ASCII14.
+The rest is ASCII15.
+The rest is ASCII16.
+The rest is ASCII17.
+The rest is ASCII18.
+The rest is ASCII19.
+The rest is ASCII20.
+The rest is ASCII21.
+The rest is ASCII22.
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,text_auto/few-utf8-chars-lf b/tests/resources/crlf_data/windows/autocrlf_true,text_auto/few-utf8-chars-lf
new file mode 100644
index 000000000..0e0528888
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,text_auto/few-utf8-chars-lf
@@ -0,0 +1,22 @@
+⚽The rest is ASCII01.
+The rest is ASCII02.
+The rest is ASCII03.
+The rest is ASCII04.
+The rest is ASCII05.
+The rest is ASCII06.
+The rest is ASCII07.
+The rest is ASCII08.
+The rest is ASCII09.
+The rest is ASCII10.
+The rest is ASCII11.
+The rest is ASCII12.
+The rest is ASCII13.
+The rest is ASCII14.
+The rest is ASCII15.
+The rest is ASCII16.
+The rest is ASCII17.
+The rest is ASCII18.
+The rest is ASCII19.
+The rest is ASCII20.
+The rest is ASCII21.
+The rest is ASCII22.
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,text_auto/many-utf8-chars-crlf b/tests/resources/crlf_data/windows/autocrlf_true,text_auto/many-utf8-chars-crlf
new file mode 100644
index 000000000..cd574f5a2
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,text_auto/many-utf8-chars-crlf
@@ -0,0 +1,4 @@
+Lets sing!
+♫♪♬♩
+Eat food
+🍅🍕
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,text_auto/many-utf8-chars-lf b/tests/resources/crlf_data/windows/autocrlf_true,text_auto/many-utf8-chars-lf
new file mode 100644
index 000000000..cd574f5a2
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,text_auto/many-utf8-chars-lf
@@ -0,0 +1,4 @@
+Lets sing!
+♫♪♬♩
+Eat food
+🍅🍕
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,text_auto/mixed-lf-cr b/tests/resources/crlf_data/windows/autocrlf_true,text_auto/mixed-lf-cr
new file mode 100644
index 000000000..d11e7ef63
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,text_auto/mixed-lf-cr
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,text_auto/mixed-lf-cr-crlf b/tests/resources/crlf_data/windows/autocrlf_true,text_auto/mixed-lf-cr-crlf
new file mode 100644
index 000000000..417786fc3
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,text_auto/mixed-lf-cr-crlf
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,text_auto/more-crlf b/tests/resources/crlf_data/windows/autocrlf_true,text_auto/more-crlf
new file mode 100644
index 000000000..e682c3077
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,text_auto/more-crlf
@@ -0,0 +1,5 @@
+crlf
+crlf
+lf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,text_auto/more-crlf-utf8bom b/tests/resources/crlf_data/windows/autocrlf_true,text_auto/more-crlf-utf8bom
new file mode 100644
index 000000000..2e1220cbb
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,text_auto/more-crlf-utf8bom
@@ -0,0 +1,5 @@
+crlf
+crlf
+lf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,text_auto/more-lf b/tests/resources/crlf_data/windows/autocrlf_true,text_auto/more-lf
new file mode 100644
index 000000000..6da5b0c7e
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,text_auto/more-lf
@@ -0,0 +1,5 @@
+lf
+lf
+crlf
+lf
+lf
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,text_auto/more-lf-utf8bom b/tests/resources/crlf_data/windows/autocrlf_true,text_auto/more-lf-utf8bom
new file mode 100644
index 000000000..3fa59c809
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,text_auto/more-lf-utf8bom
@@ -0,0 +1,5 @@
+lf
+lf
+crlf
+lf
+lf
diff --git a/tests/resources/crlf_data/windows/autocrlf_true,text_auto/zero-byte b/tests/resources/crlf_data/windows/autocrlf_true,text_auto/zero-byte
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true,text_auto/zero-byte
diff --git a/tests/resources/crlf_data/windows/autocrlf_true/all-crlf b/tests/resources/crlf_data/windows/autocrlf_true/all-crlf
new file mode 100644
index 000000000..a9a2e8913
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true/all-crlf
@@ -0,0 +1,4 @@
+crlf
+crlf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/windows/autocrlf_true/all-crlf-utf8bom b/tests/resources/crlf_data/windows/autocrlf_true/all-crlf-utf8bom
new file mode 100644
index 000000000..0aa76e474
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true/all-crlf-utf8bom
@@ -0,0 +1,4 @@
+crlf
+crlf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/windows/autocrlf_true/all-lf b/tests/resources/crlf_data/windows/autocrlf_true/all-lf
new file mode 100644
index 000000000..f557a02d8
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true/all-lf
@@ -0,0 +1,5 @@
+lf
+lf
+lf
+lf
+lf
diff --git a/tests/resources/crlf_data/windows/autocrlf_true/all-lf-utf8bom b/tests/resources/crlf_data/windows/autocrlf_true/all-lf-utf8bom
new file mode 100644
index 000000000..381cfe630
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true/all-lf-utf8bom
@@ -0,0 +1,5 @@
+lf
+lf
+lf
+lf
+lf
diff --git a/tests/resources/crlf_data/windows/autocrlf_true/binary-all-crlf b/tests/resources/crlf_data/windows/autocrlf_true/binary-all-crlf
new file mode 100644
index 000000000..85340755c
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true/binary-all-crlf
@@ -0,0 +1,4 @@
+one
+two
+three
+four
diff --git a/tests/resources/crlf_data/windows/autocrlf_true/binary-all-lf b/tests/resources/crlf_data/windows/autocrlf_true/binary-all-lf
new file mode 100644
index 000000000..af6fcf6da
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true/binary-all-lf
@@ -0,0 +1,4 @@
+one
+two
+three
+four
diff --git a/tests/resources/crlf_data/windows/autocrlf_true/binary-mixed-lf-cr b/tests/resources/crlf_data/windows/autocrlf_true/binary-mixed-lf-cr
new file mode 100644
index 000000000..203555c56
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true/binary-mixed-lf-cr
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/windows/autocrlf_true/binary-mixed-lf-cr-crlf b/tests/resources/crlf_data/windows/autocrlf_true/binary-mixed-lf-cr-crlf
new file mode 100644
index 000000000..aaf083a9c
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true/binary-mixed-lf-cr-crlf
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/windows/autocrlf_true/few-utf8-chars-crlf b/tests/resources/crlf_data/windows/autocrlf_true/few-utf8-chars-crlf
new file mode 100644
index 000000000..0e0528888
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true/few-utf8-chars-crlf
@@ -0,0 +1,22 @@
+⚽The rest is ASCII01.
+The rest is ASCII02.
+The rest is ASCII03.
+The rest is ASCII04.
+The rest is ASCII05.
+The rest is ASCII06.
+The rest is ASCII07.
+The rest is ASCII08.
+The rest is ASCII09.
+The rest is ASCII10.
+The rest is ASCII11.
+The rest is ASCII12.
+The rest is ASCII13.
+The rest is ASCII14.
+The rest is ASCII15.
+The rest is ASCII16.
+The rest is ASCII17.
+The rest is ASCII18.
+The rest is ASCII19.
+The rest is ASCII20.
+The rest is ASCII21.
+The rest is ASCII22.
diff --git a/tests/resources/crlf_data/windows/autocrlf_true/few-utf8-chars-lf b/tests/resources/crlf_data/windows/autocrlf_true/few-utf8-chars-lf
new file mode 100644
index 000000000..0e0528888
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true/few-utf8-chars-lf
@@ -0,0 +1,22 @@
+⚽The rest is ASCII01.
+The rest is ASCII02.
+The rest is ASCII03.
+The rest is ASCII04.
+The rest is ASCII05.
+The rest is ASCII06.
+The rest is ASCII07.
+The rest is ASCII08.
+The rest is ASCII09.
+The rest is ASCII10.
+The rest is ASCII11.
+The rest is ASCII12.
+The rest is ASCII13.
+The rest is ASCII14.
+The rest is ASCII15.
+The rest is ASCII16.
+The rest is ASCII17.
+The rest is ASCII18.
+The rest is ASCII19.
+The rest is ASCII20.
+The rest is ASCII21.
+The rest is ASCII22.
diff --git a/tests/resources/crlf_data/windows/autocrlf_true/many-utf8-chars-crlf b/tests/resources/crlf_data/windows/autocrlf_true/many-utf8-chars-crlf
new file mode 100644
index 000000000..cd574f5a2
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true/many-utf8-chars-crlf
@@ -0,0 +1,4 @@
+Lets sing!
+♫♪♬♩
+Eat food
+🍅🍕
diff --git a/tests/resources/crlf_data/windows/autocrlf_true/many-utf8-chars-lf b/tests/resources/crlf_data/windows/autocrlf_true/many-utf8-chars-lf
new file mode 100644
index 000000000..cd574f5a2
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true/many-utf8-chars-lf
@@ -0,0 +1,4 @@
+Lets sing!
+♫♪♬♩
+Eat food
+🍅🍕
diff --git a/tests/resources/crlf_data/windows/autocrlf_true/mixed-lf-cr b/tests/resources/crlf_data/windows/autocrlf_true/mixed-lf-cr
new file mode 100644
index 000000000..d11e7ef63
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true/mixed-lf-cr
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/windows/autocrlf_true/mixed-lf-cr-crlf b/tests/resources/crlf_data/windows/autocrlf_true/mixed-lf-cr-crlf
new file mode 100644
index 000000000..417786fc3
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true/mixed-lf-cr-crlf
@@ -0,0 +1,3 @@
+one
+two three
+four \ No newline at end of file
diff --git a/tests/resources/crlf_data/windows/autocrlf_true/more-crlf b/tests/resources/crlf_data/windows/autocrlf_true/more-crlf
new file mode 100644
index 000000000..0ff5a53f1
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true/more-crlf
@@ -0,0 +1,5 @@
+crlf
+crlf
+lf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/windows/autocrlf_true/more-crlf-utf8bom b/tests/resources/crlf_data/windows/autocrlf_true/more-crlf-utf8bom
new file mode 100644
index 000000000..ea030d3c6
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true/more-crlf-utf8bom
@@ -0,0 +1,5 @@
+crlf
+crlf
+lf
+crlf
+crlf
diff --git a/tests/resources/crlf_data/windows/autocrlf_true/more-lf b/tests/resources/crlf_data/windows/autocrlf_true/more-lf
new file mode 100644
index 000000000..04de00b35
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true/more-lf
@@ -0,0 +1,5 @@
+lf
+lf
+crlf
+lf
+lf
diff --git a/tests/resources/crlf_data/windows/autocrlf_true/more-lf-utf8bom b/tests/resources/crlf_data/windows/autocrlf_true/more-lf-utf8bom
new file mode 100644
index 000000000..dc88e3b91
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true/more-lf-utf8bom
@@ -0,0 +1,5 @@
+lf
+lf
+crlf
+lf
+lf
diff --git a/tests/resources/crlf_data/windows/autocrlf_true/zero-byte b/tests/resources/crlf_data/windows/autocrlf_true/zero-byte
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/tests/resources/crlf_data/windows/autocrlf_true/zero-byte
diff --git a/tests/stash/foreach.c b/tests/stash/foreach.c
index f1983625f..57dc8eeb4 100644
--- a/tests/stash/foreach.c
+++ b/tests/stash/foreach.c
@@ -69,16 +69,16 @@ void test_stash_foreach__enumerating_a_empty_repository_doesnt_fail(void)
void test_stash_foreach__can_enumerate_a_repository(void)
{
char *oids_default[] = {
- "1d91c842a7cdfc25872b3a763e5c31add8816c25", NULL };
+ "493568b7a2681187aaac8a58d3f1eab1527cba84", NULL };
char *oids_untracked[] = {
"7f89a8b15c878809c5c54d1ff8f8c9674154017b",
- "1d91c842a7cdfc25872b3a763e5c31add8816c25", NULL };
+ "493568b7a2681187aaac8a58d3f1eab1527cba84", NULL };
char *oids_ignored[] = {
"c95599a8fef20a7e57582c6727b1a0d02e0a5828",
"7f89a8b15c878809c5c54d1ff8f8c9674154017b",
- "1d91c842a7cdfc25872b3a763e5c31add8816c25", NULL };
+ "493568b7a2681187aaac8a58d3f1eab1527cba84", NULL };
cl_git_pass(git_repository_init(&repo, REPO_NAME, 0));
@@ -96,9 +96,7 @@ void test_stash_foreach__can_enumerate_a_repository(void)
cl_git_pass(git_stash_foreach(repo, callback_cb, &data));
cl_assert_equal_i(1, data.invokes);
- data.oids = oids_untracked;
- data.invokes = 0;
-
+ /* ensure stash_foreach operates with INCLUDE_UNTRACKED */
cl_git_pass(git_stash_save(
&stash_tip_oid,
repo,
@@ -106,12 +104,13 @@ void test_stash_foreach__can_enumerate_a_repository(void)
NULL,
GIT_STASH_INCLUDE_UNTRACKED));
+ data.oids = oids_untracked;
+ data.invokes = 0;
+
cl_git_pass(git_stash_foreach(repo, callback_cb, &data));
cl_assert_equal_i(2, data.invokes);
- data.oids = oids_ignored;
- data.invokes = 0;
-
+ /* ensure stash_foreach operates with INCLUDE_IGNORED */
cl_git_pass(git_stash_save(
&stash_tip_oid,
repo,
@@ -119,6 +118,9 @@ void test_stash_foreach__can_enumerate_a_repository(void)
NULL,
GIT_STASH_INCLUDE_IGNORED));
+ data.oids = oids_ignored;
+ data.invokes = 0;
+
cl_git_pass(git_stash_foreach(repo, callback_cb, &data));
cl_assert_equal_i(3, data.invokes);
}
diff --git a/tests/stash/save.c b/tests/stash/save.c
index e07877516..edcee820f 100644
--- a/tests/stash/save.c
+++ b/tests/stash/save.c
@@ -100,12 +100,18 @@ $ git status --short
assert_blob_oid("refs/stash:how", "e6d64adb2c7f3eb8feb493b556cc8070dca379a3"); /* not so small and */
assert_blob_oid("refs/stash:who", "a0400d4954659306a976567af43125a0b1aa8595"); /* funky world */
assert_blob_oid("refs/stash:when", NULL);
+ assert_blob_oid("refs/stash:why", "88c2533e21f098b89c91a431d8075cbdbe422a51"); /* would anybody use stash? */
+ assert_blob_oid("refs/stash:where", "e3d6434ec12eb76af8dfa843a64ba6ab91014a0b"); /* .... */
+ assert_blob_oid("refs/stash:.gitignore", "ac4d88de61733173d9959e4b77c69b9f17a00980");
assert_blob_oid("refs/stash:just.ignore", NULL);
assert_blob_oid("refs/stash^2:what", "dd7e1c6f0fefe118f0b63d9f10908c460aa317a6"); /* goodbye */
assert_blob_oid("refs/stash^2:how", "e6d64adb2c7f3eb8feb493b556cc8070dca379a3"); /* not so small and */
assert_blob_oid("refs/stash^2:who", "cc628ccd10742baea8241c5924df992b5c019f71"); /* world */
assert_blob_oid("refs/stash^2:when", NULL);
+ assert_blob_oid("refs/stash^2:why", "88c2533e21f098b89c91a431d8075cbdbe422a51"); /* would anybody use stash? */
+ assert_blob_oid("refs/stash^2:where", "e08f7fbb9a42a0c5367cf8b349f1f08c3d56bd72"); /* ???? */
+ assert_blob_oid("refs/stash^2:.gitignore", "ac4d88de61733173d9959e4b77c69b9f17a00980");
assert_blob_oid("refs/stash^2:just.ignore", NULL);
assert_blob_oid("refs/stash^3", NULL);
@@ -243,11 +249,13 @@ void test_stash_save__cannot_stash_when_there_are_no_local_change(void)
cl_git_pass(git_repository_index(&index, repo));
/*
- * 'what' and 'who' are being committed.
- * 'when' remain untracked.
+ * 'what', 'where' and 'who' are being committed.
+ * 'when' remains untracked.
*/
cl_git_pass(git_index_add_bypath(index, "what"));
+ cl_git_pass(git_index_add_bypath(index, "where"));
cl_git_pass(git_index_add_bypath(index, "who"));
+
cl_repo_commit_from_index(NULL, repo, signature, 0, "Initial commit");
git_index_free(index);
diff --git a/tests/stash/stash_helpers.c b/tests/stash/stash_helpers.c
index ff683eced..0398757c2 100644
--- a/tests/stash/stash_helpers.c
+++ b/tests/stash/stash_helpers.c
@@ -26,12 +26,17 @@ void setup_stash(git_repository *repo, git_signature *signature)
cl_git_rewritefile("stash/what", "goodbye\n"); /* dd7e1c6f0fefe118f0b63d9f10908c460aa317a6 */
cl_git_rewritefile("stash/how", "not so small and\n"); /* e6d64adb2c7f3eb8feb493b556cc8070dca379a3 */
cl_git_rewritefile("stash/who", "funky world\n"); /* a0400d4954659306a976567af43125a0b1aa8595 */
+ cl_git_mkfile("stash/why", "would anybody use stash?\n"); /* 88c2533e21f098b89c91a431d8075cbde422a51 */
+ cl_git_mkfile("stash/where", "????\n"); /* e08f7fbb9a42a0c5367cf8b349f1f08c3d56bd72 */
cl_git_pass(git_index_add_bypath(index, "what"));
cl_git_pass(git_index_add_bypath(index, "how"));
+ cl_git_pass(git_index_add_bypath(index, "why"));
+ cl_git_pass(git_index_add_bypath(index, "where"));
cl_git_pass(git_index_write(index));
cl_git_rewritefile("stash/what", "see you later\n"); /* bc99dc98b3eba0e9157e94769cd4d49cb49de449 */
+ cl_git_mkfile("stash/where", "....\n"); /* e3d6434ec12eb76af8dfa843a64ba6ab91014a0b */
git_index_free(index);
}
diff --git a/tests/status/worktree.c b/tests/status/worktree.c
index 56f98a882..75c7b71b0 100644
--- a/tests/status/worktree.c
+++ b/tests/status/worktree.c
@@ -985,6 +985,8 @@ void test_status_worktree__update_stat_cache_0(void)
opts.flags &= ~GIT_STATUS_OPT_UPDATE_INDEX;
+ /* tick again as the index updating from the previous diff might have reset the timestamp */
+ tick_index(index);
cl_git_pass(git_status_list_new(&status, repo, &opts));
check_status0(status);
cl_git_pass(git_status_list_get_perfdata(&perf, status));