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: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
ffa9524972
commit
6cdffd06d6
@ -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' '
|
|||||||
'
|
'
|
||||||
|
|
||||||
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 &&
|
||||||
|
Loading…
Reference in New Issue
Block a user