diff options
Diffstat (limited to 't')
-rwxr-xr-x | t/t1014-read-tree-confusing.sh | 24 | ||||
-rw-r--r-- | t/test-lib.sh | 6 |
2 files changed, 25 insertions, 5 deletions
diff --git a/t/t1014-read-tree-confusing.sh b/t/t1014-read-tree-confusing.sh index eff8aedf7..ec310d593 100755 --- a/t/t1014-read-tree-confusing.sh +++ b/t/t1014-read-tree-confusing.sh @@ -11,23 +11,39 @@ test_expect_success 'create base tree' ' tree=$(git rev-parse HEAD^{tree}) ' -while read path; do - test_expect_success "reject $path at end of path" ' +test_expect_success 'enable core.protectHFS for rejection tests' ' + git config core.protectHFS true +' + +while read path pretty; do + : ${pretty:=$path} + test_expect_success "reject $pretty at end of path" ' printf "100644 blob %s\t%s" "$blob" "$path" >tree && bogus=$(git mktree <tree) && test_must_fail git read-tree $bogus ' - test_expect_success "reject $path as subtree" ' + test_expect_success "reject $pretty as subtree" ' printf "040000 tree %s\t%s" "$tree" "$path" >tree && bogus=$(git mktree <tree) && test_must_fail git read-tree $bogus ' -done <<-\EOF +done <<-EOF . .. .git .GIT +${u200c}.Git {u200c}.Git +.gI${u200c}T .gI{u200c}T +.GiT${u200c} .GiT{u200c} EOF +test_expect_success 'utf-8 paths allowed with core.protectHFS off' ' + test_when_finished "git read-tree HEAD" && + test_config core.protectHFS false && + printf "100644 blob %s\t%s" "$blob" ".gi${u200c}t" >tree && + ok=$(git mktree <tree) && + git read-tree $ok +' + test_done diff --git a/t/test-lib.sh b/t/test-lib.sh index b25249ec4..d4569f8df 100644 --- a/t/test-lib.sh +++ b/t/test-lib.sh @@ -154,7 +154,11 @@ _z40=0000000000000000000000000000000000000000 LF=' ' -export _x05 _x40 _z40 LF +# UTF-8 ZERO WIDTH NON-JOINER, which HFS+ ignores +# when case-folding filenames +u200c=$(printf '\342\200\214') + +export _x05 _x40 _z40 LF u200c # Each test should start with something like this, after copyright notices: # |