]> git.ipfire.org Git - thirdparty/git.git/blame - t/t7010-setup.sh
setup: sanitize absolute and funny paths in get_pathspec()
[thirdparty/git.git] / t / t7010-setup.sh
CommitLineData
d089ebaa
JH
1#!/bin/sh
2
3test_description='setup taking and sanitizing funny paths'
4
5. ./test-lib.sh
6
7test_expect_success setup '
8
9 mkdir -p a/b/c a/e &&
10 D=$(pwd) &&
11 >a/b/c/d &&
12 >a/e/f
13
14'
15
16test_expect_success 'git add (absolute)' '
17
18 git add "$D/a/b/c/d" &&
19 git ls-files >current &&
20 echo a/b/c/d >expect &&
21 diff -u expect current
22
23'
24
25
26test_expect_success 'git add (funny relative)' '
27
28 rm -f .git/index &&
29 (
30 cd a/b &&
31 git add "../e/./f"
32 ) &&
33 git ls-files >current &&
34 echo a/e/f >expect &&
35 diff -u expect current
36
37'
38
39test_expect_success 'git rm (absolute)' '
40
41 rm -f .git/index &&
42 git add a &&
43 git rm -f --cached "$D/a/b/c/d" &&
44 git ls-files >current &&
45 echo a/e/f >expect &&
46 diff -u expect current
47
48'
49
50test_expect_success 'git rm (funny relative)' '
51
52 rm -f .git/index &&
53 git add a &&
54 (
55 cd a/b &&
56 git rm -f --cached "../e/./f"
57 ) &&
58 git ls-files >current &&
59 echo a/b/c/d >expect &&
60 diff -u expect current
61
62'
63
64test_expect_success 'git ls-files (absolute)' '
65
66 rm -f .git/index &&
67 git add a &&
68 git ls-files "$D/a/e/../b" >current &&
69 echo a/b/c/d >expect &&
70 diff -u expect current
71
72'
73
74test_expect_success 'git ls-files (relative #1)' '
75
76 rm -f .git/index &&
77 git add a &&
78 (
79 cd a/b &&
80 git ls-files "../b/c"
81 ) >current &&
82 echo c/d >expect &&
83 diff -u expect current
84
85'
86
87test_expect_success 'git ls-files (relative #2)' '
88
89 rm -f .git/index &&
90 git add a &&
91 (
92 cd a/b &&
93 git ls-files --full-name "../e/f"
94 ) >current &&
95 echo a/e/f >expect &&
96 diff -u expect current
97
98'
99
100test_expect_success 'git ls-files (relative #3)' '
101
102 rm -f .git/index &&
103 git add a &&
104 (
105 cd a/b &&
106 if git ls-files "../e/f"
107 then
108 echo Gaah, should have failed
109 exit 1
110 else
111 : happy
112 fi
113 )
114
115'
116
117test_done