gc + p4 tests: use "test_hook", remove sub-shells

Refactor the repository setup code for tests that test hooks the use
of sub-shells when setting up the test repository and hooks, and use
the "test_hook" wrapper instead of "write_scripts".

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Ævar Arnfjörð Bjarmason 2022-03-17 11:13:12 +01:00 committed by Junio C Hamano
parent f818f7f725
commit d7ef03681f
2 changed files with 24 additions and 21 deletions

View file

@ -101,12 +101,12 @@ test_expect_success 'pre-auto-gc hook can stop auto gc' '
EOF EOF
git init pre-auto-gc-hook && git init pre-auto-gc-hook &&
test_hook -C pre-auto-gc-hook pre-auto-gc <<-\EOF &&
echo >&2 no gc for you &&
exit 1
EOF
( (
cd 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.auto 3 &&
git config gc.autoDetach false && git config gc.autoDetach false &&
@ -128,14 +128,12 @@ test_expect_success 'pre-auto-gc hook can stop auto gc' '
See "git help gc" for manual housekeeping. See "git help gc" for manual housekeeping.
EOF EOF
( test_hook -C pre-auto-gc-hook --clobber pre-auto-gc <<-\EOF &&
cd pre-auto-gc-hook && echo >&2 will gc for you &&
write_script ".git/hooks/pre-auto-gc" <<-\EOF && exit 0
echo >&2 will gc for you && EOF
exit 0
EOF git -C pre-auto-gc-hook gc --auto >out.actual 2>err.actual &&
git gc --auto >../out.actual 2>../err.actual
) &&
test_must_be_empty out.actual && test_must_be_empty out.actual &&
test_cmp err.expect err.actual test_cmp err.expect err.actual

View file

@ -277,16 +277,21 @@ test_expect_success 'run hook p4-pre-submit before submit' '
git commit -m "add hello.txt" && git commit -m "add hello.txt" &&
git config git-p4.skipSubmitEdit true && git config git-p4.skipSubmitEdit true &&
git p4 submit --dry-run >out && git p4 submit --dry-run >out &&
grep "Would apply" out && grep "Would apply" out
mkdir -p .git/hooks && ) &&
write_script .git/hooks/p4-pre-submit <<-\EOF && test_hook -C "$git" p4-pre-submit <<-\EOF &&
exit 0 exit 0
EOF EOF
(
cd "$git" &&
git p4 submit --dry-run >out && git p4 submit --dry-run >out &&
grep "Would apply" out && grep "Would apply" out
write_script .git/hooks/p4-pre-submit <<-\EOF && ) &&
exit 1 test_hook -C "$git" --clobber p4-pre-submit <<-\EOF &&
EOF exit 1
EOF
(
cd "$git" &&
test_must_fail git p4 submit --dry-run >errs 2>&1 && test_must_fail git p4 submit --dry-run >errs 2>&1 &&
! grep "Would apply" errs ! grep "Would apply" errs
) )