Code

Merge branch 'maint'
[git.git] / t / t4018-diff-funcname.sh
index 18bcd9713d4e7a1446639dece4b8bc0173c57b22..be541348c6f8d469428e2fcc7abaf6d25168c08f 100755 (executable)
@@ -32,7 +32,18 @@ EOF
 
 sed 's/beer\\/beer,\\/' < Beer.java > Beer-correct.java
 
+builtin_patterns="bibtex html java objc pascal php python ruby tex"
+for p in $builtin_patterns
+do
+       test_expect_success "builtin $p pattern compiles" '
+               echo "*.java diff=$p" > .gitattributes &&
+               ! ( git diff --no-index Beer.java Beer-correct.java 2>&1 |
+                       grep "fatal" > /dev/null )
+       '
+done
+
 test_expect_success 'default behaviour' '
+       rm -f .gitattributes &&
        git diff --no-index Beer.java Beer-correct.java |
        grep "^@@.*@@ public class Beer"
 '
@@ -54,11 +65,18 @@ test_expect_success 'custom pattern' '
 
 test_expect_success 'last regexp must not be negated' '
        git config diff.java.funcname "!static" &&
-       test_must_fail git diff --no-index Beer.java Beer-correct.java
+       git diff --no-index Beer.java Beer-correct.java 2>&1 |
+       grep "fatal: Last expression must not be negated:"
+'
+
+test_expect_success 'pattern which matches to end of line' '
+       git config diff.java.funcname "Beer$" &&
+       git diff --no-index Beer.java Beer-correct.java |
+       grep "^@@.*@@ Beer"
 '
 
 test_expect_success 'alternation in pattern' '
-       git config diff.java.funcname "^[       ]*\\(\\(public\\|static\\).*\\)$"
+       git config diff.java.xfuncname "^[      ]*((public|static).*)$" &&
        git diff --no-index Beer.java Beer-correct.java |
        grep "^@@.*@@ public static void main("
 '