summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xt/t7450-bad-git-dotfiles.sh19
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 &&
(