]>
Commit | Line | Data |
---|---|---|
1 | #!/bin/sh | |
2 | # | |
3 | # Copyright (c) 2006 Junio C Hamano | |
4 | # | |
5 | ||
6 | test_description='quoted output' | |
7 | ||
8 | . ./test-lib.sh | |
9 | ||
10 | FN='濱野' | |
11 | GN='純' | |
12 | HT=' ' | |
13 | DQ='"' | |
14 | ||
15 | test_have_prereq MINGW || | |
16 | echo foo 2>/dev/null > "Name and an${HT}HT" | |
17 | if ! test -f "Name and an${HT}HT" | |
18 | then | |
19 | # FAT/NTFS does not allow tabs in filenames | |
20 | skip_all='Your filesystem does not allow tabs in filenames' | |
21 | test_done | |
22 | fi | |
23 | ||
24 | for_each_name () { | |
25 | for name in \ | |
26 | Name "Name and a${LF}LF" "Name and an${HT}HT" "Name${DQ}" \ | |
27 | "$FN$HT$GN" "$FN$LF$GN" "$FN $GN" "$FN$GN" "$FN$DQ$GN" \ | |
28 | "With SP in it" "$FN/file" | |
29 | do | |
30 | eval "$1" | |
31 | done | |
32 | } | |
33 | ||
34 | test_expect_success 'setup' ' | |
35 | ||
36 | mkdir "$FN" && | |
37 | for_each_name "echo initial >\"\$name\"" && | |
38 | git add . && | |
39 | git commit -q -m Initial && | |
40 | ||
41 | for_each_name "echo second >\"\$name\"" && | |
42 | git commit -a -m Second && | |
43 | ||
44 | for_each_name "echo modified >\"\$name\"" | |
45 | ||
46 | ' | |
47 | ||
48 | test_expect_success 'setup expected files' ' | |
49 | cat >expect.quoted <<\EOF && | |
50 | Name | |
51 | "Name and a\nLF" | |
52 | "Name and an\tHT" | |
53 | "Name\"" | |
54 | With SP in it | |
55 | "\346\277\261\351\207\216\t\347\264\224" | |
56 | "\346\277\261\351\207\216\n\347\264\224" | |
57 | "\346\277\261\351\207\216 \347\264\224" | |
58 | "\346\277\261\351\207\216\"\347\264\224" | |
59 | "\346\277\261\351\207\216/file" | |
60 | "\346\277\261\351\207\216\347\264\224" | |
61 | EOF | |
62 | ||
63 | cat >expect.raw <<\EOF | |
64 | Name | |
65 | "Name and a\nLF" | |
66 | "Name and an\tHT" | |
67 | "Name\"" | |
68 | With SP in it | |
69 | "濱野\t純" | |
70 | "濱野\n純" | |
71 | 濱野 純 | |
72 | "濱野\"純" | |
73 | 濱野/file | |
74 | 濱野純 | |
75 | EOF | |
76 | ' | |
77 | ||
78 | test_expect_success 'check fully quoted output from ls-files' ' | |
79 | ||
80 | git ls-files >current && test_cmp expect.quoted current | |
81 | ||
82 | ' | |
83 | ||
84 | test_expect_success 'check fully quoted output from diff-files' ' | |
85 | ||
86 | git diff --name-only >current && | |
87 | test_cmp expect.quoted current | |
88 | ||
89 | ' | |
90 | ||
91 | test_expect_success 'check fully quoted output from diff-index' ' | |
92 | ||
93 | git diff --name-only HEAD >current && | |
94 | test_cmp expect.quoted current | |
95 | ||
96 | ' | |
97 | ||
98 | test_expect_success 'check fully quoted output from diff-tree' ' | |
99 | ||
100 | git diff --name-only HEAD^ HEAD >current && | |
101 | test_cmp expect.quoted current | |
102 | ||
103 | ' | |
104 | ||
105 | test_expect_success 'check fully quoted output from ls-tree' ' | |
106 | ||
107 | git ls-tree --name-only -r HEAD >current && | |
108 | test_cmp expect.quoted current | |
109 | ||
110 | ' | |
111 | ||
112 | test_expect_success 'setting core.quotepath' ' | |
113 | ||
114 | git config --bool core.quotepath false | |
115 | ||
116 | ' | |
117 | ||
118 | test_expect_success 'check fully quoted output from ls-files' ' | |
119 | ||
120 | git ls-files >current && test_cmp expect.raw current | |
121 | ||
122 | ' | |
123 | ||
124 | test_expect_success 'check fully quoted output from diff-files' ' | |
125 | ||
126 | git diff --name-only >current && | |
127 | test_cmp expect.raw current | |
128 | ||
129 | ' | |
130 | ||
131 | test_expect_success 'check fully quoted output from diff-index' ' | |
132 | ||
133 | git diff --name-only HEAD >current && | |
134 | test_cmp expect.raw current | |
135 | ||
136 | ' | |
137 | ||
138 | test_expect_success 'check fully quoted output from diff-tree' ' | |
139 | ||
140 | git diff --name-only HEAD^ HEAD >current && | |
141 | test_cmp expect.raw current | |
142 | ||
143 | ' | |
144 | ||
145 | test_expect_success 'check fully quoted output from ls-tree' ' | |
146 | ||
147 | git ls-tree --name-only -r HEAD >current && | |
148 | test_cmp expect.raw current | |
149 | ||
150 | ' | |
151 | ||
152 | test_done |