http tests: use "test_hook" for "smart" and "dumb" http tests

Change the http tests to use "test_hook" insteadd of
"write_script". In both cases we can get rid of sub-shelling. For
"t/t5550-http-fetch-dumb.sh" add a trivial helper which sets up the
hook and calls "update-server-info".

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:18 +01:00 коммит произвёл Junio C Hamano
Родитель c39176b160
Коммит f6db603c7a
2 изменённых файлов: 14 добавлений и 21 удалений

Просмотреть файл

@ -419,10 +419,7 @@ test_expect_success CMDLINE_LIMIT 'push 2000 tags over http' '
' '
test_expect_success GPG 'push with post-receive to inspect certificate' ' test_expect_success GPG 'push with post-receive to inspect certificate' '
( test_hook -C "$HTTPD_DOCUMENT_ROOT_PATH"/test_repo.git post-receive <<-\EOF &&
cd "$HTTPD_DOCUMENT_ROOT_PATH"/test_repo.git &&
mkdir -p hooks &&
write_script hooks/post-receive <<-\EOF &&
# discard the update list # discard the update list
cat >/dev/null cat >/dev/null
# record the push certificate # record the push certificate
@ -437,8 +434,9 @@ test_expect_success GPG 'push with post-receive to inspect certificate' '
NONCE_STATUS=${GIT_PUSH_CERT_NONCE_STATUS-nononcestatus} NONCE_STATUS=${GIT_PUSH_CERT_NONCE_STATUS-nononcestatus}
NONCE=${GIT_PUSH_CERT_NONCE-nononce} NONCE=${GIT_PUSH_CERT_NONCE-nononce}
E_O_F E_O_F
EOF EOF
(
cd "$HTTPD_DOCUMENT_ROOT_PATH"/test_repo.git &&
git config receive.certnonceseed sekrit && git config receive.certnonceseed sekrit &&
git config receive.certnonceslop 30 git config receive.certnonceslop 30
) && ) &&

Просмотреть файл

@ -25,16 +25,17 @@ test_expect_success 'setup repository' '
git commit -m two git commit -m two
' '
setup_post_update_server_info_hook () {
test_hook --setup -C "$1" post-update <<-\EOF &&
exec git update-server-info
EOF
git -C "$1" update-server-info
}
test_expect_success 'create http-accessible bare repository with loose objects' ' test_expect_success 'create http-accessible bare repository with loose objects' '
cp -R .git "$HTTPD_DOCUMENT_ROOT_PATH/repo.git" && cp -R .git "$HTTPD_DOCUMENT_ROOT_PATH/repo.git" &&
(cd "$HTTPD_DOCUMENT_ROOT_PATH/repo.git" && git -C "$HTTPD_DOCUMENT_ROOT_PATH/repo.git" config core.bare true &&
git config core.bare true && setup_post_update_server_info_hook "$HTTPD_DOCUMENT_ROOT_PATH/repo.git" &&
mkdir -p hooks &&
write_script "hooks/post-update" <<-\EOF &&
exec git update-server-info
EOF
hooks/post-update
) &&
git remote add public "$HTTPD_DOCUMENT_ROOT_PATH/repo.git" && git remote add public "$HTTPD_DOCUMENT_ROOT_PATH/repo.git" &&
git push public main:main git push public main:main
' '
@ -62,13 +63,7 @@ test_expect_success 'create password-protected repository' '
test_expect_success 'create empty remote repository' ' test_expect_success 'create empty remote repository' '
git init --bare "$HTTPD_DOCUMENT_ROOT_PATH/empty.git" && git init --bare "$HTTPD_DOCUMENT_ROOT_PATH/empty.git" &&
(cd "$HTTPD_DOCUMENT_ROOT_PATH/empty.git" && setup_post_update_server_info_hook "$HTTPD_DOCUMENT_ROOT_PATH/empty.git"
mkdir -p hooks &&
write_script "hooks/post-update" <<-\EOF &&
exec git update-server-info
EOF
hooks/post-update
)
' '
test_expect_success 'empty dumb HTTP repository has default hash algorithm' ' test_expect_success 'empty dumb HTTP repository has default hash algorithm' '