]>
Commit | Line | Data |
---|---|---|
4d2060ef JH |
1 | #!/bin/sh |
2 | # | |
3 | # Copyright (c) 2005 Junio C Hamano | |
4 | # | |
5 | ||
6 | test_description='Pathnames with funny characters. | |
7 | ||
8 | This test tries pathnames with funny characters in the working | |
9 | tree, index, and tree objects. | |
10 | ' | |
11 | ||
12 | . ./test-lib.sh | |
13 | ||
14 | p0='no-funny' | |
15 | p1='tabs and spaces' | |
16 | ||
17 | cat >"$p0" <<\EOF | |
18 | 1. A quick brown fox jumps over the lazy cat, oops dog. | |
19 | 2. A quick brown fox jumps over the lazy cat, oops dog. | |
20 | 3. A quick brown fox jumps over the lazy cat, oops dog. | |
21 | EOF | |
22 | ||
23 | cat >"$p1" "$p0" | |
24 | ||
25 | echo 'no-funny' >expected | |
26 | test_expect_success 'git-ls-files no-funny' \ | |
27 | 'git-update-index --add "$p0" && | |
28 | git-ls-files >current && | |
29 | diff -u expected current' | |
30 | ||
31 | t0=`git-write-tree` | |
32 | echo "$t0" >t0 | |
33 | ||
34 | echo 'no-funny | |
35 | "tabs\tand spaces"' >expected | |
36 | test_expect_success 'git-ls-files with-funny' \ | |
37 | 'git-update-index --add "$p1" && | |
38 | git-ls-files >current && | |
39 | diff -u expected current' | |
40 | ||
41 | echo 'no-funny | |
42 | tabs and spaces' >expected | |
43 | test_expect_success 'git-ls-files -z with-funny' \ | |
44 | 'git-ls-files -z | tr \\0 \\012 >current && | |
45 | diff -u expected current' | |
46 | ||
47 | t1=`git-write-tree` | |
48 | echo "$t1" >t1 | |
49 | ||
50 | echo 'no-funny | |
51 | "tabs\tand spaces"' >expected | |
52 | test_expect_success 'git-ls-tree with funny' \ | |
53 | 'git-ls-tree -r $t1 | sed -e "s/^[^ ]* //" >current && | |
54 | diff -u expected current' | |
55 | ||
56 | echo 'A "tabs\tand spaces"' >expected | |
57 | test_expect_success 'git-diff-index with-funny' \ | |
58 | 'git-diff-index --name-status $t0 >current && | |
59 | diff -u expected current' | |
60 | ||
61 | test_expect_success 'git-diff-tree with-funny' \ | |
62 | 'git-diff-tree --name-status $t0 $t1 >current && | |
63 | diff -u expected current' | |
64 | ||
65 | echo 'A | |
66 | tabs and spaces' >expected | |
67 | test_expect_success 'git-diff-index -z with-funny' \ | |
68 | 'git-diff-index -z --name-status $t0 | tr \\0 \\012 >current && | |
69 | diff -u expected current' | |
70 | ||
71 | test_expect_success 'git-diff-tree -z with-funny' \ | |
72 | 'git-diff-tree -z --name-status $t0 $t1 | tr \\0 \\012 >current && | |
73 | diff -u expected current' | |
74 | ||
75 | echo 'CNUM no-funny "tabs\tand spaces"' >expected | |
76 | test_expect_success 'git-diff-tree -C with-funny' \ | |
77 | 'git-diff-tree -C --find-copies-harder --name-status \ | |
78 | $t0 $t1 | sed -e 's/^C[0-9]*/CNUM/' >current && | |
79 | diff -u expected current' | |
80 | ||
81 | echo 'RNUM no-funny "tabs\tand spaces"' >expected | |
82 | test_expect_success 'git-diff-tree delete with-funny' \ | |
83 | 'git-update-index --force-remove "$p0" && | |
84 | git-diff-index -M --name-status \ | |
85 | $t0 | sed -e 's/^R[0-9]*/RNUM/' >current && | |
86 | diff -u expected current' | |
87 | ||
88 | echo 'diff --git a/no-funny "b/tabs\tand spaces" | |
89 | similarity index NUM% | |
90 | rename from no-funny | |
91 | rename to "tabs\tand spaces"' >expected | |
92 | ||
93 | test_expect_success 'git-diff-tree delete with-funny' \ | |
94 | 'git-diff-index -M -p $t0 | | |
95 | sed -e "s/index [0-9]*%/index NUM%/" >current && | |
96 | diff -u expected current' | |
97 | ||
98 | chmod +x "$p1" | |
99 | echo 'diff --git a/no-funny "b/tabs\tand spaces" | |
100 | old mode 100644 | |
101 | new mode 100755 | |
102 | similarity index NUM% | |
103 | rename from no-funny | |
104 | rename to "tabs\tand spaces"' >expected | |
105 | ||
106 | test_expect_success 'git-diff-tree delete with-funny' \ | |
107 | 'git-diff-index -M -p $t0 | | |
108 | sed -e "s/index [0-9]*%/index NUM%/" >current && | |
109 | diff -u expected current' | |
110 | ||
111 | echo >expected ' "tabs\tand spaces" | |
112 | 1 files changed, 0 insertions(+), 0 deletions(-)' | |
113 | test_expect_success 'git-diff-tree rename with-funny applied' \ | |
114 | 'git-diff-index -M -p $t0 | | |
115 | git-apply --stat | sed -e "s/|.*//" -e "s/ *\$//" >current && | |
116 | diff -u expected current' | |
117 | ||
118 | echo >expected ' no-funny | |
119 | "tabs\tand spaces" | |
120 | 2 files changed, 3 insertions(+), 3 deletions(-)' | |
121 | ||
122 | test_expect_success 'git-diff-tree delete with-funny applied' \ | |
123 | 'git-diff-index -p $t0 | | |
124 | git-apply --stat | sed -e "s/|.*//" -e "s/ *\$//" >current && | |
125 | diff -u expected current' | |
126 | ||
127 | test_expect_success 'git-apply non-git diff' \ | |
128 | 'git-diff-index -p $t0 | | |
129 | sed -ne "/^[-+@]/p" | | |
130 | git-apply --stat | sed -e "s/|.*//" -e "s/ *\$//" >current && | |
131 | diff -u expected current' | |
132 | ||
133 | test_done |