提交 6cdffd06 编写于 作者: J Jeff King 提交者: Junio C Hamano

t5545: factor out http repository setup

We repeat many lines of setup code in the two http tests,
and further tests would need to repeat it again.  Let's
factor this out into a function.

Incidentally, this also fixes an unlikely bug: if the httpd
root path contains a double-quote, our test_when_finished
would barf due to improper quoting (we escape the embedded
quotes, but not the $, meaning we expand the variable before
the eval).
Signed-off-by: NJeff King <peff@peff.net>
Signed-off-by: NJunio C Hamano <gitster@pobox.com>
上级 ffa95249
...@@ -220,14 +220,20 @@ test_expect_success 'invalid push option in config' ' ...@@ -220,14 +220,20 @@ test_expect_success 'invalid push option in config' '
. "$TEST_DIRECTORY"/lib-httpd.sh . "$TEST_DIRECTORY"/lib-httpd.sh
start_httpd start_httpd
test_expect_success 'push option denied properly by http server' ' # set up http repository for fetching/pushing, with push options config
# bool set to $1
mk_http_pair () {
test_when_finished "rm -rf test_http_clone" && test_when_finished "rm -rf test_http_clone" &&
test_when_finished "rm -rf \"$HTTPD_DOCUMENT_ROOT_PATH\"/upstream.git" && test_when_finished 'rm -rf "$HTTPD_DOCUMENT_ROOT_PATH"/upstream.git' &&
mk_repo_pair && mk_repo_pair &&
git -C upstream config receive.advertisePushOptions false && git -C upstream config receive.advertisePushOptions "$1" &&
git -C upstream config http.receivepack true && git -C upstream config http.receivepack true &&
cp -R upstream/.git "$HTTPD_DOCUMENT_ROOT_PATH"/upstream.git && cp -R upstream/.git "$HTTPD_DOCUMENT_ROOT_PATH"/upstream.git &&
git clone "$HTTPD_URL"/smart/upstream test_http_clone && git clone "$HTTPD_URL"/smart/upstream test_http_clone
}
test_expect_success 'push option denied properly by http server' '
mk_http_pair false &&
test_commit -C test_http_clone one && test_commit -C test_http_clone one &&
test_must_fail git -C test_http_clone push --push-option=asdf origin master 2>actual && test_must_fail git -C test_http_clone push --push-option=asdf origin master 2>actual &&
test_i18ngrep "the receiving end does not support push options" actual && test_i18ngrep "the receiving end does not support push options" actual &&
...@@ -235,13 +241,7 @@ test_expect_success 'push option denied properly by http server' ' ...@@ -235,13 +241,7 @@ test_expect_success 'push option denied properly by http server' '
' '
test_expect_success 'push options work properly across http' ' test_expect_success 'push options work properly across http' '
test_when_finished "rm -rf test_http_clone" && mk_http_pair true &&
test_when_finished "rm -rf \"$HTTPD_DOCUMENT_ROOT_PATH\"/upstream.git" &&
mk_repo_pair &&
git -C upstream config receive.advertisePushOptions true &&
git -C upstream config http.receivepack true &&
cp -R upstream/.git "$HTTPD_DOCUMENT_ROOT_PATH"/upstream.git &&
git clone "$HTTPD_URL"/smart/upstream test_http_clone &&
test_commit -C test_http_clone one && test_commit -C test_http_clone one &&
git -C test_http_clone push origin master && git -C test_http_clone push origin master &&
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册