]> git.ipfire.org Git - thirdparty/git.git/blobdiff - t/t1014-read-tree-confusing.sh
read-tree: add tests for confusing paths like ".." and ".git"
[thirdparty/git.git] / t / t1014-read-tree-confusing.sh
diff --git a/t/t1014-read-tree-confusing.sh b/t/t1014-read-tree-confusing.sh
new file mode 100755 (executable)
index 0000000..7b31d53
--- /dev/null
@@ -0,0 +1,32 @@
+#!/bin/sh
+
+test_description='check that read-tree rejects confusing paths'
+. ./test-lib.sh
+
+test_expect_success 'create base tree' '
+       echo content >file &&
+       git add file &&
+       git commit -m base &&
+       blob=$(git rev-parse HEAD:file) &&
+       tree=$(git rev-parse HEAD^{tree})
+'
+
+while read path; do
+       test_expect_success "reject $path 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" '
+               printf "040000 tree %s\t%s" "$tree" "$path" >tree &&
+               bogus=$(git mktree <tree) &&
+               test_must_fail git read-tree $bogus
+       '
+done <<-\EOF
+.
+..
+.git
+EOF
+
+test_done