summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEdward Thomson <ethomson@edwardthomson.com>2019-06-23 23:52:24 +0100
committerEdward Thomson <ethomson@edwardthomson.com>2019-08-11 21:32:02 +0100
commit3661e35e4ecb503da656a86e52b9017868dd4208 (patch)
tree9ec806c9ddcd2bf7068fd1c9fd87ed1f09967e21
parentfba3bf79780406cad976086cbba8b9684073ba9d (diff)
downloadlibgit2-3661e35e4ecb503da656a86e52b9017868dd4208.tar.gz
filter: test we can filter a blob in a bare repo
-rw-r--r--tests/filter/bare.c111
-rw-r--r--tests/resources/crlf.git/COMMIT_EDITMSG1
-rw-r--r--tests/resources/crlf.git/HEAD1
-rw-r--r--tests/resources/crlf.git/config3
-rw-r--r--tests/resources/crlf.git/logs/HEAD1
-rw-r--r--tests/resources/crlf.git/logs/refs/heads/master1
-rw-r--r--tests/resources/crlf.git/objects/04/4bcd5c9bf5ebdd51e514a9a36457018f06f6e11
-rw-r--r--tests/resources/crlf.git/objects/04/de00b358f13389948756732158eaaaefa1448cbin0 -> 28 bytes
-rw-r--r--tests/resources/crlf.git/objects/09/7722be9b67b48dfe3b19396d02fd535300ee46bin0 -> 344 bytes
-rw-r--r--tests/resources/crlf.git/objects/0a/a76e474d259bd7c13eb726a1396c381db55c88bin0 -> 27 bytes
-rw-r--r--tests/resources/crlf.git/objects/0d/06894e14df22e066763ae906e0ed3eb79c205fbin0 -> 134 bytes
-rw-r--r--tests/resources/crlf.git/objects/0e/052888828a954ca17e5882638e3c6a083e75c0bin0 -> 107 bytes
-rw-r--r--tests/resources/crlf.git/objects/0f/f5a53f19bfd2b5eea1ba550295c47515678987bin0 -> 29 bytes
-rw-r--r--tests/resources/crlf.git/objects/16/78031ee023a23bd3515e4e1693b661a69f0a73bin0 -> 193 bytes
-rw-r--r--tests/resources/crlf.git/objects/16/c72b67861f8524a5bebc05cd20472d3fca00dabin0 -> 64 bytes
-rw-r--r--tests/resources/crlf.git/objects/18/c637c5d9aba6eed226ee1840cd1ca2e6c4e4c5bin0 -> 442 bytes
-rw-r--r--tests/resources/crlf.git/objects/20/3555c5676d75cd80d69b50beb1f4b588c59cebbin0 -> 36 bytes
-rw-r--r--tests/resources/crlf.git/objects/23/f4582779e60bfa7f14750ad507399a58876611bin0 -> 219 bytes
-rw-r--r--tests/resources/crlf.git/objects/2a/d3df895f68f4dda6a0a815c620b909bdd27c05bin0 -> 462 bytes
-rw-r--r--tests/resources/crlf.git/objects/2b/55b4b94f655c857635b6a9005c056aa7de35322
-rw-r--r--tests/resources/crlf.git/objects/2b/d9d81b51a867352bab307b89cbb5b4a69adfe1bin0 -> 336 bytes
-rw-r--r--tests/resources/crlf.git/objects/2c/03f9f407b576eae80327864bab572e282a33eabin0 -> 455 bytes
-rw-r--r--tests/resources/crlf.git/objects/33/cdead44e1c3ec178e39a4a69085280dbacf01bbin0 -> 221 bytes
-rw-r--r--tests/resources/crlf.git/objects/38/1cfe630df902bc29271a202d3277981180e4a6bin0 -> 25 bytes
-rw-r--r--tests/resources/crlf.git/objects/3f/96bdca0e37616026afaa325c148cec4aa62d04bin0 -> 164 bytes
-rw-r--r--tests/resources/crlf.git/objects/41/7786fc35b3c71aa546e3f95eb5da3c8dad8c41bin0 -> 36 bytes
-rw-r--r--tests/resources/crlf.git/objects/47/fbc2c28a18df0dc773276a253eb85c7516ca50bin0 -> 36 bytes
-rw-r--r--tests/resources/crlf.git/objects/4b/825dc642cb6eb9a060e54bf8d69288fbee4904bin0 -> 15 bytes
-rw-r--r--tests/resources/crlf.git/objects/5a/fb6a14a864e30787857dd92af837e8cdd2cb1bbin0 -> 194 bytes
-rw-r--r--tests/resources/crlf.git/objects/68/03c385642cebc8103fddd526ef395d75678a7e2
-rw-r--r--tests/resources/crlf.git/objects/69/597764abeaa1a403ebf589d2ea579c6a8f877e1
-rw-r--r--tests/resources/crlf.git/objects/6a/e3e9c11a51f0aabebcffcbd5c00f4beed143c9bin0 -> 87 bytes
-rw-r--r--tests/resources/crlf.git/objects/6b/9d5748663795f573ea857276eb2a5f8330efa01
-rw-r--r--tests/resources/crlf.git/objects/6c/589757f65a970a6cc07c71c3f3d2528c611cbc2
-rw-r--r--tests/resources/crlf.git/objects/72/10e91413baa3d9b90215e970ae53397ecc526ebin0 -> 85 bytes
-rw-r--r--tests/resources/crlf.git/objects/77/afe26d93c49279ca90604c125496920753fedebin0 -> 178 bytes
-rw-r--r--tests/resources/crlf.git/objects/78/db270c1841841f75a8157321bdcb50ab12e6c3bin0 -> 156 bytes
-rw-r--r--tests/resources/crlf.git/objects/79/9770d1cff46753a57db7a066159b5610da6e3abin0 -> 20 bytes
-rw-r--r--tests/resources/crlf.git/objects/7c/ce67e58173e2b01f7db124ceaabe3183d19c49bin0 -> 24 bytes
-rw-r--r--tests/resources/crlf.git/objects/85/340755cfe5e28c2835781978bb1cece91b3d0fbin0 -> 37 bytes
-rw-r--r--tests/resources/crlf.git/objects/92/0e90a663bea5d740989d5f935f6dfb473a0c5dbin0 -> 303 bytes
-rw-r--r--tests/resources/crlf.git/objects/96/87e444bcbb85645cb496080434c292f1b571821
-rw-r--r--tests/resources/crlf.git/objects/97/449da2d225557c558ac244384d487e66c3e591bin0 -> 177 bytes
-rw-r--r--tests/resources/crlf.git/objects/9a/6c3533fef19abd6eec8e61206b5c51982b80d9bin0 -> 58 bytes
-rw-r--r--tests/resources/crlf.git/objects/9d/29b5bb165bf65637ffcb5ededb82ddd7c3fd13bin0 -> 227 bytes
-rw-r--r--tests/resources/crlf.git/objects/a2/34455d62297f1856c4603686150c59fcb0aafebin0 -> 189 bytes
-rw-r--r--tests/resources/crlf.git/objects/a9/a2e8913c1dbe2812fac5e6b4e0a4bd5d0d59661
-rw-r--r--tests/resources/crlf.git/objects/aa/f083a9cb53dac3669dcfa0e48921580d629ec7bin0 -> 37 bytes
-rw-r--r--tests/resources/crlf.git/objects/af/6fcf6da196f615d7cda269b55b5c4ecfb4a5b3bin0 -> 36 bytes
-rw-r--r--tests/resources/crlf.git/objects/bb/29a7b46b5d4ba3ea17b238ae561b81d59dc818bin0 -> 170 bytes
-rw-r--r--tests/resources/crlf.git/objects/c3/e11722855ff260bd27418988ac1467c4e9e73abin0 -> 261 bytes
-rw-r--r--tests/resources/crlf.git/objects/c8/d0b1ebcaccdd8f968c4aae3c2175e7fed651fe2
-rw-r--r--tests/resources/crlf.git/objects/cd/574f5a2baa4c79504f8837b730fa0b11defe99bin0 -> 62 bytes
-rw-r--r--tests/resources/crlf.git/objects/cd/d3dacc5c0501d5ea57bbdf90e3d80176606139bin0 -> 565 bytes
-rw-r--r--tests/resources/crlf.git/objects/d1/1e7ef63ba7db1db3b1b99cdbafc57a8549f8a4bin0 -> 35 bytes
-rw-r--r--tests/resources/crlf.git/objects/dc/88e3b917de821e25962bea7ec1f55c4ce2112cbin0 -> 32 bytes
-rw-r--r--tests/resources/crlf.git/objects/de/5bfa165999d9d6c6dbafad2a7e709f93ec30fdbin0 -> 179 bytes
-rw-r--r--tests/resources/crlf.git/objects/e1/379fd9942d04e7e80892b866d37bdb7da9e4e1bin0 -> 599 bytes
-rw-r--r--tests/resources/crlf.git/objects/e5/062da7d7802cf492975eda580f09ac4876bd881
-rw-r--r--tests/resources/crlf.git/objects/e6/9de29bb2d1d6434b8b29ae775ad8c2e48c5391bin0 -> 15 bytes
-rw-r--r--tests/resources/crlf.git/objects/ea/030d3c6cec212069eca698cabaa5b4550f1511bin0 -> 32 bytes
-rw-r--r--tests/resources/crlf.git/objects/ef/0dcd356d77221e9c27f4f3928ad28e80b87cebbin0 -> 168 bytes
-rw-r--r--tests/resources/crlf.git/objects/f2/b745d7f47d114a3a6b31a7b628e61e804d1a58bin0 -> 561 bytes
-rw-r--r--tests/resources/crlf.git/objects/f4/d25b796d86387205a5498175d66e91d1e5006abin0 -> 106 bytes
-rw-r--r--tests/resources/crlf.git/objects/fe/085d9ace90cc675b87df15e1aeed0c3a31407fbin0 -> 139 bytes
-rw-r--r--tests/resources/crlf.git/objects/fe/ab3713c4659bb22700042b3c55b8d60d0a952bbin0 -> 568 bytes
-rw-r--r--tests/resources/crlf.git/refs/heads/empty-files1
-rw-r--r--tests/resources/crlf.git/refs/heads/master1
68 files changed, 134 insertions, 0 deletions
diff --git a/tests/filter/bare.c b/tests/filter/bare.c
new file mode 100644
index 000000000..495e04e17
--- /dev/null
+++ b/tests/filter/bare.c
@@ -0,0 +1,111 @@
+#include "clar_libgit2.h"
+#include "crlf.h"
+
+static git_repository *g_repo = NULL;
+static git_blob_filter_options filter_opts = GIT_BLOB_FILTER_OPTIONS_INIT;
+
+void test_filter_bare__initialize(void)
+{
+ cl_fixture_sandbox("crlf.git");
+ cl_git_pass(git_repository_open(&g_repo, "crlf.git"));
+
+ filter_opts.flags |= GIT_BLOB_FILTER_NO_SYSTEM_ATTRIBUTES;
+ filter_opts.flags |= GIT_BLOB_FILTER_ATTTRIBUTES_FROM_HEAD;
+}
+
+void test_filter_bare__cleanup(void)
+{
+ git_repository_free(g_repo);
+ cl_fixture_cleanup("crlf.git");
+}
+
+void test_filter_bare__all_crlf(void)
+{
+ git_blob *blob;
+ git_buf buf = { 0 };
+
+ cl_git_pass(git_revparse_single(
+ (git_object **)&blob, g_repo, "a9a2e89")); /* all-crlf */
+
+ cl_assert_equal_s(ALL_CRLF_TEXT_RAW, git_blob_rawcontent(blob));
+
+ cl_git_pass(git_blob_filter(&buf, blob, "file.bin", &filter_opts));
+
+ cl_assert_equal_s(ALL_CRLF_TEXT_RAW, buf.ptr);
+
+ cl_git_pass(git_blob_filter(&buf, blob, "file.crlf", &filter_opts));
+
+ /* in this case, raw content has crlf in it already */
+ cl_assert_equal_s(ALL_CRLF_TEXT_AS_CRLF, buf.ptr);
+
+ cl_git_pass(git_blob_filter(&buf, blob, "file.lf", &filter_opts));
+
+ /* we never convert CRLF -> LF on platforms that have LF */
+ cl_assert_equal_s(ALL_CRLF_TEXT_AS_CRLF, buf.ptr);
+
+ cl_git_pass(git_blob_filter(&buf, blob, "file.txt", &filter_opts));
+
+ /* in this case, raw content has crlf in it already */
+ cl_assert_equal_s(ALL_CRLF_TEXT_AS_CRLF, buf.ptr);
+
+ git_buf_dispose(&buf);
+ git_blob_free(blob);
+}
+
+void test_filter_bare__from_lf(void)
+{
+ git_blob *blob;
+ git_buf buf = { 0 };
+
+ cl_git_pass(git_revparse_single(
+ (git_object **)&blob, g_repo, "799770d")); /* all-lf */
+
+ cl_assert_equal_s(ALL_LF_TEXT_RAW, git_blob_rawcontent(blob));
+
+ cl_git_pass(git_blob_filter(&buf, blob, "file.bin", &filter_opts));
+
+ cl_assert_equal_s(ALL_LF_TEXT_RAW, buf.ptr);
+
+ cl_git_pass(git_blob_filter(&buf, blob, "file.crlf", &filter_opts));
+
+ /* in this case, raw content has crlf in it already */
+ cl_assert_equal_s(ALL_LF_TEXT_AS_CRLF, buf.ptr);
+
+ cl_git_pass(git_blob_filter(&buf, blob, "file.lf", &filter_opts));
+
+ /* we never convert CRLF -> LF on platforms that have LF */
+ cl_assert_equal_s(ALL_LF_TEXT_AS_LF, buf.ptr);
+
+ git_buf_dispose(&buf);
+ git_blob_free(blob);
+}
+
+void test_filter_bare__sanitizes(void)
+{
+ git_blob *blob;
+ git_buf buf = GIT_BUF_INIT;
+
+ cl_git_pass(git_revparse_single(
+ (git_object **)&blob, g_repo, "e69de29")); /* zero-byte */
+
+ cl_assert_equal_i(0, git_blob_rawsize(blob));
+ cl_assert_equal_s("", git_blob_rawcontent(blob));
+
+ cl_git_pass(git_blob_filter(&buf, blob, "file.bin", &filter_opts));
+ cl_assert_equal_sz(0, buf.size);
+ cl_assert_equal_s("", buf.ptr);
+ git_buf_dispose(&buf);
+
+ cl_git_pass(git_blob_filter(&buf, blob, "file.crlf", &filter_opts));
+ cl_assert_equal_sz(0, buf.size);
+ cl_assert_equal_s("", buf.ptr);
+ git_buf_dispose(&buf);
+
+ cl_git_pass(git_blob_filter(&buf, blob, "file.lf", &filter_opts));
+ cl_assert_equal_sz(0, buf.size);
+ cl_assert_equal_s("", buf.ptr);
+ git_buf_dispose(&buf);
+
+ git_blob_free(blob);
+}
+
diff --git a/tests/resources/crlf.git/COMMIT_EDITMSG b/tests/resources/crlf.git/COMMIT_EDITMSG
new file mode 100644
index 000000000..f038034ff
--- /dev/null
+++ b/tests/resources/crlf.git/COMMIT_EDITMSG
@@ -0,0 +1 @@
+Add .gitattributes
diff --git a/tests/resources/crlf.git/HEAD b/tests/resources/crlf.git/HEAD
new file mode 100644
index 000000000..cb089cd89
--- /dev/null
+++ b/tests/resources/crlf.git/HEAD
@@ -0,0 +1 @@
+ref: refs/heads/master
diff --git a/tests/resources/crlf.git/config b/tests/resources/crlf.git/config
new file mode 100644
index 000000000..8e7c7b426
--- /dev/null
+++ b/tests/resources/crlf.git/config
@@ -0,0 +1,3 @@
+[core]
+ repositoryformatversion = 0
+ bare = true
diff --git a/tests/resources/crlf.git/logs/HEAD b/tests/resources/crlf.git/logs/HEAD
new file mode 100644
index 000000000..3421ae773
--- /dev/null
+++ b/tests/resources/crlf.git/logs/HEAD
@@ -0,0 +1 @@
+5afb6a14a864e30787857dd92af837e8cdd2cb1b 6b9d5748663795f573ea857276eb2a5f8330efa0 Edward Thomson <ethomson@edwardthomson.com> 1561324263 +0100 commit: Add .gitattributes
diff --git a/tests/resources/crlf.git/logs/refs/heads/master b/tests/resources/crlf.git/logs/refs/heads/master
new file mode 100644
index 000000000..3421ae773
--- /dev/null
+++ b/tests/resources/crlf.git/logs/refs/heads/master
@@ -0,0 +1 @@
+5afb6a14a864e30787857dd92af837e8cdd2cb1b 6b9d5748663795f573ea857276eb2a5f8330efa0 Edward Thomson <ethomson@edwardthomson.com> 1561324263 +0100 commit: Add .gitattributes
diff --git a/tests/resources/crlf.git/objects/04/4bcd5c9bf5ebdd51e514a9a36457018f06f6e1 b/tests/resources/crlf.git/objects/04/4bcd5c9bf5ebdd51e514a9a36457018f06f6e1
new file mode 100644
index 000000000..a32a9b282
--- /dev/null
+++ b/tests/resources/crlf.git/objects/04/4bcd5c9bf5ebdd51e514a9a36457018f06f6e1
@@ -0,0 +1 @@
+x-j0D{W4H++C(ɡ]aJU|}̃ʺ. кVE@vȔvBx=%l sDxH!x3E9AhPdUTk {k+Av`C2|h괟lR{~/]`z-̥<]M5?]udr&K! \ No newline at end of file
diff --git a/tests/resources/crlf.git/objects/04/de00b358f13389948756732158eaaaefa1448c b/tests/resources/crlf.git/objects/04/de00b358f13389948756732158eaaaefa1448c
new file mode 100644
index 000000000..c3b7598c0
--- /dev/null
+++ b/tests/resources/crlf.git/objects/04/de00b358f13389948756732158eaaaefa1448c
Binary files differ
diff --git a/tests/resources/crlf.git/objects/09/7722be9b67b48dfe3b19396d02fd535300ee46 b/tests/resources/crlf.git/objects/09/7722be9b67b48dfe3b19396d02fd535300ee46
new file mode 100644
index 000000000..5c5c24cd5
--- /dev/null
+++ b/tests/resources/crlf.git/objects/09/7722be9b67b48dfe3b19396d02fd535300ee46
Binary files differ
diff --git a/tests/resources/crlf.git/objects/0a/a76e474d259bd7c13eb726a1396c381db55c88 b/tests/resources/crlf.git/objects/0a/a76e474d259bd7c13eb726a1396c381db55c88
new file mode 100644
index 000000000..e118d6656
--- /dev/null
+++ b/tests/resources/crlf.git/objects/0a/a76e474d259bd7c13eb726a1396c381db55c88
Binary files differ
diff --git a/tests/resources/crlf.git/objects/0d/06894e14df22e066763ae906e0ed3eb79c205f b/tests/resources/crlf.git/objects/0d/06894e14df22e066763ae906e0ed3eb79c205f
new file mode 100644
index 000000000..b7a1f3290
--- /dev/null
+++ b/tests/resources/crlf.git/objects/0d/06894e14df22e066763ae906e0ed3eb79c205f
Binary files differ
diff --git a/tests/resources/crlf.git/objects/0e/052888828a954ca17e5882638e3c6a083e75c0 b/tests/resources/crlf.git/objects/0e/052888828a954ca17e5882638e3c6a083e75c0
new file mode 100644
index 000000000..746143f85
--- /dev/null
+++ b/tests/resources/crlf.git/objects/0e/052888828a954ca17e5882638e3c6a083e75c0
Binary files differ
diff --git a/tests/resources/crlf.git/objects/0f/f5a53f19bfd2b5eea1ba550295c47515678987 b/tests/resources/crlf.git/objects/0f/f5a53f19bfd2b5eea1ba550295c47515678987
new file mode 100644
index 000000000..5366acd8c
--- /dev/null
+++ b/tests/resources/crlf.git/objects/0f/f5a53f19bfd2b5eea1ba550295c47515678987
Binary files differ
diff --git a/tests/resources/crlf.git/objects/16/78031ee023a23bd3515e4e1693b661a69f0a73 b/tests/resources/crlf.git/objects/16/78031ee023a23bd3515e4e1693b661a69f0a73
new file mode 100644
index 000000000..4aa4ffb1d
--- /dev/null
+++ b/tests/resources/crlf.git/objects/16/78031ee023a23bd3515e4e1693b661a69f0a73
Binary files differ
diff --git a/tests/resources/crlf.git/objects/16/c72b67861f8524a5bebc05cd20472d3fca00da b/tests/resources/crlf.git/objects/16/c72b67861f8524a5bebc05cd20472d3fca00da
new file mode 100644
index 000000000..e2b199458
--- /dev/null
+++ b/tests/resources/crlf.git/objects/16/c72b67861f8524a5bebc05cd20472d3fca00da
Binary files differ
diff --git a/tests/resources/crlf.git/objects/18/c637c5d9aba6eed226ee1840cd1ca2e6c4e4c5 b/tests/resources/crlf.git/objects/18/c637c5d9aba6eed226ee1840cd1ca2e6c4e4c5
new file mode 100644
index 000000000..790eb1324
--- /dev/null
+++ b/tests/resources/crlf.git/objects/18/c637c5d9aba6eed226ee1840cd1ca2e6c4e4c5
Binary files differ
diff --git a/tests/resources/crlf.git/objects/20/3555c5676d75cd80d69b50beb1f4b588c59ceb b/tests/resources/crlf.git/objects/20/3555c5676d75cd80d69b50beb1f4b588c59ceb
new file mode 100644
index 000000000..8038a9b10
--- /dev/null
+++ b/tests/resources/crlf.git/objects/20/3555c5676d75cd80d69b50beb1f4b588c59ceb
Binary files differ
diff --git a/tests/resources/crlf.git/objects/23/f4582779e60bfa7f14750ad507399a58876611 b/tests/resources/crlf.git/objects/23/f4582779e60bfa7f14750ad507399a58876611
new file mode 100644
index 000000000..4a4e4dc9e
--- /dev/null
+++ b/tests/resources/crlf.git/objects/23/f4582779e60bfa7f14750ad507399a58876611
Binary files differ
diff --git a/tests/resources/crlf.git/objects/2a/d3df895f68f4dda6a0a815c620b909bdd27c05 b/tests/resources/crlf.git/objects/2a/d3df895f68f4dda6a0a815c620b909bdd27c05
new file mode 100644
index 000000000..f5421cf6a
--- /dev/null
+++ b/tests/resources/crlf.git/objects/2a/d3df895f68f4dda6a0a815c620b909bdd27c05
Binary files differ
diff --git a/tests/resources/crlf.git/objects/2b/55b4b94f655c857635b6a9005c056aa7de3532 b/tests/resources/crlf.git/objects/2b/55b4b94f655c857635b6a9005c056aa7de3532
new file mode 100644
index 000000000..031fd6681
--- /dev/null
+++ b/tests/resources/crlf.git/objects/2b/55b4b94f655c857635b6a9005c056aa7de3532
@@ -0,0 +1,2 @@
+x-Kj0D)z2tca].O VȄ zRݶԛAvyIfLi.υPɘL0d<=&b{O.09o4ŜI˔
+G_jk -Yھ~XTW ذ NjqKu:_ǣ]na.ZZk7!<#WF \ No newline at end of file
diff --git a/tests/resources/crlf.git/objects/2b/d9d81b51a867352bab307b89cbb5b4a69adfe1 b/tests/resources/crlf.git/objects/2b/d9d81b51a867352bab307b89cbb5b4a69adfe1
new file mode 100644
index 000000000..96d952e85
--- /dev/null
+++ b/tests/resources/crlf.git/objects/2b/d9d81b51a867352bab307b89cbb5b4a69adfe1
Binary files differ
diff --git a/tests/resources/crlf.git/objects/2c/03f9f407b576eae80327864bab572e282a33ea b/tests/resources/crlf.git/objects/2c/03f9f407b576eae80327864bab572e282a33ea
new file mode 100644
index 000000000..0e4afbbba
--- /dev/null
+++ b/tests/resources/crlf.git/objects/2c/03f9f407b576eae80327864bab572e282a33ea
Binary files differ
diff --git a/tests/resources/crlf.git/objects/33/cdead44e1c3ec178e39a4a69085280dbacf01b b/tests/resources/crlf.git/objects/33/cdead44e1c3ec178e39a4a69085280dbacf01b
new file mode 100644
index 000000000..72dc780a0
--- /dev/null
+++ b/tests/resources/crlf.git/objects/33/cdead44e1c3ec178e39a4a69085280dbacf01b
Binary files differ
diff --git a/tests/resources/crlf.git/objects/38/1cfe630df902bc29271a202d3277981180e4a6 b/tests/resources/crlf.git/objects/38/1cfe630df902bc29271a202d3277981180e4a6
new file mode 100644
index 000000000..0cf707296
--- /dev/null
+++ b/tests/resources/crlf.git/objects/38/1cfe630df902bc29271a202d3277981180e4a6
Binary files differ
diff --git a/tests/resources/crlf.git/objects/3f/96bdca0e37616026afaa325c148cec4aa62d04 b/tests/resources/crlf.git/objects/3f/96bdca0e37616026afaa325c148cec4aa62d04
new file mode 100644
index 000000000..a204fc983
--- /dev/null
+++ b/tests/resources/crlf.git/objects/3f/96bdca0e37616026afaa325c148cec4aa62d04
Binary files differ
diff --git a/tests/resources/crlf.git/objects/41/7786fc35b3c71aa546e3f95eb5da3c8dad8c41 b/tests/resources/crlf.git/objects/41/7786fc35b3c71aa546e3f95eb5da3c8dad8c41
new file mode 100644
index 000000000..ec57bdeba
--- /dev/null
+++ b/tests/resources/crlf.git/objects/41/7786fc35b3c71aa546e3f95eb5da3c8dad8c41
Binary files differ
diff --git a/tests/resources/crlf.git/objects/47/fbc2c28a18df0dc773276a253eb85c7516ca50 b/tests/resources/crlf.git/objects/47/fbc2c28a18df0dc773276a253eb85c7516ca50
new file mode 100644
index 000000000..d16db9633
--- /dev/null
+++ b/tests/resources/crlf.git/objects/47/fbc2c28a18df0dc773276a253eb85c7516ca50
Binary files differ
diff --git a/tests/resources/crlf.git/objects/4b/825dc642cb6eb9a060e54bf8d69288fbee4904 b/tests/resources/crlf.git/objects/4b/825dc642cb6eb9a060e54bf8d69288fbee4904
new file mode 100644
index 000000000..adf64119a
--- /dev/null
+++ b/tests/resources/crlf.git/objects/4b/825dc642cb6eb9a060e54bf8d69288fbee4904
Binary files differ
diff --git a/tests/resources/crlf.git/objects/5a/fb6a14a864e30787857dd92af837e8cdd2cb1b b/tests/resources/crlf.git/objects/5a/fb6a14a864e30787857dd92af837e8cdd2cb1b
new file mode 100644
index 000000000..11a25c581
--- /dev/null
+++ b/tests/resources/crlf.git/objects/5a/fb6a14a864e30787857dd92af837e8cdd2cb1b
Binary files differ
diff --git a/tests/resources/crlf.git/objects/68/03c385642cebc8103fddd526ef395d75678a7e b/tests/resources/crlf.git/objects/68/03c385642cebc8103fddd526ef395d75678a7e
new file mode 100644
index 000000000..f8d489fcb
--- /dev/null
+++ b/tests/resources/crlf.git/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.git/objects/69/597764abeaa1a403ebf589d2ea579c6a8f877e b/tests/resources/crlf.git/objects/69/597764abeaa1a403ebf589d2ea579c6a8f877e
new file mode 100644
index 000000000..ee4f4273d
--- /dev/null
+++ b/tests/resources/crlf.git/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.git/objects/6a/e3e9c11a51f0aabebcffcbd5c00f4beed143c9 b/tests/resources/crlf.git/objects/6a/e3e9c11a51f0aabebcffcbd5c00f4beed143c9
new file mode 100644
index 000000000..6c18a3ad2
--- /dev/null
+++ b/tests/resources/crlf.git/objects/6a/e3e9c11a51f0aabebcffcbd5c00f4beed143c9
Binary files differ
diff --git a/tests/resources/crlf.git/objects/6b/9d5748663795f573ea857276eb2a5f8330efa0 b/tests/resources/crlf.git/objects/6b/9d5748663795f573ea857276eb2a5f8330efa0
new file mode 100644
index 000000000..680c7cd17
--- /dev/null
+++ b/tests/resources/crlf.git/objects/6b/9d5748663795f573ea857276eb2a5f8330efa0
@@ -0,0 +1 @@
+xK0CYGk>B\`ҙ.ڠ0S7`g?˖,N3q1=GN:e[Rb 3{6ꎍWxL1GlqLnkDv((|T\腍:QW8F?纡.G0}0zZmt;+:AwE\YSm \ No newline at end of file
diff --git a/tests/resources/crlf.git/objects/6c/589757f65a970a6cc07c71c3f3d2528c611cbc b/tests/resources/crlf.git/objects/6c/589757f65a970a6cc07c71c3f3d2528c611cbc
new file mode 100644
index 000000000..fe4da8ce0
--- /dev/null
+++ b/tests/resources/crlf.git/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.git/objects/72/10e91413baa3d9b90215e970ae53397ecc526e b/tests/resources/crlf.git/objects/72/10e91413baa3d9b90215e970ae53397ecc526e
new file mode 100644
index 000000000..38c000d76
--- /dev/null
+++ b/tests/resources/crlf.git/objects/72/10e91413baa3d9b90215e970ae53397ecc526e
Binary files differ
diff --git a/tests/resources/crlf.git/objects/77/afe26d93c49279ca90604c125496920753fede b/tests/resources/crlf.git/objects/77/afe26d93c49279ca90604c125496920753fede
new file mode 100644
index 000000000..a377cb04d
--- /dev/null
+++ b/tests/resources/crlf.git/objects/77/afe26d93c49279ca90604c125496920753fede
Binary files differ
diff --git a/tests/resources/crlf.git/objects/78/db270c1841841f75a8157321bdcb50ab12e6c3 b/tests/resources/crlf.git/objects/78/db270c1841841f75a8157321bdcb50ab12e6c3
new file mode 100644
index 000000000..8a55bb082
--- /dev/null
+++ b/tests/resources/crlf.git/objects/78/db270c1841841f75a8157321bdcb50ab12e6c3
Binary files differ
diff --git a/tests/resources/crlf.git/objects/79/9770d1cff46753a57db7a066159b5610da6e3a b/tests/resources/crlf.git/objects/79/9770d1cff46753a57db7a066159b5610da6e3a
new file mode 100644
index 000000000..5c701b867
--- /dev/null
+++ b/tests/resources/crlf.git/objects/79/9770d1cff46753a57db7a066159b5610da6e3a
Binary files differ
diff --git a/tests/resources/crlf.git/objects/7c/ce67e58173e2b01f7db124ceaabe3183d19c49 b/tests/resources/crlf.git/objects/7c/ce67e58173e2b01f7db124ceaabe3183d19c49
new file mode 100644
index 000000000..8e836aba1
--- /dev/null
+++ b/tests/resources/crlf.git/objects/7c/ce67e58173e2b01f7db124ceaabe3183d19c49
Binary files differ
diff --git a/tests/resources/crlf.git/objects/85/340755cfe5e28c2835781978bb1cece91b3d0f b/tests/resources/crlf.git/objects/85/340755cfe5e28c2835781978bb1cece91b3d0f
new file mode 100644
index 000000000..e83fbc290
--- /dev/null
+++ b/tests/resources/crlf.git/objects/85/340755cfe5e28c2835781978bb1cece91b3d0f
Binary files differ
diff --git a/tests/resources/crlf.git/objects/92/0e90a663bea5d740989d5f935f6dfb473a0c5d b/tests/resources/crlf.git/objects/92/0e90a663bea5d740989d5f935f6dfb473a0c5d
new file mode 100644
index 000000000..f872be6e9
--- /dev/null
+++ b/tests/resources/crlf.git/objects/92/0e90a663bea5d740989d5f935f6dfb473a0c5d
Binary files differ
diff --git a/tests/resources/crlf.git/objects/96/87e444bcbb85645cb496080434c292f1b57182 b/tests/resources/crlf.git/objects/96/87e444bcbb85645cb496080434c292f1b57182
new file mode 100644
index 000000000..5df64d849
--- /dev/null
+++ b/tests/resources/crlf.git/objects/96/87e444bcbb85645cb496080434c292f1b57182
@@ -0,0 +1 @@
+xAJ1@Q9E!T:Y ޢRMAoGp/m7L*LQ)yEU(JqfP2Q1%L$QS ,xѾoz|xz󰾱I 0{S@x轻}_wU+H50'2=T \ No newline at end of file
diff --git a/tests/resources/crlf.git/objects/97/449da2d225557c558ac244384d487e66c3e591 b/tests/resources/crlf.git/objects/97/449da2d225557c558ac244384d487e66c3e591
new file mode 100644
index 000000000..d3917a433
--- /dev/null
+++ b/tests/resources/crlf.git/objects/97/449da2d225557c558ac244384d487e66c3e591
Binary files differ
diff --git a/tests/resources/crlf.git/objects/9a/6c3533fef19abd6eec8e61206b5c51982b80d9 b/tests/resources/crlf.git/objects/9a/6c3533fef19abd6eec8e61206b5c51982b80d9
new file mode 100644
index 000000000..78fc8aeb7
--- /dev/null
+++ b/tests/resources/crlf.git/objects/9a/6c3533fef19abd6eec8e61206b5c51982b80d9
Binary files differ
diff --git a/tests/resources/crlf.git/objects/9d/29b5bb165bf65637ffcb5ededb82ddd7c3fd13 b/tests/resources/crlf.git/objects/9d/29b5bb165bf65637ffcb5ededb82ddd7c3fd13
new file mode 100644
index 000000000..106332d55
--- /dev/null
+++ b/tests/resources/crlf.git/objects/9d/29b5bb165bf65637ffcb5ededb82ddd7c3fd13
Binary files differ
diff --git a/tests/resources/crlf.git/objects/a2/34455d62297f1856c4603686150c59fcb0aafe b/tests/resources/crlf.git/objects/a2/34455d62297f1856c4603686150c59fcb0aafe
new file mode 100644
index 000000000..7d204f4c8
--- /dev/null
+++ b/tests/resources/crlf.git/objects/a2/34455d62297f1856c4603686150c59fcb0aafe
Binary files differ
diff --git a/tests/resources/crlf.git/objects/a9/a2e8913c1dbe2812fac5e6b4e0a4bd5d0d5966 b/tests/resources/crlf.git/objects/a9/a2e8913c1dbe2812fac5e6b4e0a4bd5d0d5966
new file mode 100644
index 000000000..33d59f1f1
--- /dev/null
+++ b/tests/resources/crlf.git/objects/a9/a2e8913c1dbe2812fac5e6b4e0a4bd5d0d5966
@@ -0,0 +1 @@
+xKOR02aH.I$  \ No newline at end of file
diff --git a/tests/resources/crlf.git/objects/aa/f083a9cb53dac3669dcfa0e48921580d629ec7 b/tests/resources/crlf.git/objects/aa/f083a9cb53dac3669dcfa0e48921580d629ec7
new file mode 100644
index 000000000..38775d005
--- /dev/null
+++ b/tests/resources/crlf.git/objects/aa/f083a9cb53dac3669dcfa0e48921580d629ec7
Binary files differ
diff --git a/tests/resources/crlf.git/objects/af/6fcf6da196f615d7cda269b55b5c4ecfb4a5b3 b/tests/resources/crlf.git/objects/af/6fcf6da196f615d7cda269b55b5c4ecfb4a5b3
new file mode 100644
index 000000000..0acc9744e
--- /dev/null
+++ b/tests/resources/crlf.git/objects/af/6fcf6da196f615d7cda269b55b5c4ecfb4a5b3
Binary files differ
diff --git a/tests/resources/crlf.git/objects/bb/29a7b46b5d4ba3ea17b238ae561b81d59dc818 b/tests/resources/crlf.git/objects/bb/29a7b46b5d4ba3ea17b238ae561b81d59dc818
new file mode 100644
index 000000000..a08789b54
--- /dev/null
+++ b/tests/resources/crlf.git/objects/bb/29a7b46b5d4ba3ea17b238ae561b81d59dc818
Binary files differ
diff --git a/tests/resources/crlf.git/objects/c3/e11722855ff260bd27418988ac1467c4e9e73a b/tests/resources/crlf.git/objects/c3/e11722855ff260bd27418988ac1467c4e9e73a
new file mode 100644
index 000000000..5f96dc76c
--- /dev/null
+++ b/tests/resources/crlf.git/objects/c3/e11722855ff260bd27418988ac1467c4e9e73a
Binary files differ
diff --git a/tests/resources/crlf.git/objects/c8/d0b1ebcaccdd8f968c4aae3c2175e7fed651fe b/tests/resources/crlf.git/objects/c8/d0b1ebcaccdd8f968c4aae3c2175e7fed651fe
new file mode 100644
index 000000000..21e2ce093
--- /dev/null
+++ b/tests/resources/crlf.git/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.git/objects/cd/574f5a2baa4c79504f8837b730fa0b11defe99 b/tests/resources/crlf.git/objects/cd/574f5a2baa4c79504f8837b730fa0b11defe99
new file mode 100644
index 000000000..e8d020246
--- /dev/null
+++ b/tests/resources/crlf.git/objects/cd/574f5a2baa4c79504f8837b730fa0b11defe99
Binary files differ
diff --git a/tests/resources/crlf.git/objects/cd/d3dacc5c0501d5ea57bbdf90e3d80176606139 b/tests/resources/crlf.git/objects/cd/d3dacc5c0501d5ea57bbdf90e3d80176606139
new file mode 100644
index 000000000..72cf3b0fd
--- /dev/null
+++ b/tests/resources/crlf.git/objects/cd/d3dacc5c0501d5ea57bbdf90e3d80176606139
Binary files differ
diff --git a/tests/resources/crlf.git/objects/d1/1e7ef63ba7db1db3b1b99cdbafc57a8549f8a4 b/tests/resources/crlf.git/objects/d1/1e7ef63ba7db1db3b1b99cdbafc57a8549f8a4
new file mode 100644
index 000000000..05d88fc86
--- /dev/null
+++ b/tests/resources/crlf.git/objects/d1/1e7ef63ba7db1db3b1b99cdbafc57a8549f8a4
Binary files differ
diff --git a/tests/resources/crlf.git/objects/dc/88e3b917de821e25962bea7ec1f55c4ce2112c b/tests/resources/crlf.git/objects/dc/88e3b917de821e25962bea7ec1f55c4ce2112c
new file mode 100644
index 000000000..3db13aa79
--- /dev/null
+++ b/tests/resources/crlf.git/objects/dc/88e3b917de821e25962bea7ec1f55c4ce2112c
Binary files differ
diff --git a/tests/resources/crlf.git/objects/de/5bfa165999d9d6c6dbafad2a7e709f93ec30fd b/tests/resources/crlf.git/objects/de/5bfa165999d9d6c6dbafad2a7e709f93ec30fd
new file mode 100644
index 000000000..e288b975f
--- /dev/null
+++ b/tests/resources/crlf.git/objects/de/5bfa165999d9d6c6dbafad2a7e709f93ec30fd
Binary files differ
diff --git a/tests/resources/crlf.git/objects/e1/379fd9942d04e7e80892b866d37bdb7da9e4e1 b/tests/resources/crlf.git/objects/e1/379fd9942d04e7e80892b866d37bdb7da9e4e1
new file mode 100644
index 000000000..01f8745fd
--- /dev/null
+++ b/tests/resources/crlf.git/objects/e1/379fd9942d04e7e80892b866d37bdb7da9e4e1
Binary files differ
diff --git a/tests/resources/crlf.git/objects/e5/062da7d7802cf492975eda580f09ac4876bd88 b/tests/resources/crlf.git/objects/e5/062da7d7802cf492975eda580f09ac4876bd88
new file mode 100644
index 000000000..62835b9e1
--- /dev/null
+++ b/tests/resources/crlf.git/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.git/objects/e6/9de29bb2d1d6434b8b29ae775ad8c2e48c5391 b/tests/resources/crlf.git/objects/e6/9de29bb2d1d6434b8b29ae775ad8c2e48c5391
new file mode 100644
index 000000000..711223894
--- /dev/null
+++ b/tests/resources/crlf.git/objects/e6/9de29bb2d1d6434b8b29ae775ad8c2e48c5391
Binary files differ
diff --git a/tests/resources/crlf.git/objects/ea/030d3c6cec212069eca698cabaa5b4550f1511 b/tests/resources/crlf.git/objects/ea/030d3c6cec212069eca698cabaa5b4550f1511
new file mode 100644
index 000000000..117dc725a
--- /dev/null
+++ b/tests/resources/crlf.git/objects/ea/030d3c6cec212069eca698cabaa5b4550f1511
Binary files differ
diff --git a/tests/resources/crlf.git/objects/ef/0dcd356d77221e9c27f4f3928ad28e80b87ceb b/tests/resources/crlf.git/objects/ef/0dcd356d77221e9c27f4f3928ad28e80b87ceb
new file mode 100644
index 000000000..33aceda12
--- /dev/null
+++ b/tests/resources/crlf.git/objects/ef/0dcd356d77221e9c27f4f3928ad28e80b87ceb
Binary files differ
diff --git a/tests/resources/crlf.git/objects/f2/b745d7f47d114a3a6b31a7b628e61e804d1a58 b/tests/resources/crlf.git/objects/f2/b745d7f47d114a3a6b31a7b628e61e804d1a58
new file mode 100644
index 000000000..7b2e7a116
--- /dev/null
+++ b/tests/resources/crlf.git/objects/f2/b745d7f47d114a3a6b31a7b628e61e804d1a58
Binary files differ
diff --git a/tests/resources/crlf.git/objects/f4/d25b796d86387205a5498175d66e91d1e5006a b/tests/resources/crlf.git/objects/f4/d25b796d86387205a5498175d66e91d1e5006a
new file mode 100644
index 000000000..792b1659d
--- /dev/null
+++ b/tests/resources/crlf.git/objects/f4/d25b796d86387205a5498175d66e91d1e5006a
Binary files differ
diff --git a/tests/resources/crlf.git/objects/fe/085d9ace90cc675b87df15e1aeed0c3a31407f b/tests/resources/crlf.git/objects/fe/085d9ace90cc675b87df15e1aeed0c3a31407f
new file mode 100644
index 000000000..2e8d10b76
--- /dev/null
+++ b/tests/resources/crlf.git/objects/fe/085d9ace90cc675b87df15e1aeed0c3a31407f
Binary files differ
diff --git a/tests/resources/crlf.git/objects/fe/ab3713c4659bb22700042b3c55b8d60d0a952b b/tests/resources/crlf.git/objects/fe/ab3713c4659bb22700042b3c55b8d60d0a952b
new file mode 100644
index 000000000..8552c7bf7
--- /dev/null
+++ b/tests/resources/crlf.git/objects/fe/ab3713c4659bb22700042b3c55b8d60d0a952b
Binary files differ
diff --git a/tests/resources/crlf.git/refs/heads/empty-files b/tests/resources/crlf.git/refs/heads/empty-files
new file mode 100644
index 000000000..8f1fe6104
--- /dev/null
+++ b/tests/resources/crlf.git/refs/heads/empty-files
@@ -0,0 +1 @@
+9687e444bcbb85645cb496080434c292f1b57182
diff --git a/tests/resources/crlf.git/refs/heads/master b/tests/resources/crlf.git/refs/heads/master
new file mode 100644
index 000000000..a35e8bec6
--- /dev/null
+++ b/tests/resources/crlf.git/refs/heads/master
@@ -0,0 +1 @@
+6b9d5748663795f573ea857276eb2a5f8330efa0