Smart-http tests: Break test t5560-http-backend into pieces
authorTarmigan Casebolt <tarmigan+git@gmail.com>
Sat, 2 Jan 2010 21:38:06 +0000 (13:38 -0800)
committerJunio C Hamano <gitster@pobox.com>
Wed, 6 Jan 2010 09:18:32 +0000 (01:18 -0800)
This should introduce no functional change in the tests or the amount
of test coverage.

Acked-by: Shawn O. Pearce <spearce@spearce.org>
Signed-off-by: Tarmigan Casebolt <tarmigan+git@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
t/t5560-http-backend-noserver.sh [new file with mode: 0755]
t/t5561-http-backend.sh [moved from t/t5560-http-backend.sh with 52% similarity]
t/t556x_common [new file with mode: 0755]

diff --git a/t/t5560-http-backend-noserver.sh b/t/t5560-http-backend-noserver.sh
new file mode 100755 (executable)
index 0000000..a9ba2d9
--- /dev/null
@@ -0,0 +1,52 @@
+#!/bin/sh
+
+test_description='test git-http-backend-noserver'
+. ./test-lib.sh
+
+HTTPD_DOCUMENT_ROOT_PATH="$TRASH_DIRECTORY"
+
+run_backend() {
+       REQUEST_METHOD=GET \
+       GIT_PROJECT_ROOT="$HTTPD_DOCUMENT_ROOT_PATH" \
+       PATH_INFO="$1" \
+       git http-backend >act.out 2>act.err
+}
+
+GET() {
+       return 0
+}
+
+POST() {
+       return 0
+}
+
+log_div() {
+       return 0
+}
+
+. "$TEST_DIRECTORY"/t556x_common
+
+expect_aliased() {
+       if test $1 = 0; then
+               run_backend "$2"
+       else
+               run_backend "$2" &&
+               echo "fatal: '$2': aliased" >exp.err &&
+               test_cmp exp.err act.err
+       fi
+}
+
+test_expect_success 'http-backend blocks bad PATH_INFO' '
+       config http.getanyfile true &&
+
+       expect_aliased 0 /repo.git/HEAD &&
+
+       expect_aliased 1 /repo.git/../HEAD &&
+       expect_aliased 1 /../etc/passwd &&
+       expect_aliased 1 ../etc/passwd &&
+       expect_aliased 1 /etc//passwd &&
+       expect_aliased 1 /etc/./passwd &&
+       expect_aliased 1 //domain/data.txt
+'
+
+test_done
similarity index 52%
rename from t/t5560-http-backend.sh
rename to t/t5561-http-backend.sh
index 415a3683d48612ac9ceb50efcdf3c2c96b839072..8c6d0b2f20c803574af273b9d7c4ffd41870adcc 100755 (executable)
@@ -8,20 +8,10 @@ if test -n "$NO_CURL"; then
        test_done
 fi
 
-LIB_HTTPD_PORT=${LIB_HTTPD_PORT-'5560'}
+LIB_HTTPD_PORT=${LIB_HTTPD_PORT-'5561'}
 . "$TEST_DIRECTORY"/lib-httpd.sh
 start_httpd
 
