Squashed 'third_party/git/' content from commit cb71568594
git-subtree-dir: third_party/git git-subtree-split: cb715685942260375e1eb8153b0768a376e4ece7
This commit is contained in:
commit
1b593e1ea4
3629 changed files with 1139935 additions and 0 deletions
113
t/t4018-diff-funcname.sh
Executable file
113
t/t4018-diff-funcname.sh
Executable file
|
|
@ -0,0 +1,113 @@
|
|||
#!/bin/sh
|
||||
#
|
||||
# Copyright (c) 2007 Johannes E. Schindelin
|
||||
#
|
||||
|
||||
test_description='Test custom diff function name patterns'
|
||||
|
||||
. ./test-lib.sh
|
||||
|
||||
test_expect_success 'setup' '
|
||||
# a non-trivial custom pattern
|
||||
git config diff.custom1.funcname "!static
|
||||
!String
|
||||
[^ ].*s.*" &&
|
||||
|
||||
# a custom pattern which matches to end of line
|
||||
git config diff.custom2.funcname "......Beer\$" &&
|
||||
|
||||
# alternation in pattern
|
||||
git config diff.custom3.funcname "Beer$" &&
|
||||
git config diff.custom3.xfuncname "^[ ]*((public|static).*)$" &&
|
||||
|
||||
# for regexp compilation tests
|
||||
echo A >A.java &&
|
||||
echo B >B.java
|
||||
'
|
||||
|
||||
diffpatterns="
|
||||
ada
|
||||
bibtex
|
||||
cpp
|
||||
csharp
|
||||
css
|
||||
fortran
|
||||
fountain
|
||||
golang
|
||||
html
|
||||
java
|
||||
matlab
|
||||
objc
|
||||
pascal
|
||||
perl
|
||||
php
|
||||
python
|
||||
ruby
|
||||
rust
|
||||
tex
|
||||
custom1
|
||||
custom2
|
||||
custom3
|
||||
"
|
||||
|
||||
for p in $diffpatterns
|
||||
do
|
||||
test_expect_success "builtin $p pattern compiles" '
|
||||
echo "*.java diff=$p" >.gitattributes &&
|
||||
test_expect_code 1 git diff --no-index \
|
||||
A.java B.java 2>msg &&
|
||||
test_i18ngrep ! fatal msg &&
|
||||
test_i18ngrep ! error msg
|
||||
'
|
||||
test_expect_success "builtin $p wordRegex pattern compiles" '
|
||||
echo "*.java diff=$p" >.gitattributes &&
|
||||
test_expect_code 1 git diff --no-index --word-diff \
|
||||
A.java B.java 2>msg &&
|
||||
test_i18ngrep ! fatal msg &&
|
||||
test_i18ngrep ! error msg
|
||||
'
|
||||
done
|
||||
|
||||
test_expect_success 'last regexp must not be negated' '
|
||||
echo "*.java diff=java" >.gitattributes &&
|
||||
test_config diff.java.funcname "!static" &&
|
||||
test_expect_code 128 git diff --no-index A.java B.java 2>msg &&
|
||||
test_i18ngrep ": Last expression must not be negated:" msg
|
||||
'
|
||||
|
||||
test_expect_success 'setup hunk header tests' '
|
||||
for i in $diffpatterns
|
||||
do
|
||||
echo "$i-* diff=$i"
|
||||
done > .gitattributes &&
|
||||
|
||||
# add all test files to the index
|
||||
(
|
||||
cd "$TEST_DIRECTORY"/t4018 &&
|
||||
git --git-dir="$TRASH_DIRECTORY/.git" add .
|
||||
) &&
|
||||
|
||||
# place modified files in the worktree
|
||||
for i in $(git ls-files)
|
||||
do
|
||||
sed -e "s/ChangeMe/IWasChanged/" <"$TEST_DIRECTORY/t4018/$i" >"$i" || return 1
|
||||
done
|
||||
'
|
||||
|
||||
# check each individual file
|
||||
for i in $(git ls-files)
|
||||
do
|
||||
if grep broken "$i" >/dev/null 2>&1
|
||||
then
|
||||
result=failure
|
||||
else
|
||||
result=success
|
||||
fi
|
||||
test_expect_$result "hunk header: $i" "
|
||||
test_when_finished 'cat actual' && # for debugging only
|
||||
git diff -U1 $i >actual &&
|
||||
grep '@@ .* @@.*RIGHT' actual
|
||||
"
|
||||
done
|
||||
|
||||
test_done
|
||||
Loading…
Add table
Add a link
Reference in a new issue