summaryrefslogtreecommitdiffstats
path: root/t/t2100-update-cache-badpath.sh
diff options
context:
space:
mode:
Diffstat (limited to 't/t2100-update-cache-badpath.sh')
-rwxr-xr-xt/t2100-update-cache-badpath.sh62
1 files changed, 62 insertions, 0 deletions
diff --git a/t/t2100-update-cache-badpath.sh b/t/t2100-update-cache-badpath.sh
new file mode 100755
index 0000000..7915e7b
--- /dev/null
+++ b/t/t2100-update-cache-badpath.sh
@@ -0,0 +1,62 @@
+#!/bin/sh
+#
+# Copyright (c) 2005 Junio C Hamano
+#
+
+test_description='git update-index nonsense-path test.
+
+This test creates the following structure in the cache:
+
+ path0 - a file
+ path1 - a symlink
+ path2/file2 - a file in a directory
+ path3/file3 - a file in a directory
+
+and tries to git update-index --add the following:
+
+ path0/file0 - a file in a directory
+ path1/file1 - a file in a directory
+ path2 - a file
+ path3 - a symlink
+
+All of the attempts should fail.
+'
+
+TEST_PASSES_SANITIZE_LEAK=true
+. ./test-lib.sh
+
+mkdir path2 path3
+date >path0
+if test_have_prereq SYMLINKS
+then
+ ln -s xyzzy path1
+else
+ date > path1
+fi
+date >path2/file2
+date >path3/file3
+
+test_expect_success \
+ 'git update-index --add to add various paths.' \
+ 'git update-index --add -- path0 path1 path2/file2 path3/file3'
+
+rm -fr path?
+
+mkdir path0 path1
+date >path2
+if test_have_prereq SYMLINKS
+then
+ ln -s frotz path3
+else
+ date > path3
+fi
+date >path0/file0
+date >path1/file1
+
+for p in path0/file0 path1/file1 path2 path3
+do
+ test_expect_success \
+ "git update-index to add conflicting path $p should fail." \
+ "test_must_fail git update-index --add -- $p"
+done
+test_done