Johannes Schindelin | 2e5d200 | 2009-01-17 17:29:44 +0100 | [diff] [blame] | 1 | #!/bin/sh |
| 2 | |
| 3 | test_description='word diff colors' |
| 4 | |
| 5 | . ./test-lib.sh |
Johannes Sixt | 62d3935 | 2012-03-14 20:50:21 +0100 | [diff] [blame] | 6 | . "$TEST_DIRECTORY"/diff-lib.sh |
Johannes Schindelin | 2e5d200 | 2009-01-17 17:29:44 +0100 | [diff] [blame] | 7 | |
Jonathan Nieder | 5094d15 | 2011-01-11 15:49:57 -0600 | [diff] [blame] | 8 | cat >pre.simple <<-\EOF |
| 9 | h(4) |
Johannes Schindelin | 2e5d200 | 2009-01-17 17:29:44 +0100 | [diff] [blame] | 10 | |
Jonathan Nieder | 5094d15 | 2011-01-11 15:49:57 -0600 | [diff] [blame] | 11 | a = b + c |
| 12 | EOF |
| 13 | cat >post.simple <<-\EOF |
| 14 | h(4),hh[44] |
Johannes Schindelin | 2e5d200 | 2009-01-17 17:29:44 +0100 | [diff] [blame] | 15 | |
Jonathan Nieder | 5094d15 | 2011-01-11 15:49:57 -0600 | [diff] [blame] | 16 | a = b + c |
| 17 | |
| 18 | aa = a |
| 19 | |
| 20 | aeff = aeff * ( aaa ) |
| 21 | EOF |
| 22 | cat >expect.letter-runs-are-words <<-\EOF |
| 23 | <BOLD>diff --git a/pre b/post<RESET> |
| 24 | <BOLD>index 330b04f..5ed8eff 100644<RESET> |
| 25 | <BOLD>--- a/pre<RESET> |
| 26 | <BOLD>+++ b/post<RESET> |
| 27 | <CYAN>@@ -1,3 +1,7 @@<RESET> |
| 28 | h(4),<GREEN>hh<RESET>[44] |
| 29 | |
| 30 | a = b + c<RESET> |
| 31 | |
| 32 | <GREEN>aa = a<RESET> |
| 33 | |
| 34 | <GREEN>aeff = aeff * ( aaa<RESET> ) |
| 35 | EOF |
| 36 | cat >expect.non-whitespace-is-word <<-\EOF |
| 37 | <BOLD>diff --git a/pre b/post<RESET> |
| 38 | <BOLD>index 330b04f..5ed8eff 100644<RESET> |
| 39 | <BOLD>--- a/pre<RESET> |
| 40 | <BOLD>+++ b/post<RESET> |
| 41 | <CYAN>@@ -1,3 +1,7 @@<RESET> |
| 42 | h(4)<GREEN>,hh[44]<RESET> |
| 43 | |
| 44 | a = b + c<RESET> |
| 45 | |
| 46 | <GREEN>aa = a<RESET> |
| 47 | |
| 48 | <GREEN>aeff = aeff * ( aaa )<RESET> |
| 49 | EOF |
Johannes Schindelin | 2e5d200 | 2009-01-17 17:29:44 +0100 | [diff] [blame] | 50 | |
Johannes Schindelin | 2e5d200 | 2009-01-17 17:29:44 +0100 | [diff] [blame] | 51 | word_diff () { |
Jonathan Nieder | 5094d15 | 2011-01-11 15:49:57 -0600 | [diff] [blame] | 52 | test_must_fail git diff --no-index "$@" pre post >output && |
Michael J Gruber | 68cfc6f | 2009-12-08 11:12:02 +0100 | [diff] [blame] | 53 | test_decode_color <output >output.decrypted && |
Johannes Schindelin | 2e5d200 | 2009-01-17 17:29:44 +0100 | [diff] [blame] | 54 | test_cmp expect output.decrypted |
| 55 | } |
| 56 | |
Jonathan Nieder | 5094d15 | 2011-01-11 15:49:57 -0600 | [diff] [blame] | 57 | test_language_driver () { |
| 58 | lang=$1 |
| 59 | test_expect_success "diff driver '$lang'" ' |
| 60 | cp "$TEST_DIRECTORY/t4034/'"$lang"'/pre" \ |
| 61 | "$TEST_DIRECTORY/t4034/'"$lang"'/post" \ |
| 62 | "$TEST_DIRECTORY/t4034/'"$lang"'/expect" . && |
| 63 | echo "* diff='"$lang"'" >.gitattributes && |
| 64 | word_diff --color-words |
| 65 | ' |
| 66 | } |
Johannes Schindelin | 2e5d200 | 2009-01-17 17:29:44 +0100 | [diff] [blame] | 67 | |
Jonathan Nieder | 5094d15 | 2011-01-11 15:49:57 -0600 | [diff] [blame] | 68 | test_expect_success setup ' |
| 69 | git config diff.color.old red && |
| 70 | git config diff.color.new green && |
| 71 | git config diff.color.func magenta |
| 72 | ' |
Johannes Schindelin | 2e5d200 | 2009-01-17 17:29:44 +0100 | [diff] [blame] | 73 | |
Jonathan Nieder | 5094d15 | 2011-01-11 15:49:57 -0600 | [diff] [blame] | 74 | test_expect_success 'set up pre and post with runs of whitespace' ' |
| 75 | cp pre.simple pre && |
| 76 | cp post.simple post |
| 77 | ' |
Johannes Schindelin | 2e5d200 | 2009-01-17 17:29:44 +0100 | [diff] [blame] | 78 | |
| 79 | test_expect_success 'word diff with runs of whitespace' ' |
Jonathan Nieder | 5094d15 | 2011-01-11 15:49:57 -0600 | [diff] [blame] | 80 | cat >expect <<-\EOF && |
| 81 | <BOLD>diff --git a/pre b/post<RESET> |
| 82 | <BOLD>index 330b04f..5ed8eff 100644<RESET> |
| 83 | <BOLD>--- a/pre<RESET> |
| 84 | <BOLD>+++ b/post<RESET> |
| 85 | <CYAN>@@ -1,3 +1,7 @@<RESET> |
| 86 | <RED>h(4)<RESET><GREEN>h(4),hh[44]<RESET> |
Johannes Schindelin | 2e5d200 | 2009-01-17 17:29:44 +0100 | [diff] [blame] | 87 | |
Jonathan Nieder | 5094d15 | 2011-01-11 15:49:57 -0600 | [diff] [blame] | 88 | a = b + c<RESET> |
Johannes Schindelin | 2e5d200 | 2009-01-17 17:29:44 +0100 | [diff] [blame] | 89 | |
Jonathan Nieder | 5094d15 | 2011-01-11 15:49:57 -0600 | [diff] [blame] | 90 | <GREEN>aa = a<RESET> |
Johannes Schindelin | 2e5d200 | 2009-01-17 17:29:44 +0100 | [diff] [blame] | 91 | |
Jonathan Nieder | 5094d15 | 2011-01-11 15:49:57 -0600 | [diff] [blame] | 92 | <GREEN>aeff = aeff * ( aaa )<RESET> |
| 93 | EOF |
| 94 | word_diff --color-words && |
| 95 | word_diff --word-diff=color && |
Thomas Rast | 882749a | 2010-04-14 17:59:06 +0200 | [diff] [blame] | 96 | word_diff --color --word-diff=color |
Thomas Rast | 882749a | 2010-04-14 17:59:06 +0200 | [diff] [blame] | 97 | ' |
| 98 | |
Thomas Rast | 882749a | 2010-04-14 17:59:06 +0200 | [diff] [blame] | 99 | test_expect_success '--word-diff=porcelain' ' |
Jonathan Nieder | 5094d15 | 2011-01-11 15:49:57 -0600 | [diff] [blame] | 100 | sed 's/#.*$//' >expect <<-\EOF && |
| 101 | diff --git a/pre b/post |
| 102 | index 330b04f..5ed8eff 100644 |
| 103 | --- a/pre |
| 104 | +++ b/post |
| 105 | @@ -1,3 +1,7 @@ |
| 106 | -h(4) |
| 107 | +h(4),hh[44] |
| 108 | ~ |
| 109 | # significant space |
| 110 | ~ |
| 111 | a = b + c |
| 112 | ~ |
| 113 | ~ |
| 114 | +aa = a |
| 115 | ~ |
| 116 | ~ |
| 117 | +aeff = aeff * ( aaa ) |
| 118 | ~ |
| 119 | EOF |
Thomas Rast | 882749a | 2010-04-14 17:59:06 +0200 | [diff] [blame] | 120 | word_diff --word-diff=porcelain |
Thomas Rast | 882749a | 2010-04-14 17:59:06 +0200 | [diff] [blame] | 121 | ' |
| 122 | |
Thomas Rast | 882749a | 2010-04-14 17:59:06 +0200 | [diff] [blame] | 123 | test_expect_success '--word-diff=plain' ' |
Jonathan Nieder | 5094d15 | 2011-01-11 15:49:57 -0600 | [diff] [blame] | 124 | cat >expect <<-\EOF && |
| 125 | diff --git a/pre b/post |
| 126 | index 330b04f..5ed8eff 100644 |
| 127 | --- a/pre |
| 128 | +++ b/post |
| 129 | @@ -1,3 +1,7 @@ |
| 130 | [-h(4)-]{+h(4),hh[44]+} |
Thomas Rast | 882749a | 2010-04-14 17:59:06 +0200 | [diff] [blame] | 131 | |
Jonathan Nieder | 5094d15 | 2011-01-11 15:49:57 -0600 | [diff] [blame] | 132 | a = b + c |
Thomas Rast | 882749a | 2010-04-14 17:59:06 +0200 | [diff] [blame] | 133 | |
Jonathan Nieder | 5094d15 | 2011-01-11 15:49:57 -0600 | [diff] [blame] | 134 | {+aa = a+} |
Thomas Rast | 882749a | 2010-04-14 17:59:06 +0200 | [diff] [blame] | 135 | |
Jonathan Nieder | 5094d15 | 2011-01-11 15:49:57 -0600 | [diff] [blame] | 136 | {+aeff = aeff * ( aaa )+} |
| 137 | EOF |
| 138 | word_diff --word-diff=plain && |
Thomas Rast | 882749a | 2010-04-14 17:59:06 +0200 | [diff] [blame] | 139 | word_diff --word-diff=plain --no-color |
Thomas Rast | 882749a | 2010-04-14 17:59:06 +0200 | [diff] [blame] | 140 | ' |
| 141 | |
Thomas Rast | 882749a | 2010-04-14 17:59:06 +0200 | [diff] [blame] | 142 | test_expect_success '--word-diff=plain --color' ' |
Jonathan Nieder | 5094d15 | 2011-01-11 15:49:57 -0600 | [diff] [blame] | 143 | cat >expect <<-\EOF && |
| 144 | <BOLD>diff --git a/pre b/post<RESET> |
| 145 | <BOLD>index 330b04f..5ed8eff 100644<RESET> |
| 146 | <BOLD>--- a/pre<RESET> |
| 147 | <BOLD>+++ b/post<RESET> |
| 148 | <CYAN>@@ -1,3 +1,7 @@<RESET> |
| 149 | <RED>[-h(4)-]<RESET><GREEN>{+h(4),hh[44]+}<RESET> |
Thomas Rast | 882749a | 2010-04-14 17:59:06 +0200 | [diff] [blame] | 150 | |
Jonathan Nieder | 5094d15 | 2011-01-11 15:49:57 -0600 | [diff] [blame] | 151 | a = b + c<RESET> |
| 152 | |
| 153 | <GREEN>{+aa = a+}<RESET> |
| 154 | |
| 155 | <GREEN>{+aeff = aeff * ( aaa )+}<RESET> |
| 156 | EOF |
Thomas Rast | 882749a | 2010-04-14 17:59:06 +0200 | [diff] [blame] | 157 | word_diff --word-diff=plain --color |
Thomas Rast | 882749a | 2010-04-14 17:59:06 +0200 | [diff] [blame] | 158 | ' |
| 159 | |
Johannes Schindelin | a4ca146 | 2009-10-29 11:45:03 +0100 | [diff] [blame] | 160 | test_expect_success 'word diff without context' ' |
Jonathan Nieder | 5094d15 | 2011-01-11 15:49:57 -0600 | [diff] [blame] | 161 | cat >expect <<-\EOF && |
| 162 | <BOLD>diff --git a/pre b/post<RESET> |
| 163 | <BOLD>index 330b04f..5ed8eff 100644<RESET> |
| 164 | <BOLD>--- a/pre<RESET> |
| 165 | <BOLD>+++ b/post<RESET> |
| 166 | <CYAN>@@ -1 +1 @@<RESET> |
| 167 | <RED>h(4)<RESET><GREEN>h(4),hh[44]<RESET> |
| 168 | <CYAN>@@ -3,0 +4,4 @@<RESET> <RESET><MAGENTA>a = b + c<RESET> |
Markus Heidelberg | 168eff3 | 2009-10-28 13:24:30 +0100 | [diff] [blame] | 169 | |
Jonathan Nieder | 5094d15 | 2011-01-11 15:49:57 -0600 | [diff] [blame] | 170 | <GREEN>aa = a<RESET> |
| 171 | |
| 172 | <GREEN>aeff = aeff * ( aaa )<RESET> |
| 173 | EOF |
Markus Heidelberg | 168eff3 | 2009-10-28 13:24:30 +0100 | [diff] [blame] | 174 | word_diff --color-words --unified=0 |
Markus Heidelberg | 168eff3 | 2009-10-28 13:24:30 +0100 | [diff] [blame] | 175 | ' |
| 176 | |
Johannes Schindelin | 2b6a541 | 2009-01-17 17:29:45 +0100 | [diff] [blame] | 177 | test_expect_success 'word diff with a regular expression' ' |
Jonathan Nieder | 5094d15 | 2011-01-11 15:49:57 -0600 | [diff] [blame] | 178 | cp expect.letter-runs-are-words expect && |
Johannes Schindelin | 2b6a541 | 2009-01-17 17:29:45 +0100 | [diff] [blame] | 179 | word_diff --color-words="[a-z]+" |
Johannes Schindelin | 2b6a541 | 2009-01-17 17:29:45 +0100 | [diff] [blame] | 180 | ' |
| 181 | |
Jonathan Nieder | 5094d15 | 2011-01-11 15:49:57 -0600 | [diff] [blame] | 182 | test_expect_success 'set up a diff driver' ' |
Boyd Stephen Smith Jr | ae3b970 | 2009-01-20 22:59:54 -0600 | [diff] [blame] | 183 | git config diff.testdriver.wordRegex "[^[:space:]]" && |
Jonathan Nieder | 5094d15 | 2011-01-11 15:49:57 -0600 | [diff] [blame] | 184 | cat <<-\EOF >.gitattributes |
| 185 | pre diff=testdriver |
| 186 | post diff=testdriver |
| 187 | EOF |
Thomas Rast | 80c49c3 | 2009-01-17 17:29:48 +0100 | [diff] [blame] | 188 | ' |
| 189 | |
Boyd Stephen Smith Jr | 98a4d87 | 2009-01-20 21:46:57 -0600 | [diff] [blame] | 190 | test_expect_success 'option overrides .gitattributes' ' |
Jonathan Nieder | 5094d15 | 2011-01-11 15:49:57 -0600 | [diff] [blame] | 191 | cp expect.letter-runs-are-words expect && |
Thomas Rast | 80c49c3 | 2009-01-17 17:29:48 +0100 | [diff] [blame] | 192 | word_diff --color-words="[a-z]+" |
Thomas Rast | 80c49c3 | 2009-01-17 17:29:48 +0100 | [diff] [blame] | 193 | ' |
| 194 | |
Boyd Stephen Smith Jr | 98a4d87 | 2009-01-20 21:46:57 -0600 | [diff] [blame] | 195 | test_expect_success 'use regex supplied by driver' ' |
Jonathan Nieder | 5094d15 | 2011-01-11 15:49:57 -0600 | [diff] [blame] | 196 | cp expect.non-whitespace-is-word expect && |
Thomas Rast | 80c49c3 | 2009-01-17 17:29:48 +0100 | [diff] [blame] | 197 | word_diff --color-words |
Thomas Rast | 80c49c3 | 2009-01-17 17:29:48 +0100 | [diff] [blame] | 198 | ' |
| 199 | |
Jonathan Nieder | 5094d15 | 2011-01-11 15:49:57 -0600 | [diff] [blame] | 200 | test_expect_success 'set up diff.wordRegex option' ' |
Boyd Stephen Smith Jr | ae3b970 | 2009-01-20 22:59:54 -0600 | [diff] [blame] | 201 | git config diff.wordRegex "[[:alnum:]]+" |
Boyd Stephen Smith Jr | 98a4d87 | 2009-01-20 21:46:57 -0600 | [diff] [blame] | 202 | ' |
| 203 | |
Boyd Stephen Smith Jr | 98a4d87 | 2009-01-20 21:46:57 -0600 | [diff] [blame] | 204 | test_expect_success 'command-line overrides config' ' |
Jonathan Nieder | 5094d15 | 2011-01-11 15:49:57 -0600 | [diff] [blame] | 205 | cp expect.letter-runs-are-words expect && |
Boyd Stephen Smith Jr | 98a4d87 | 2009-01-20 21:46:57 -0600 | [diff] [blame] | 206 | word_diff --color-words="[a-z]+" |
| 207 | ' |
| 208 | |
Thomas Rast | 882749a | 2010-04-14 17:59:06 +0200 | [diff] [blame] | 209 | test_expect_success 'command-line overrides config: --word-diff-regex' ' |
Jonathan Nieder | 5094d15 | 2011-01-11 15:49:57 -0600 | [diff] [blame] | 210 | cat >expect <<-\EOF && |
| 211 | <BOLD>diff --git a/pre b/post<RESET> |
| 212 | <BOLD>index 330b04f..5ed8eff 100644<RESET> |
| 213 | <BOLD>--- a/pre<RESET> |
| 214 | <BOLD>+++ b/post<RESET> |
| 215 | <CYAN>@@ -1,3 +1,7 @@<RESET> |
| 216 | h(4),<GREEN>{+hh+}<RESET>[44] |
| 217 | |
| 218 | a = b + c<RESET> |
| 219 | |
| 220 | <GREEN>{+aa = a+}<RESET> |
| 221 | |
| 222 | <GREEN>{+aeff = aeff * ( aaa+}<RESET> ) |
| 223 | EOF |
Thomas Rast | 882749a | 2010-04-14 17:59:06 +0200 | [diff] [blame] | 224 | word_diff --color --word-diff-regex="[a-z]+" |
| 225 | ' |
| 226 | |
Boyd Stephen Smith Jr | 98a4d87 | 2009-01-20 21:46:57 -0600 | [diff] [blame] | 227 | test_expect_success '.gitattributes override config' ' |
Jonathan Nieder | 5094d15 | 2011-01-11 15:49:57 -0600 | [diff] [blame] | 228 | cp expect.non-whitespace-is-word expect && |
Boyd Stephen Smith Jr | 98a4d87 | 2009-01-20 21:46:57 -0600 | [diff] [blame] | 229 | word_diff --color-words |
| 230 | ' |
| 231 | |
Jonathan Nieder | 5094d15 | 2011-01-11 15:49:57 -0600 | [diff] [blame] | 232 | test_expect_success 'setup: remove diff driver regex' ' |
Yann Droneaud | ff73aa4 | 2013-03-24 22:06:05 +0100 | [diff] [blame] | 233 | test_unconfig diff.testdriver.wordRegex |
Boyd Stephen Smith Jr | 98a4d87 | 2009-01-20 21:46:57 -0600 | [diff] [blame] | 234 | ' |
| 235 | |
Boyd Stephen Smith Jr | 98a4d87 | 2009-01-20 21:46:57 -0600 | [diff] [blame] | 236 | test_expect_success 'use configured regex' ' |
Jonathan Nieder | 5094d15 | 2011-01-11 15:49:57 -0600 | [diff] [blame] | 237 | cat >expect <<-\EOF && |
| 238 | <BOLD>diff --git a/pre b/post<RESET> |
| 239 | <BOLD>index 330b04f..5ed8eff 100644<RESET> |
| 240 | <BOLD>--- a/pre<RESET> |
| 241 | <BOLD>+++ b/post<RESET> |
| 242 | <CYAN>@@ -1,3 +1,7 @@<RESET> |
| 243 | h(4),<GREEN>hh[44<RESET>] |
| 244 | |
| 245 | a = b + c<RESET> |
| 246 | |
| 247 | <GREEN>aa = a<RESET> |
| 248 | |
| 249 | <GREEN>aeff = aeff * ( aaa<RESET> ) |
| 250 | EOF |
Boyd Stephen Smith Jr | 98a4d87 | 2009-01-20 21:46:57 -0600 | [diff] [blame] | 251 | word_diff --color-words |
| 252 | ' |
| 253 | |
Johannes Schindelin | 2b6a541 | 2009-01-17 17:29:45 +0100 | [diff] [blame] | 254 | test_expect_success 'test parsing words for newline' ' |
Jonathan Nieder | 5094d15 | 2011-01-11 15:49:57 -0600 | [diff] [blame] | 255 | echo "aaa (aaa)" >pre && |
| 256 | echo "aaa (aaa) aaa" >post && |
| 257 | cat >expect <<-\EOF && |
| 258 | <BOLD>diff --git a/pre b/post<RESET> |
| 259 | <BOLD>index c29453b..be22f37 100644<RESET> |
| 260 | <BOLD>--- a/pre<RESET> |
| 261 | <BOLD>+++ b/post<RESET> |
| 262 | <CYAN>@@ -1 +1 @@<RESET> |
| 263 | aaa (aaa) <GREEN>aaa<RESET> |
| 264 | EOF |
Johannes Schindelin | 2b6a541 | 2009-01-17 17:29:45 +0100 | [diff] [blame] | 265 | word_diff --color-words="a+" |
Johannes Schindelin | 2b6a541 | 2009-01-17 17:29:45 +0100 | [diff] [blame] | 266 | ' |
| 267 | |
Johannes Schindelin | 2b6a541 | 2009-01-17 17:29:45 +0100 | [diff] [blame] | 268 | test_expect_success 'test when words are only removed at the end' ' |
Jonathan Nieder | 5094d15 | 2011-01-11 15:49:57 -0600 | [diff] [blame] | 269 | echo "(:" >pre && |
| 270 | echo "(" >post && |
| 271 | cat >expect <<-\EOF && |
| 272 | <BOLD>diff --git a/pre b/post<RESET> |
| 273 | <BOLD>index 289cb9d..2d06f37 100644<RESET> |
| 274 | <BOLD>--- a/pre<RESET> |
| 275 | <BOLD>+++ b/post<RESET> |
| 276 | <CYAN>@@ -1 +1 @@<RESET> |
| 277 | (<RED>:<RESET> |
| 278 | EOF |
Johannes Schindelin | 2b6a541 | 2009-01-17 17:29:45 +0100 | [diff] [blame] | 279 | word_diff --color-words=. |
Johannes Schindelin | 2b6a541 | 2009-01-17 17:29:45 +0100 | [diff] [blame] | 280 | ' |
| 281 | |
Thomas Rast | 882749a | 2010-04-14 17:59:06 +0200 | [diff] [blame] | 282 | test_expect_success '--word-diff=none' ' |
Jonathan Nieder | 5094d15 | 2011-01-11 15:49:57 -0600 | [diff] [blame] | 283 | echo "(:" >pre && |
| 284 | echo "(" >post && |
| 285 | cat >expect <<-\EOF && |
| 286 | diff --git a/pre b/post |
| 287 | index 289cb9d..2d06f37 100644 |
| 288 | --- a/pre |
| 289 | +++ b/post |
| 290 | @@ -1 +1 @@ |
| 291 | -(: |
| 292 | +( |
| 293 | EOF |
Thomas Rast | 882749a | 2010-04-14 17:59:06 +0200 | [diff] [blame] | 294 | word_diff --word-diff=plain --word-diff=none |
Thomas Rast | 882749a | 2010-04-14 17:59:06 +0200 | [diff] [blame] | 295 | ' |
| 296 | |
Johannes Sixt | 62d3935 | 2012-03-14 20:50:21 +0100 | [diff] [blame] | 297 | test_expect_success 'unset default driver' ' |
| 298 | test_unconfig diff.wordregex |
| 299 | ' |
| 300 | |
Adrian Johnson | e90d065 | 2012-09-16 13:24:15 +0930 | [diff] [blame] | 301 | test_language_driver ada |
Jonathan Nieder | 5094d15 | 2011-01-11 15:49:57 -0600 | [diff] [blame] | 302 | test_language_driver bibtex |
| 303 | test_language_driver cpp |
| 304 | test_language_driver csharp |
William Duclot | 0719f3e | 2016-06-03 14:32:26 +0200 | [diff] [blame] | 305 | test_language_driver css |
Jonathan Nieder | 5094d15 | 2011-01-11 15:49:57 -0600 | [diff] [blame] | 306 | test_language_driver fortran |
| 307 | test_language_driver html |
| 308 | test_language_driver java |
Gustaf Hendeby | 53b10a1 | 2011-11-15 21:15:03 +0100 | [diff] [blame] | 309 | test_language_driver matlab |
Jonathan Nieder | 5094d15 | 2011-01-11 15:49:57 -0600 | [diff] [blame] | 310 | test_language_driver objc |
| 311 | test_language_driver pascal |
Junio C Hamano | 5269edf | 2011-01-18 09:43:43 -0800 | [diff] [blame] | 312 | test_language_driver perl |
Jonathan Nieder | 5094d15 | 2011-01-11 15:49:57 -0600 | [diff] [blame] | 313 | test_language_driver php |
| 314 | test_language_driver python |
| 315 | test_language_driver ruby |
| 316 | test_language_driver tex |
Thomas Rast | 8d96e72 | 2010-12-18 17:17:54 +0100 | [diff] [blame] | 317 | |
Jim Meyering | 42536dd | 2011-05-20 19:20:12 +0200 | [diff] [blame] | 318 | test_expect_success 'word-diff with diff.sbe' ' |
| 319 | cat >expect <<-\EOF && |
| 320 | diff --git a/pre b/post |
| 321 | index a1a53b5..bc8fe6d 100644 |
| 322 | --- a/pre |
| 323 | +++ b/post |
| 324 | @@ -1,3 +1,3 @@ |
| 325 | a |
| 326 | |
| 327 | [-b-]{+c+} |
| 328 | EOF |
| 329 | cat >pre <<-\EOF && |
| 330 | a |
| 331 | |
| 332 | b |
| 333 | EOF |
| 334 | cat >post <<-\EOF && |
| 335 | a |
| 336 | |
| 337 | c |
| 338 | EOF |
Yann Droneaud | ff73aa4 | 2013-03-24 22:06:05 +0100 | [diff] [blame] | 339 | test_config diff.suppress-blank-empty true && |
Jim Meyering | 42536dd | 2011-05-20 19:20:12 +0200 | [diff] [blame] | 340 | word_diff --word-diff=plain |
| 341 | ' |
| 342 | |
Thomas Rast | c7c2bc0 | 2012-01-12 12:15:33 +0100 | [diff] [blame] | 343 | test_expect_success 'word-diff with no newline at EOF' ' |
| 344 | cat >expect <<-\EOF && |
| 345 | diff --git a/pre b/post |
| 346 | index 7bf316e..3dd0303 100644 |
| 347 | --- a/pre |
| 348 | +++ b/post |
| 349 | @@ -1 +1 @@ |
| 350 | a a [-a-]{+ab+} a a |
| 351 | EOF |
| 352 | printf "%s" "a a a a a" >pre && |
| 353 | printf "%s" "a a ab a a" >post && |
| 354 | word_diff --word-diff=plain |
| 355 | ' |
| 356 | |
Johannes Sixt | 62d3935 | 2012-03-14 20:50:21 +0100 | [diff] [blame] | 357 | test_expect_success 'setup history with two files' ' |
| 358 | echo "a b; c" >a.tex && |
| 359 | echo "a b; c" >z.txt && |
| 360 | git add a.tex z.txt && |
| 361 | git commit -minitial && |
| 362 | |
| 363 | # modify both |
| 364 | echo "a bx; c" >a.tex && |
| 365 | echo "a bx; c" >z.txt && |
| 366 | git commit -mmodified -a |
| 367 | ' |
| 368 | |
Thomas Rast | 6440d34 | 2012-03-14 19:24:09 +0100 | [diff] [blame] | 369 | test_expect_success 'wordRegex for the first file does not apply to the second' ' |
Johannes Sixt | 62d3935 | 2012-03-14 20:50:21 +0100 | [diff] [blame] | 370 | echo "*.tex diff=tex" >.gitattributes && |
Yann Droneaud | ff73aa4 | 2013-03-24 22:06:05 +0100 | [diff] [blame] | 371 | test_config diff.tex.wordRegex "[a-z]+|." && |
Johannes Sixt | 62d3935 | 2012-03-14 20:50:21 +0100 | [diff] [blame] | 372 | cat >expect <<-\EOF && |
| 373 | diff --git a/a.tex b/a.tex |
| 374 | --- a/a.tex |
| 375 | +++ b/a.tex |
| 376 | @@ -1 +1 @@ |
| 377 | a [-b-]{+bx+}; c |
| 378 | diff --git a/z.txt b/z.txt |
| 379 | --- a/z.txt |
| 380 | +++ b/z.txt |
| 381 | @@ -1 +1 @@ |
| 382 | a [-b;-]{+bx;+} c |
| 383 | EOF |
| 384 | git diff --word-diff HEAD~ >actual && |
| 385 | compare_diff_patch expect actual |
| 386 | ' |
| 387 | |
Johannes Schindelin | 2e5d200 | 2009-01-17 17:29:44 +0100 | [diff] [blame] | 388 | test_done |