[PATCH 1/2] t5545: factor out http repository setup
- From
Jeff King <peff@peff.net>
- Date
- Feb 19, 2018, 19:48 UTC
- Message-ID
- <20180219194844.GA988@sigill.intra.peff.net>
- In-Reply-To
- <20180219194709.GA837@sigill.intra.peff.net>
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> --- Arguably this setup could be done once and then reused by several tests, which would be a bit more efficient. But the whole script is written in this "remake repos fresh" style, so I didn't look into switching it.
t/t5545-push-options.sh | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-)
diff --git a/t/t5545-push-options.sh b/t/t5545-push-options.sh index 463783789c..c64dee2127 100755 --- a/t/t5545-push-options.sh +++ b/t/t5545-push-options.sh @@ -220,14 +220,20 @@ test_expect_success 'invalid push option in config' ' . "$TEST_DIRECTORY"/lib-httpd.sh 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 \"$HTTPD_DOCUMENT_ROOT_PATH\"/upstream.git" && + test_when_finished 'rm -rf "$HTTPD_DOCUMENT_ROOT_PATH"/upstream.git' && mk_repo_pair && - git -C upstream config receive.advertisePushOptions false && + git -C upstream config receive.advertisePushOptions "$1" && 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 && + 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_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 && @@ -235,13 +241,7 @@ test_expect_success 'push option denied properly by http server' ' ' test_expect_success 'push options work properly across http' ' - test_when_finished "rm -rf test_http_clone" && - 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 && + mk_http_pair true && test_commit -C test_http_clone one && git -C test_http_clone push origin master &&
-- 2.16.2.552.gea2a3cf654