]>
Commit | Line | Data |
---|---|---|
f258475a JH |
1 | #!/bin/sh |
2 | # | |
3 | # Copyright (c) 2007 Johannes E. Schindelin | |
4 | # | |
5 | ||
6 | test_description='Test custom diff function name patterns' | |
7 | ||
8 | . ./test-lib.sh | |
9 | ||
10 | LF=' | |
11 | ' | |
12 | ||
13 | cat > Beer.java << EOF | |
14 | public class Beer | |
15 | { | |
16 | int special; | |
17 | public static void main(String args[]) | |
18 | { | |
19 | String s=" "; | |
20 | for(int x = 99; x > 0; x--) | |
21 | { | |
22 | System.out.print(x + " bottles of beer on the wall " | |
23 | + x + " bottles of beer\n" | |
24 | + "Take one down, pass it around, " + (x - 1) | |
25 | + " bottles of beer on the wall.\n"); | |
26 | } | |
27 | System.out.print("Go to the store, buy some more,\n" | |
28 | + "99 bottles of beer on the wall.\n"); | |
29 | } | |
30 | } | |
31 | EOF | |
32 | ||
33 | sed 's/beer\\/beer,\\/' < Beer.java > Beer-correct.java | |
34 | ||
066e596a | 35 | builtin_patterns="bibtex cpp html java objc pascal php python ruby tex" |
e3bf5e43 BC |
36 | for p in $builtin_patterns |
37 | do | |
38 | test_expect_success "builtin $p pattern compiles" ' | |
39 | echo "*.java diff=$p" > .gitattributes && | |
40 | ! ( git diff --no-index Beer.java Beer-correct.java 2>&1 | | |
41 | grep "fatal" > /dev/null ) | |
42 | ' | |
43 | done | |
44 | ||
f258475a | 45 | test_expect_success 'default behaviour' ' |
e3bf5e43 | 46 | rm -f .gitattributes && |
3af82863 | 47 | git diff --no-index Beer.java Beer-correct.java | |
f258475a JH |
48 | grep "^@@.*@@ public class Beer" |
49 | ' | |
50 | ||
51 | test_expect_success 'preset java pattern' ' | |
e0e324a4 | 52 | echo "*.java diff=java" >.gitattributes && |
3af82863 | 53 | git diff --no-index Beer.java Beer-correct.java | |
f258475a JH |
54 | grep "^@@.*@@ public static void main(" |
55 | ' | |
56 | ||
e0e324a4 | 57 | git config diff.java.funcname '!static |
f258475a JH |
58 | !String |
59 | [^ ].*s.*' | |
60 | ||
61 | test_expect_success 'custom pattern' ' | |
3af82863 | 62 | git diff --no-index Beer.java Beer-correct.java | |
f258475a JH |
63 | grep "^@@.*@@ int special;$" |
64 | ' | |
65 | ||
66 | test_expect_success 'last regexp must not be negated' ' | |
e0e324a4 | 67 | git config diff.java.funcname "!static" && |
16b26725 BC |
68 | git diff --no-index Beer.java Beer-correct.java 2>&1 | |
69 | grep "fatal: Last expression must not be negated:" | |
f258475a JH |
70 | ' |
71 | ||
563d5a2c | 72 | test_expect_success 'pattern which matches to end of line' ' |
b19d288b BC |
73 | git config diff.java.funcname "Beer$" && |
74 | git diff --no-index Beer.java Beer-correct.java | | |
75 | grep "^@@.*@@ Beer" | |
f258475a JH |
76 | ' |
77 | ||
3632cfc2 | 78 | test_expect_success 'alternation in pattern' ' |
45d9414f | 79 | git config diff.java.xfuncname "^[ ]*((public|static).*)$" && |
3632cfc2 AL |
80 | git diff --no-index Beer.java Beer-correct.java | |
81 | grep "^@@.*@@ public static void main(" | |
82 | ' | |
83 | ||
f258475a | 84 | test_done |