Code

Merge branch 'maint-1.5.5' into maint-1.5.6
[git.git] / t / t4019-diff-wserror.sh
1 #!/bin/sh
3 test_description='diff whitespace error detection'
5 . ./test-lib.sh
7 test_expect_success setup '
9         git config diff.color.whitespace "blue reverse" &&
10         >F &&
11         git add F &&
12         echo "         Eight SP indent" >>F &&
13         echo "  HT and SP indent" >>F &&
14         echo "With trailing SP " >>F &&
15         echo "Carriage ReturnQ" | tr Q "\015" >>F &&
16         echo "No problem" >>F
18 '
20 blue_grep='7;34m' ;# ESC [ 7 ; 3 4 m
22 test_expect_success default '
24         git diff --color >output
25         grep "$blue_grep" output >error
26         grep -v "$blue_grep" output >normal
28         grep Eight normal >/dev/null &&
29         grep HT error >/dev/null &&
30         grep With error >/dev/null &&
31         grep Return error >/dev/null &&
32         grep No normal >/dev/null
34 '
36 test_expect_success 'without -trail' '
38         git config core.whitespace -trail
39         git diff --color >output
40         grep "$blue_grep" output >error
41         grep -v "$blue_grep" output >normal
43         grep Eight normal >/dev/null &&
44         grep HT error >/dev/null &&
45         grep With normal >/dev/null &&
46         grep Return normal >/dev/null &&
47         grep No normal >/dev/null
49 '
51 test_expect_success 'without -trail (attribute)' '
53         git config --unset core.whitespace
54         echo "F whitespace=-trail" >.gitattributes
55         git diff --color >output
56         grep "$blue_grep" output >error
57         grep -v "$blue_grep" output >normal
59         grep Eight normal >/dev/null &&
60         grep HT error >/dev/null &&
61         grep With normal >/dev/null &&
62         grep Return normal >/dev/null &&
63         grep No normal >/dev/null
65 '
67 test_expect_success 'without -space' '
69         rm -f .gitattributes
70         git config core.whitespace -space
71         git diff --color >output
72         grep "$blue_grep" output >error
73         grep -v "$blue_grep" output >normal
75         grep Eight normal >/dev/null &&
76         grep HT normal >/dev/null &&
77         grep With error >/dev/null &&
78         grep Return error >/dev/null &&
79         grep No normal >/dev/null
81 '
83 test_expect_success 'without -space (attribute)' '
85         git config --unset core.whitespace
86         echo "F whitespace=-space" >.gitattributes
87         git diff --color >output
88         grep "$blue_grep" output >error
89         grep -v "$blue_grep" output >normal
91         grep Eight normal >/dev/null &&
92         grep HT normal >/dev/null &&
93         grep With error >/dev/null &&
94         grep Return error >/dev/null &&
95         grep No normal >/dev/null
97 '
99 test_expect_success 'with indent-non-tab only' '
101         rm -f .gitattributes
102         git config core.whitespace indent,-trailing,-space
103         git diff --color >output
104         grep "$blue_grep" output >error
105         grep -v "$blue_grep" output >normal
107         grep Eight error >/dev/null &&
108         grep HT normal >/dev/null &&
109         grep With normal >/dev/null &&
110         grep Return normal >/dev/null &&
111         grep No normal >/dev/null
115 test_expect_success 'with indent-non-tab only (attribute)' '
117         git config --unset core.whitespace
118         echo "F whitespace=indent,-trailing,-space" >.gitattributes
119         git diff --color >output
120         grep "$blue_grep" output >error
121         grep -v "$blue_grep" output >normal
123         grep Eight error >/dev/null &&
124         grep HT normal >/dev/null &&
125         grep With normal >/dev/null &&
126         grep Return normal >/dev/null &&
127         grep No normal >/dev/null
131 test_expect_success 'with cr-at-eol' '
133         rm -f .gitattributes
134         git config core.whitespace cr-at-eol
135         git diff --color >output
136         grep "$blue_grep" output >error
137         grep -v "$blue_grep" output >normal
139         grep Eight normal >/dev/null &&
140         grep HT error >/dev/null &&
141         grep With error >/dev/null &&
142         grep Return normal >/dev/null &&
143         grep No normal >/dev/null
147 test_expect_success 'with cr-at-eol (attribute)' '
149         git config --unset core.whitespace
150         echo "F whitespace=trailing,cr-at-eol" >.gitattributes
151         git diff --color >output
152         grep "$blue_grep" output >error
153         grep -v "$blue_grep" output >normal
155         grep Eight normal >/dev/null &&
156         grep HT error >/dev/null &&
157         grep With error >/dev/null &&
158         grep Return normal >/dev/null &&
159         grep No normal >/dev/null
163 test_done