These tests require a webserver. The executable path and listening port are configured using the environment variables HTTPD_PATH (default: /usr/sbin/apache2) and HTTPD_PORT (default: 8111), respectively. Signed-off-by: Clemens Buchacher <drizzd@xxxxxx> --- t/t5540-http-push.sh | 97 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 97 insertions(+), 0 deletions(-) create mode 100644 t/t5540-http-push.sh diff --git a/t/t5540-http-push.sh b/t/t5540-http-push.sh new file mode 100644 index 0000000..60210ff --- /dev/null +++ b/t/t5540-http-push.sh @@ -0,0 +1,97 @@ +#!/bin/sh +# +# Copyright (c) 2008 Clemens Buchacher <drizzd@xxxxxx> +# + +test_description='test http-push + +This test runs various sanity checks on http-push.' + +. ./test-lib.sh + +HTTPD_PATH=${HTTPD_PATH-'/usr/sbin/apache2'} +HTTPD_PORT=${HTTPD_PORT-'8111'} + +if ! test -x "$HTTPD_PATH" +then + test_expect_success 'skipping http-push tests, no suitable webserver' : + test_done + exit +fi + +TRASH_PATH=$PWD + +start_httpd() { + cat > "$TRASH_PATH/httpd.conf" <<EOF +ServerRoot "$TRASH_PATH" +PidFile "$TRASH_PATH/httpd.pid" +DocumentRoot "$TRASH_PATH" +ErrorLog "$TRASH_PATH/error.log" +Listen 127.0.0.1:$HTTPD_PORT +LoadModule dav_module /usr/lib/apache2/modules/mod_dav.so +LoadModule dav_fs_module /usr/lib/apache2/modules/mod_dav_fs.so +DAVLockDB DAVLock +<Location /> + Dav on +</Location> +EOF + + "$HTTPD_PATH" -f "$TRASH_PATH"/httpd.conf -k start +} + +stop_httpd() { + "$HTTPD_PATH" -f "$TRASH_PATH"/httpd.conf -k stop +} + +test_expect_success 'setup webserver' ' + start_httpd +' + +test_expect_success 'setup remote repository' ' + cd "$TRASH_PATH" && + mkdir test_repo && + cd test_repo && + git init && + : >path1 && + git add path1 && + test_tick && + git commit -m initial && + cd - && + git clone --bare test_repo test_repo.git && + cd test_repo.git && + git --bare update-server-info && + chmod +x hooks/post-update +' + +test_expect_success 'clone remote repository' ' + cd "$TRASH_PATH" && + git clone http://127.0.0.1:$HTTPD_PORT/test_repo.git test_repo_clone +' + +test_expect_success 'push to remote repository' ' + cd "$TRASH_PATH"/test_repo_clone && + : >path2 && + git add path2 && + test_tick && + git commit -m path2 && + git push +' + +test_expect_success 'create and delete remote branch' ' + cd "$TRASH_PATH"/test_repo_clone && + git checkout -b dev && + : >path3 && + git add path3 && + test_tick && + git commit -m dev && + git push origin dev && + git fetch && + git push origin :dev && + git branch -d -r origin/dev && + git fetch && + ! git show-ref --verify refs/remotes/origin/dev +' + +stop_httpd + +test_done -- 1.5.4.2.156.ge3c5 - To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html