diff options
-rwxr-xr-x | t/t7450-bad-git-dotfiles.sh | 19 |
1 files changed, 16 insertions, 3 deletions
diff --git a/t/t7450-bad-git-dotfiles.sh b/t/t7450-bad-git-dotfiles.sh index 34d4dc6def..eace9a2216 100755 --- a/t/t7450-bad-git-dotfiles.sh +++ b/t/t7450-bad-git-dotfiles.sh @@ -139,7 +139,7 @@ test_expect_success 'index-pack --strict works for non-repo pack' ' grep gitmodulesName output ' -test_expect_success 'fsck detects symlinked .gitmodules file' ' +test_expect_success 'set up repo with symlinked .gitmodules file' ' git init symlink && ( cd symlink && @@ -155,8 +155,14 @@ test_expect_success 'fsck detects symlinked .gitmodules file' ' { printf "100644 blob $content\t$tricky\n" && printf "120000 blob $target\t.gitmodules\n" - } >bad-tree && - tree=$(git mktree <bad-tree) && + } >bad-tree + ) && + tree=$(git -C symlink mktree <symlink/bad-tree) +' + +test_expect_success 'fsck detects symlinked .gitmodules file' ' + ( + cd symlink && # Check not only that we fail, but that it is due to the # symlink detector @@ -165,6 +171,13 @@ test_expect_success 'fsck detects symlinked .gitmodules file' ' ) ' +test_expect_success 'refuse to load symlinked .gitmodules into index' ' + test_must_fail git -C symlink read-tree $tree 2>err && + grep "invalid path.*gitmodules" err && + git -C symlink ls-files >out && + test_must_be_empty out +' + test_expect_success 'fsck detects non-blob .gitmodules' ' git init non-blob && ( |