Browse Source

gc tests: add a test for the "pre-auto-gc" hook

Add a missing test for the behavior of the pre-auto-gc hook added in
0b85d92661 (Documentation/hooks: add pre-auto-gc hook, 2008-04-02).

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
maint
Ævar Arnfjörð Bjarmason 4 years ago committed by Junio C Hamano
parent
commit
9eb542f2ee
  1. 46
      t/t6500-gc.sh

46
t/t6500-gc.sh

@ -95,6 +95,52 @@ test_expect_success 'gc --keep-largest-pack' ' @@ -95,6 +95,52 @@ test_expect_success 'gc --keep-largest-pack' '
)
'

test_expect_success 'pre-auto-gc hook can stop auto gc' '
cat >err.expect <<-\EOF &&
no gc for you
EOF

git init pre-auto-gc-hook &&
(
cd pre-auto-gc-hook &&
write_script ".git/hooks/pre-auto-gc" <<-\EOF &&
echo >&2 no gc for you &&
exit 1
EOF

git config gc.auto 3 &&
git config gc.autoDetach false &&

# We need to create two object whose sha1s start with 17
# since this is what git gc counts. As it happens, these
# two blobs will do so.
test_commit "$(test_oid obj1)" &&
test_commit "$(test_oid obj2)" &&

git gc --auto >../out.actual 2>../err.actual
) &&
test_must_be_empty out.actual &&
test_cmp err.expect err.actual &&

cat >err.expect <<-\EOF &&
will gc for you
Auto packing the repository for optimum performance.
See "git help gc" for manual housekeeping.
EOF

(
cd pre-auto-gc-hook &&
write_script ".git/hooks/pre-auto-gc" <<-\EOF &&
echo >&2 will gc for you &&
exit 0
EOF
git gc --auto >../out.actual 2>../err.actual
) &&

test_must_be_empty out.actual &&
test_cmp err.expect err.actual
'

test_expect_success 'auto gc with too many loose objects does not attempt to create bitmaps' '
test_config gc.auto 3 &&
test_config gc.autodetach false &&

Loading…
Cancel
Save