diff options
author | Eric Sunshine <sunshine@sunshineco.com> | 2018-01-21 03:07:28 -0500 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2018-01-21 21:12:17 -0800 |
commit | b6947af2294ea0c814f5b4cb8737c782895519b2 (patch) | |
tree | 8612ab2a6b5cf9d45777774a443ea9b7fdc5451b /t | |
parent | repository: pre-initialize hash algo pointer (diff) | |
download | tgif-b6947af2294ea0c814f5b4cb8737c782895519b2.tar.xz |
t5601-clone: test case-conflicting files on case-insensitive filesystem
A recently introduced regression caused a segfault at clone time on
case-insensitive filesystems when filenames differing only in case are
present. This bug has already been fixed (repository: pre-initialize
hash algo pointer, 2018-01-18), but it's not the first time similar
problems have arisen. Therefore, introduce a test to catch this case and
protect against future regressions.
Signed-off-by: Eric Sunshine <sunshine@sunshineco.com>
Signed-off-by: brian m. carlson <sandals@crustytoothpaste.net>
Signed-off-by: Eric Sunshine <sunshine@sunshineco.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 't')
-rwxr-xr-x | t/t5601-clone.sh | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/t/t5601-clone.sh b/t/t5601-clone.sh index 50e40abb11..55df602aea 100755 --- a/t/t5601-clone.sh +++ b/t/t5601-clone.sh @@ -573,4 +573,21 @@ test_expect_success 'GIT_TRACE_PACKFILE produces a usable pack' ' git -C replay.git index-pack -v --stdin <tmp.pack ' +hex2oct () { + perl -ne 'printf "\\%03o", hex for /../g' +} + +test_expect_success 'clone on case-insensitive fs' ' + git init icasefs && + ( + cd icasefs + o=$(git hash-object -w --stdin </dev/null | hex2oct) && + t=$(printf "100644 X\0${o}100644 x\0${o}" | + git hash-object -w -t tree --stdin) && + c=$(git commit-tree -m bogus $t) && + git update-ref refs/heads/bogus $c && + git clone -b bogus . bogus + ) +' + test_done |