Code

Merge branch 'maint'
[git.git] / t / t4018-diff-funcname.sh
old mode 100644 (file)
new mode 100755 (executable)
index dc7a47b..be54134
@@ -32,29 +32,53 @@ 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' '
-       git diff Beer.java Beer-correct.java |
+       rm -f .gitattributes &&
+       git diff --no-index Beer.java Beer-correct.java |
        grep "^@@.*@@ public class Beer"
 '
 
 test_expect_success 'preset java pattern' '
-       echo "*.java funcname=java" >.gitattributes &&
-       git diff Beer.java Beer-correct.java |
+       echo "*.java diff=java" >.gitattributes &&
+       git diff --no-index Beer.java Beer-correct.java |
        grep "^@@.*@@ public static void main("
 '
 
-git config funcname.java '!static
+git config diff.java.funcname '!static
 !String
 [^     ].*s.*'
 
 test_expect_success 'custom pattern' '
-       git diff Beer.java Beer-correct.java |
+       git diff --no-index Beer.java Beer-correct.java |
        grep "^@@.*@@ int special;$"
 '
 
 test_expect_success 'last regexp must not be negated' '
-       git config diff.functionnameregexp "!static" &&
-       ! git diff Beer.java Beer-correct.java
+       git config diff.java.funcname "!static" &&
+       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.xfuncname "^[      ]*((public|static).*)$" &&
+       git diff --no-index Beer.java Beer-correct.java |
+       grep "^@@.*@@ public static void main("
 '
 
 test_done