aboutsummaryrefslogtreecommitdiffstats
path: root/t/t5504-fetch-receive-strict.sh
diff options
context:
space:
mode:
Diffstat (limited to 't/t5504-fetch-receive-strict.sh')
-rwxr-xr-xt/t5504-fetch-receive-strict.sh52
1 files changed, 29 insertions, 23 deletions
diff --git a/t/t5504-fetch-receive-strict.sh b/t/t5504-fetch-receive-strict.sh
index 138e6778a4..58074506c5 100755
--- a/t/t5504-fetch-receive-strict.sh
+++ b/t/t5504-fetch-receive-strict.sh
@@ -4,7 +4,6 @@ test_description='fetch/receive strict mode'
GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME=main
export GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME
-TEST_PASSES_SANITIZE_LEAK=true
. ./test-lib.sh
test_expect_success 'setup and inject "corrupt or missing" object' '
@@ -65,12 +64,6 @@ test_expect_success 'fetch with transfer.fsckobjects' '
)
'
-cat >exp <<EOF
-To dst
-! refs/heads/main:refs/heads/test [remote rejected] (missing necessary objects)
-Done
-EOF
-
test_expect_success 'push without strict' '
rm -rf dst &&
git init dst &&
@@ -79,6 +72,11 @@ test_expect_success 'push without strict' '
git config fetch.fsckobjects false &&
git config transfer.fsckobjects false
) &&
+ cat >exp <<-\EOF &&
+ To dst
+ ! refs/heads/main:refs/heads/test [remote rejected] (missing necessary objects)
+ Done
+ EOF
test_must_fail git push --porcelain dst main:refs/heads/test >act &&
test_cmp exp act
'
@@ -95,11 +93,6 @@ test_expect_success 'push with !receive.fsckobjects' '
test_cmp exp act
'
-cat >exp <<EOF
-To dst
-! refs/heads/main:refs/heads/test [remote rejected] (unpacker error)
-EOF
-
test_expect_success 'push with receive.fsckobjects' '
rm -rf dst &&
git init dst &&
@@ -108,6 +101,10 @@ test_expect_success 'push with receive.fsckobjects' '
git config receive.fsckobjects true &&
git config transfer.fsckobjects false
) &&
+ cat >exp <<-\EOF &&
+ To dst
+ ! refs/heads/main:refs/heads/test [remote rejected] (unpacker error)
+ EOF
test_must_fail git push --porcelain dst main:refs/heads/test >act &&
test_cmp exp act
'
@@ -130,15 +127,14 @@ test_expect_success 'repair the "corrupt or missing" object' '
git fsck
'
-cat >bogus-commit <<EOF
-tree $EMPTY_TREE
-author Bugs Bunny 1234567890 +0000
-committer Bugs Bunny <bugs@bun.ni> 1234567890 +0000
-
-This commit object intentionally broken
-EOF
-
test_expect_success 'setup bogus commit' '
+ cat >bogus-commit <<-EOF &&
+ tree $EMPTY_TREE
+ author Bugs Bunny 1234567890 +0000
+ committer Bugs Bunny <bugs@bun.ni> 1234567890 +0000
+
+ This commit object intentionally broken
+ EOF
commit="$(git hash-object --literally -t commit -w --stdin <bogus-commit)"
'
@@ -168,10 +164,12 @@ test_expect_success 'fsck with unsorted skipList' '
test_expect_success 'fsck with invalid or bogus skipList input' '
git -c fsck.skipList=/dev/null -c fsck.missingEmail=ignore fsck &&
+ test_must_fail git -c fsck.skipList -c fsck.missingEmail=ignore fsck 2>err &&
+ test_grep "unable to parse '\'fsck.skiplist\'' from command-line config" err &&
test_must_fail git -c fsck.skipList=does-not-exist -c fsck.missingEmail=ignore fsck 2>err &&
test_grep "could not open.*: does-not-exist" err &&
test_must_fail git -c fsck.skipList=.git/config -c fsck.missingEmail=ignore fsck 2>err &&
- test_grep "invalid object name: \[core\]" err
+ test_grep "invalid object name: " err
'
test_expect_success 'fsck with other accepted skipList input (comments & empty lines)' '
@@ -214,6 +212,11 @@ test_expect_success 'fsck with exhaustive accepted skipList input (various types
test_must_be_empty err
'
+test_expect_success 'receive-pack with missing receive.fsck.skipList path' '
+ test_must_fail git -c receive.fsck.skipList receive-pack dst 2>err &&
+ test_grep "unable to parse '\'receive.fsck.skiplist\'' from command-line config" err
+'
+
test_expect_success 'push with receive.fsck.skipList' '
git push . $commit:refs/heads/bogus &&
rm -rf dst &&
@@ -234,7 +237,7 @@ test_expect_success 'push with receive.fsck.skipList' '
test_grep "could not open.*: does-not-exist" err &&
git --git-dir=dst/.git config receive.fsck.skipList config &&
test_must_fail git push --porcelain dst bogus 2>err &&
- test_grep "invalid object name: \[core\]" err &&
+ test_grep "invalid object name: " err &&
git --git-dir=dst/.git config receive.fsck.skipList SKIP &&
git push --porcelain dst bogus
@@ -256,6 +259,9 @@ test_expect_success 'fetch with fetch.fsck.skipList' '
test_must_fail git --git-dir=dst/.git fetch "file://$(pwd)" $refspec &&
# Invalid and/or bogus skipList input
+ test_must_fail git --git-dir=dst/.git -c fetch.fsck.skipList fetch \
+ "file://$(pwd)" $refspec 2>err &&
+ test_grep "unable to parse '\'fetch.fsck.skiplist\'' from command-line config" err &&
git --git-dir=dst/.git config fetch.fsck.skipList /dev/null &&
test_must_fail git --git-dir=dst/.git fetch "file://$(pwd)" $refspec &&
git --git-dir=dst/.git config fetch.fsck.skipList does-not-exist &&
@@ -263,7 +269,7 @@ test_expect_success 'fetch with fetch.fsck.skipList' '
test_grep "could not open.*: does-not-exist" err &&
git --git-dir=dst/.git config fetch.fsck.skipList dst/.git/config &&
test_must_fail git --git-dir=dst/.git fetch "file://$(pwd)" $refspec 2>err &&
- test_grep "invalid object name: \[core\]" err &&
+ test_grep "invalid object name: " err &&
git --git-dir=dst/.git config fetch.fsck.skipList dst/.git/SKIP &&
git --git-dir=dst/.git fetch "file://$(pwd)" $refspec