summaryrefslogtreecommitdiff
path: root/t
diff options
context:
space:
mode:
Diffstat (limited to 't')
-rwxr-xr-xt/t3301-notes.sh7
-rwxr-xr-xt/t4018-diff-funcname.sh9
-rwxr-xr-xt/t5400-send-pack.sh23
-rwxr-xr-xt/t5510-fetch.sh32
-rwxr-xr-xt/t7008-grep-binary.sh14
-rw-r--r--t/test-lib.sh23
6 files changed, 97 insertions, 11 deletions
diff --git a/t/t3301-notes.sh b/t/t3301-notes.sh
index 96b75813d7..a2b79a0430 100755
--- a/t/t3301-notes.sh
+++ b/t/t3301-notes.sh
@@ -365,6 +365,13 @@ c18dc024e14f08d18d14eea0d747ff692d66d6a3 1584215f1d29c65e99c6c6848626553fdd07fd7
c9c6af7f78bc47490dbf3e822cf2f3c24d4b9061 268048bfb8a1fb38e703baceb8ab235421bf80c5
EOF
+test_expect_success 'removing non-existing note should not create new commit' '
+ git rev-parse --verify refs/notes/commits > before_commit &&
+ test_must_fail git notes remove HEAD^ &&
+ git rev-parse --verify refs/notes/commits > after_commit &&
+ test_cmp before_commit after_commit
+'
+
test_expect_success 'list notes with "git notes list"' '
git notes list > output &&
test_cmp expect output
diff --git a/t/t4018-diff-funcname.sh b/t/t4018-diff-funcname.sh
index 61de8a2718..c8e19372b0 100755
--- a/t/t4018-diff-funcname.sh
+++ b/t/t4018-diff-funcname.sh
@@ -37,8 +37,13 @@ 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 )
+ ! { git diff --no-index Beer.java Beer-correct.java 2>&1 |
+ grep "fatal" > /dev/null; }
+ '
+ test_expect_success "builtin $p wordRegex pattern compiles" '
+ ! { git diff --no-index --word-diff \
+ Beer.java Beer-correct.java 2>&1 |
+ grep "fatal" > /dev/null; }
'
done
diff --git a/t/t5400-send-pack.sh b/t/t5400-send-pack.sh
index c718253673..5bcf0b867a 100755
--- a/t/t5400-send-pack.sh
+++ b/t/t5400-send-pack.sh
@@ -94,6 +94,29 @@ test_expect_success 'refuse deleting push with denyDeletes' '
test_must_fail git send-pack ./victim :extra master
'
+test_expect_success 'cannot override denyDeletes with git -c send-pack' '
+ (
+ cd victim &&
+ test_might_fail git branch -D extra &&
+ git config receive.denyDeletes true &&
+ git branch extra master
+ ) &&
+ test_must_fail git -c receive.denyDeletes=false \
+ send-pack ./victim :extra master
+'
+
+test_expect_success 'override denyDeletes with git -c receive-pack' '
+ (
+ cd victim &&
+ test_might_fail git branch -D extra &&
+ git config receive.denyDeletes true &&
+ git branch extra master
+ ) &&
+ git send-pack \
+ --receive-pack="git -c receive.denyDeletes=false receive-pack" \
+ ./victim :extra master
+'
+
test_expect_success 'denyNonFastforwards trumps --force' '
(
cd victim &&
diff --git a/t/t5510-fetch.sh b/t/t5510-fetch.sh
index 4eb10f602f..efb42d1540 100755
--- a/t/t5510-fetch.sh
+++ b/t/t5510-fetch.sh
@@ -240,6 +240,38 @@ test_expect_success 'fetch with a non-applying branch.<name>.merge' '
git fetch blub
'
+# URL supplied to fetch does not match the url of the configured branch's remote
+test_expect_success 'fetch from GIT URL with a non-applying branch.<name>.merge [1]' '
+ one_head=$(cd one && git rev-parse HEAD) &&
+ this_head=$(git rev-parse HEAD) &&
+ git update-ref -d FETCH_HEAD &&
+ git fetch one &&
+ test $one_head = "$(git rev-parse --verify FETCH_HEAD)" &&
+ test $this_head = "$(git rev-parse --verify HEAD)"
+'
+
+# URL supplied to fetch matches the url of the configured branch's remote and
+# the merge spec matches the branch the remote HEAD points to
+test_expect_success 'fetch from GIT URL with a non-applying branch.<name>.merge [2]' '
+ one_ref=$(cd one && git symbolic-ref HEAD) &&
+ git config branch.master.remote blub &&
+ git config branch.master.merge "$one_ref" &&
+ git update-ref -d FETCH_HEAD &&
+ git fetch one &&
+ test $one_head = "$(git rev-parse --verify FETCH_HEAD)" &&
+ test $this_head = "$(git rev-parse --verify HEAD)"
+'
+
+# URL supplied to fetch matches the url of the configured branch's remote, but
+# the merge spec does not match the branch the remote HEAD points to
+test_expect_success 'fetch from GIT URL with a non-applying branch.<name>.merge [3]' '
+ git config branch.master.merge "${one_ref}_not" &&
+ git update-ref -d FETCH_HEAD &&
+ git fetch one &&
+ test $one_head = "$(git rev-parse --verify FETCH_HEAD)" &&
+ test $this_head = "$(git rev-parse --verify HEAD)"
+'
+
# the strange name is: a\!'b
test_expect_success 'quoting of a strangely named repo' '
test_must_fail git fetch "a\\!'\''b" > result 2>&1 &&
diff --git a/t/t7008-grep-binary.sh b/t/t7008-grep-binary.sh
index c0f9f3f705..e058d184d1 100755
--- a/t/t7008-grep-binary.sh
+++ b/t/t7008-grep-binary.sh
@@ -5,7 +5,7 @@ test_description='git grep in binary files'
. ./test-lib.sh
test_expect_success 'setup' "
- printf 'binary\000file\n' >a &&
+ echo 'binaryQfile' | q_to_nul >a &&
git add a &&
git commit -m.
"
@@ -70,32 +70,32 @@ test_expect_failure 'git grep .fi a' '
'
test_expect_success 'git grep -F y<NUL>f a' "
- printf 'y\000f' >f &&
+ printf 'yQf' | q_to_nul >f &&
git grep -f f -F a
"
test_expect_success 'git grep -F y<NUL>x a' "
- printf 'y\000x' >f &&
+ printf 'yQx' | q_to_nul >f &&
test_must_fail git grep -f f -F a
"
test_expect_success 'git grep -Fi Y<NUL>f a' "
- printf 'Y\000f' >f &&
+ printf 'YQf' | q_to_nul >f &&
git grep -f f -Fi a
"
test_expect_failure 'git grep -Fi Y<NUL>x a' "
- printf 'Y\000x' >f &&
+ printf 'YQx' | q_to_nul >f &&
test_must_fail git grep -f f -Fi a
"
test_expect_success 'git grep y<NUL>f a' "
- printf 'y\000f' >f &&
+ printf 'yQf' | q_to_nul >f &&
git grep -f f a
"
test_expect_failure 'git grep y<NUL>x a' "
- printf 'y\000x' >f &&
+ printf 'yQx' | q_to_nul >f &&
test_must_fail git grep -f f a
"
diff --git a/t/test-lib.sh b/t/test-lib.sh
index dff5e25ae6..830e5e7360 100644
--- a/t/test-lib.sh
+++ b/t/test-lib.sh
@@ -620,7 +620,18 @@ test_path_is_missing () {
test_must_fail () {
"$@"
- test $? -gt 0 -a $? -le 129 -o $? -gt 192
+ exit_code=$?
+ if test $exit_code = 0; then
+ echo >&2 "test_must_fail: command succeeded: $*"
+ return 1
+ elif test $exit_code -gt 129 -a $exit_code -le 192; then
+ echo >&2 "test_must_fail: died by signal: $*"
+ return 1
+ elif test $exit_code = 127; then
+ echo >&2 "test_must_fail: command not found: $*"
+ return 1
+ fi
+ return 0
}
# Similar to test_must_fail, but tolerates success, too. This is
@@ -636,7 +647,15 @@ test_must_fail () {
test_might_fail () {
"$@"
- test $? -ge 0 -a $? -le 129 -o $? -gt 192
+ exit_code=$?
+ if test $exit_code -gt 129 -a $exit_code -le 192; then
+ echo >&2 "test_might_fail: died by signal: $*"
+ return 1
+ elif test $exit_code = 127; then
+ echo >&2 "test_might_fail: command not found: $*"
+ return 1
+ fi
+ return 0
}
# test_cmp is a helper function to compare actual and expected output.