transfer.fsckObjects tests: untangle confusing setup
[gitweb.git] / t / t5504-fetch-receive-strict.sh
index e1f8768094a92f318ddd72bfe7c81cbca4a9badb..57ff78c2010d20160bb0db0ff84d040954041a87 100755 (executable)
@@ -3,13 +3,16 @@
 test_description='fetch/receive strict mode'
 . ./test-lib.sh
 
-test_expect_success setup '
+test_expect_success 'setup and inject "corrupt or missing" object' '
        echo hello >greetings &&
        git add greetings &&
        git commit -m greetings &&
 
        S=$(git rev-parse :greetings | sed -e "s|^..|&/|") &&
        X=$(echo bye | git hash-object -w --stdin | sed -e "s|^..|&/|") &&
+       echo $S >S &&
+       echo $X >X &&
+       cp .git/objects/$S .git/objects/$S.back &&
        mv -f .git/objects/$X .git/objects/$S &&
 
        test_must_fail git fsck
@@ -115,6 +118,13 @@ test_expect_success 'push with transfer.fsckobjects' '
        test_cmp exp act
 '
 
+test_expect_success 'repair the "corrupt or missing" object' '
+       mv -f .git/objects/$(cat S) .git/objects/$(cat X) &&
+       mv .git/objects/$(cat S).back .git/objects/$(cat S) &&
+       rm -rf .git/objects/$(cat X) &&
+       git fsck
+'
+
 cat >bogus-commit <<EOF
 tree $EMPTY_TREE
 author Bugs Bunny 1234567890 +0000