-find_file() {
-       cd "$HTTPD_DOCUMENT_ROOT_PATH/repo.git" &&
-       find $1 -type f |
-       sed -e 1q
-}
-
-config() {
-       git --git-dir="$HTTPD_DOCUMENT_ROOT_PATH/repo.git" config $1 $2
-}
-
 GET() {
        curl --include "$HTTPD_URL/$SMART/repo.git/$1" >out 2>/dev/null &&
        tr '\015' Q <out |
@@ -52,142 +42,7 @@ log_div() {
        echo "###" >>"$HTTPD_ROOT_PATH"/access.log
 }
 
-test_expect_success 'setup repository' '
-       echo content >file &&
-       git add file &&
-       git commit -m one &&
-
-       mkdir "$HTTPD_DOCUMENT_ROOT_PATH/repo.git" &&
-       (cd "$HTTPD_DOCUMENT_ROOT_PATH/repo.git" &&
-        git --bare init &&
-        : >objects/info/alternates &&
-        : >objects/info/http-alternates
-       ) &&
-       git remote add public "$HTTPD_DOCUMENT_ROOT_PATH/repo.git" &&
-       git push public master:master &&
-
-       (cd "$HTTPD_DOCUMENT_ROOT_PATH/repo.git" &&
-        git repack -a -d
-       ) &&
-
-       echo other >file &&
-       git add file &&
-       git commit -m two &&
-       git push public master:master &&
-
-       LOOSE_URL=$(find_file objects/??) &&
-       PACK_URL=$(find_file objects/pack/*.pack) &&
-       IDX_URL=$(find_file objects/pack/*.idx)
-'
-
-get_static_files() {
-       GET HEAD "$1" &&
-       GET info/refs "$1" &&
-       GET objects/info/packs "$1" &&
-       GET objects/info/alternates "$1" &&
-       GET objects/info/http-alternates "$1" &&
-       GET $LOOSE_URL "$1" &&
-       GET $PACK_URL "$1" &&
-       GET $IDX_URL "$1"
-}
-
-SMART=smart
-test_expect_success 'direct refs/heads/master not found' '
-       log_div "refs/heads/master"
-       GET refs/heads/master "404 Not Found"
-'
-test_expect_success 'static file is ok' '
-       log_div "getanyfile default"
-       get_static_files "200 OK"
-'
-SMART=smart_noexport
-test_expect_success 'no export by default' '
-       log_div "no git-daemon-export-ok"
-       get_static_files "404 Not Found"
-'
-test_expect_success 'export if git-daemon-export-ok' '
-       log_div "git-daemon-export-ok"
-       (cd "$HTTPD_DOCUMENT_ROOT_PATH/repo.git" &&
-        touch git-daemon-export-ok
-       ) &&
-       get_static_files "200 OK"
-'
-SMART=smart
-test_expect_success 'static file if http.getanyfile true is ok' '
-       log_div "getanyfile true"
-       config http.getanyfile true &&
-       get_static_files "200 OK"
-'
-test_expect_success 'static file if http.getanyfile false fails' '
-       log_div "getanyfile false"
-       config http.getanyfile false &&
-       get_static_files "403 Forbidden"
-'
-
-test_expect_success 'http.uploadpack default enabled' '
-       log_div "uploadpack default"
-       GET info/refs?service=git-upload-pack "200 OK"  &&
-       POST git-upload-pack 0000 "200 OK"
-'
-test_expect_success 'http.uploadpack true' '
-       log_div "uploadpack true"
-       config http.uploadpack true &&
-       GET info/refs?service=git-upload-pack "200 OK" &&
-       POST git-upload-pack 0000 "200 OK"
-'
-test_expect_success 'http.uploadpack false' '
-       log_div "uploadpack false"
-       config http.uploadpack false &&
-       GET info/refs?service=git-upload-pack "403 Forbidden" &&
-       POST git-upload-pack 0000 "403 Forbidden"
-'
-
-test_expect_success 'http.receivepack default disabled' '
-       log_div "receivepack default"
-       GET info/refs?service=git-receive-pack "403 Forbidden"  &&
-       POST git-receive-pack 0000 "403 Forbidden"
-'
-test_expect_success 'http.receivepack true' '
-       log_div "receivepack true"
-       config http.receivepack true &&
-       GET info/refs?service=git-receive-pack "200 OK" &&
-       POST git-receive-pack 0000 "200 OK"
-'
-test_expect_success 'http.receivepack false' '
-       log_div "receivepack false"
-       config http.receivepack false &&
-       GET info/refs?service=git-receive-pack "403 Forbidden" &&
-       POST git-receive-pack 0000 "403 Forbidden"
-'
-run_backend() {
-       REQUEST_METHOD=GET \
-       GIT_PROJECT_ROOT="$HTTPD_DOCUMENT_ROOT_PATH" \
-       PATH_INFO="$1" \
-       git http-backend >act.out 2>act.err
-}
-
-expect_aliased() {
-       if test $1 = 0; then
-               run_backend "$2"
-       else
-               run_backend "$2" &&
-               echo "fatal: '$2': aliased" >exp.err &&
-               test_cmp exp.err act.err
-       fi
-}
-
-test_expect_success 'http-backend blocks bad PATH_INFO' '
-       config http.getanyfile true &&
-
-       expect_aliased 0 /repo.git/HEAD &&
-
-       expect_aliased 1 /repo.git/../HEAD &&
-       expect_aliased 1 /../etc/passwd &&
-       expect_aliased 1 ../etc/passwd &&
-       expect_aliased 1 /etc//passwd &&
-       expect_aliased 1 /etc/./passwd &&
-       expect_aliased 1 //domain/data.txt
-'
+. "$TEST_DIRECTORY"/t556x_common
 
 cat >exp <<EOF
 
diff --git a/t/t556x_common b/t/t556x_common
new file mode 100755 (executable)
index 0000000..1b4921c
--- /dev/null
@@ -0,0 +1,119 @@
+#!/bin/sh
+
+find_file() {
+       cd "$HTTPD_DOCUMENT_ROOT_PATH/repo.git" &&
+       find $1 -type f |
+       sed -e 1q
+}
+
+config() {
+       git --git-dir="$HTTPD_DOCUMENT_ROOT_PATH/repo.git" config $1 $2
+}
+
+test_expect_success 'setup repository' '
+       echo content >file &&
+       git add file &&
+       git commit -m one &&
+
+       mkdir "$HTTPD_DOCUMENT_ROOT_PATH/repo.git" &&
+       (cd "$HTTPD_DOCUMENT_ROOT_PATH/repo.git" &&
+        git --bare init &&
+        : >objects/info/alternates &&
+        : >objects/info/http-alternates
+       ) &&
+       git remote add public "$HTTPD_DOCUMENT_ROOT_PATH/repo.git" &&
+       git push public master:master &&
+
+       (cd "$HTTPD_DOCUMENT_ROOT_PATH/repo.git" &&
+        git repack -a -d
+       ) &&
+
+       echo other >file &&
+       git add file &&
+       git commit -m two &&
+       git push public master:master &&
+
+       LOOSE_URL=$(find_file objects/??) &&
+       PACK_URL=$(find_file objects/pack/*.pack) &&
+       IDX_URL=$(find_file objects/pack/*.idx)
+'
+
+get_static_files() {
+       GET HEAD "$1" &&
+       GET info/refs "$1" &&
+       GET objects/info/packs "$1" &&
+       GET objects/info/alternates "$1" &&
+       GET objects/info/http-alternates "$1" &&
+       GET $LOOSE_URL "$1" &&
+       GET $PACK_URL "$1" &&
+       GET $IDX_URL "$1"
+}
+
+SMART=smart
+test_expect_success 'direct refs/heads/master not found' '
+       log_div "refs/heads/master"
+       GET refs/heads/master "404 Not Found"
+'
+test_expect_success 'static file is ok' '
+       log_div "getanyfile default"
+       get_static_files "200 OK"
+'
+SMART=smart_noexport
+test_expect_success 'no export by default' '
+       log_div "no git-daemon-export-ok"
+       get_static_files "404 Not Found"
+'
+test_expect_success 'export if git-daemon-export-ok' '
+       log_div "git-daemon-export-ok"
+        (cd "$HTTPD_DOCUMENT_ROOT_PATH/repo.git" &&
+        touch git-daemon-export-ok
+       ) &&
+        get_static_files "200 OK"
+'
+SMART=smart
+test_expect_success 'static file if http.getanyfile true is ok' '
+       log_div "getanyfile true"
+       config http.getanyfile true &&
+       get_static_files "200 OK"
+'
+test_expect_success 'static file if http.getanyfile false fails' '
+       log_div "getanyfile false"
+       config http.getanyfile false &&
+       get_static_files "403 Forbidden"
+'
+
+test_expect_success 'http.uploadpack default enabled' '
+       log_div "uploadpack default"
+       GET info/refs?service=git-upload-pack "200 OK"  &&
+       POST git-upload-pack 0000 "200 OK"
+'
+test_expect_success 'http.uploadpack true' '
+       log_div "uploadpack true"
+       config http.uploadpack true &&
+       GET info/refs?service=git-upload-pack "200 OK" &&
+       POST git-upload-pack 0000 "200 OK"
+'
+test_expect_success 'http.uploadpack false' '
+       log_div "uploadpack false"
+       config http.uploadpack false &&
+       GET info/refs?service=git-upload-pack "403 Forbidden" &&
+       POST git-upload-pack 0000 "403 Forbidden"
+'
+
+test_expect_success 'http.receivepack default disabled' '
+       log_div "receivepack default"
+       GET info/refs?service=git-receive-pack "403 Forbidden"  &&
+       POST git-receive-pack 0000 "403 Forbidden"
+'
+test_expect_success 'http.receivepack true' '
+       log_div "receivepack true"
+       config http.receivepack true &&
+       GET info/refs?service=git-receive-pack "200 OK" &&
+       POST git-receive-pack 0000 "200 OK"
+'
+test_expect_success 'http.receivepack false' '
+       log_div "receivepack false"
+       config http.receivepack false &&
+       GET info/refs?service=git-receive-pack "403 Forbidden" &&
+       POST git-receive-pack 0000 "403 Forbidden"
+'