diff options
author | Jonathan Nieder <jrnieder@gmail.com> | 2011-05-21 14:25:14 -0500 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2011-05-21 22:29:31 -0700 |
commit | d64d6cdc2071d1eb7f6a45118edc42627e6fc692 (patch) | |
tree | c70d6b85dd3d4b2eec31018b2954ade0df1e6bda /t | |
parent | f792a0b88ec24dd20c29282b4e022c7b48abd59b (diff) | |
download | git-d64d6cdc2071d1eb7f6a45118edc42627e6fc692.tar.gz |
t4018 (funcname patterns): minor cleanups
Introduce a test_expect_funcname function to make a diff and apply a
regexp anchored on the left to the function name it writes, avoiding
some repetition.
Omit the space after >, <<, and < operators for consistency with
other scripts. Quote the <<here document delimiter and $ signs in
quotes so readers don't have to worry about the effect of shell
metacharacters.
Remove some unnecessary blank lines.
Run "git diff" as a separate command instead of as upstream of a pipe
that checks its output, so the exit status can be tested. In
particular, this way if "git diff" starts segfaulting the test harness
will notice.
Allow "error:" as a synonym for "fatal:" when checking error messages,
since whether a command uses die() or "return error()" is a small
implementation detail.
Anchor some more regexes on the right.
None of the above is very important on its own; the point is just to
make the script a little easier to read and the code less scary to
modify.
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 't')
-rwxr-xr-x | t/t4018-diff-funcname.sh | 49 |
1 files changed, 25 insertions, 24 deletions
diff --git a/t/t4018-diff-funcname.sh b/t/t4018-diff-funcname.sh index ce0a0e32e1..ad74c605a4 100755 --- a/t/t4018-diff-funcname.sh +++ b/t/t4018-diff-funcname.sh @@ -9,8 +9,7 @@ test_description='Test custom diff function name patterns' LF=' ' - -cat > Beer.java << EOF +cat >Beer.java <<\EOF public class Beer { int special; @@ -29,34 +28,40 @@ public class Beer } } EOF - -sed 's/beer\\/beer,\\/' < Beer.java > Beer-correct.java +sed 's/beer\\/beer,\\/' <Beer.java >Beer-correct.java test_config () { git config "$1" "$2" && test_when_finished "git config --unset $1" } -builtin_patterns="bibtex cpp csharp fortran html java objc pascal perl php python ruby tex" -for p in $builtin_patterns +test_expect_funcname () { + test_expect_code 1 git diff --no-index \ + Beer.java Beer-correct.java >diff && + grep "^@@.*@@ $1" diff +} + +for p in bibtex cpp csharp fortran html java objc pascal perl php python ruby tex 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; } + test_expect_code 1 git diff --no-index \ + Beer.java Beer-correct.java 2>msg && + ! grep fatal msg && + ! grep error msg ' test_expect_success "builtin $p wordRegex pattern compiles" ' echo "*.java diff=$p" >.gitattributes && - ! { git diff --no-index --word-diff \ - Beer.java Beer-correct.java 2>&1 | - grep "fatal" > /dev/null; } + test_expect_code 1 git diff --no-index --word-diff \ + Beer.java Beer-correct.java 2>msg && + ! grep fatal msg && + ! grep error msg ' done test_expect_success 'default behaviour' ' rm -f .gitattributes && - git diff --no-index Beer.java Beer-correct.java | - grep "^@@.*@@ public class Beer" + test_expect_funcname "public class Beer\$" ' test_expect_success 'set up .gitattributes declaring drivers to test' ' @@ -64,35 +69,31 @@ test_expect_success 'set up .gitattributes declaring drivers to test' ' ' test_expect_success 'preset java pattern' ' - git diff --no-index Beer.java Beer-correct.java | - grep "^@@.*@@ public static void main(" + test_expect_funcname "public static void main(" ' test_expect_success 'custom pattern' ' test_config diff.java.funcname "!static !String [^ ].*s.*" && - git diff --no-index Beer.java Beer-correct.java | - grep "^@@.*@@ int special;$" + test_expect_funcname "int special;\$" ' test_expect_success 'last regexp must not be negated' ' test_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_code 128 git diff --no-index Beer.java Beer-correct.java 2>msg && + grep ": Last expression must not be negated:" msg ' test_expect_success 'pattern which matches to end of line' ' - test_config diff.java.funcname "Beer$" && - git diff --no-index Beer.java Beer-correct.java | - grep "^@@.*@@ Beer" + test_config diff.java.funcname "Beer\$" && + test_expect_funcname "Beer\$" ' test_expect_success 'alternation in pattern' ' test_config diff.java.funcname "Beer$" && test_config diff.java.xfuncname "^[ ]*((public|static).*)$" && - git diff --no-index Beer.java Beer-correct.java | - grep "^@@.*@@ public static void main(" + test_expect_funcname "public static void main(" ' test_done |