| #!/bin/sh | |
| # | |
| # Copyright (c) 2007 Johannes E. Schindelin | |
| # | |
| test_description='Test custom diff function name patterns' | |
| . ./test-lib.sh | |
| LF=' | |
| ' | |
| cat > Beer.java << EOF | |
| public class Beer | |
| { | |
| int special; | |
| public static void main(String args[]) | |
| { | |
| String s=" "; | |
| for(int x = 99; x > 0; x--) | |
| { | |
| System.out.print(x + " bottles of beer on the wall " | |
| + x + " bottles of beer\n" | |
| + "Take one down, pass it around, " + (x - 1) | |
| + " bottles of beer on the wall.\n"); | |
| } | |
| System.out.print("Go to the store, buy some more,\n" | |
| + "99 bottles of beer on the wall.\n"); | |
| } | |
| } | |
| EOF | |
| sed 's/beer\\/beer,\\/' < Beer.java > Beer-correct.java | |
| builtin_patterns="bibtex cpp 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" | |
| ' | |
| test_expect_success 'preset java pattern' ' | |
| echo "*.java diff=java" >.gitattributes && | |
| git diff --no-index Beer.java Beer-correct.java | | |
| grep "^@@.*@@ public static void main(" | |
| ' | |
| git config diff.java.funcname '!static | |
| !String | |
| [^ ].*s.*' | |
| test_expect_success 'custom pattern' ' | |
| git diff --no-index Beer.java Beer-correct.java | | |
| grep "^@@.*@@ int special;$" | |
| ' | |
| test_expect_success 'last regexp must not be negated' ' | |
| 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 |