From: Tarmigan Casebolt <tarmigan+git@gmail.com>
To: git@vger.kernel.org
Cc: spearce@spearce.org, gitster@pobox.com,
Tarmigan Casebolt <tarmigan+git@gmail.com>
Subject: [PATCH RFC 2/2] Smart-http tests: Test http-backend without curl or a webserver
Date: Wed, 30 Dec 2009 13:59:02 -0500 [thread overview]
Message-ID: <1262199542-73876-2-git-send-email-tarmigan+git@gmail.com> (raw)
In-Reply-To: <1262199542-73876-1-git-send-email-tarmigan+git@gmail.com>
This reuses many of the tests from t5560 but runs those tests without curl
or a webserver. This will hopefully increase the testing coverage for
http-backend because it does not require users to set GIT_TEST_HTTPD.
Signed-off-by: Tarmigan Casebolt <tarmigan+git@gmail.com>
---
In addition to the rebase, I fixed a bunch of bugs in this version. I'm
still leaving this as RFC as there may be some more.
t/t5561-http-backend-noserver.sh | 49 ++++++++++++++++++++++---------------
t/t556x_common | 3 ++
2 files changed, 32 insertions(+), 20 deletions(-)
diff --git a/t/t5561-http-backend-noserver.sh b/t/t5561-http-backend-noserver.sh
index 501b328..bda5029 100755
--- a/t/t5561-http-backend-noserver.sh
+++ b/t/t5561-http-backend-noserver.sh
@@ -5,40 +5,49 @@ test_description='test git-http-backend-noserver'
HTTPD_DOCUMENT_ROOT_PATH="$TRASH_DIRECTORY"
+run_backend() {
+ echo "$3"| \
+ QUERY_STRING="${2#*\?}" \
+ GIT_PROJECT_ROOT="$HTTPD_DOCUMENT_ROOT_PATH" \
+ PATH_INFO="${2%%\?*}" \
+ git http-backend >act.out 2>act.err
+}
+
GET() {
- return 0
+ REQUEST_METHOD="GET" \
+ run_backend 0 "/repo.git/$1" &&
+ grep "Status" act.out >act
+ if [ $? -eq 1 ];
+ then
+ printf "Status: 200 OK\r\n" > act
+ fi
+ printf "Status: $2\r\n" > exp &&
+ test_cmp exp act
}
POST() {
- return 0
+ REQUEST_METHOD="POST" \
+ CONTENT_TYPE="application/x-$1-request" \
+ run_backend 0 "/repo.git/$1" "$2" &&
+ grep "Status" act.out >act
+ if [ $? -eq 1 ];
+ then
+ printf "Status: 200 OK\r\n" > act
+ fi
+ printf "Status: $3\r\n" > exp &&
+ test_cmp exp act
}
-logdiv() {
+log_div() {
return 0
}
. "$TEST_DIRECTORY"/t556x_common
-run_backend() {
- REQUEST_METHOD=GET \
- GIT_PROJECT_ROOT="$HTTPD_DOCUMENT_ROOT_PATH" \
- PATH_INFO="$2" \
- git http-backend >act.out 2>act.err
-}
-
-path_info() {
- if test $1 = 0; then
- run_backend "$2"
- else
- test_must_fail 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 &&
+ REQUEST_METHOD="GET" &&
run_backend 0 /repo.git/HEAD &&
run_backend 1 /repo.git/../HEAD &&
diff --git a/t/t556x_common b/t/t556x_common
index 1b4921c..be024e5 100755
--- a/t/t556x_common
+++ b/t/t556x_common
@@ -50,6 +50,7 @@ get_static_files() {
}
SMART=smart
+export GIT_HTTP_EXPORT_ALL=1
test_expect_success 'direct refs/heads/master not found' '
log_div "refs/heads/master"
GET refs/heads/master "404 Not Found"
@@ -59,6 +60,7 @@ test_expect_success 'static file is ok' '
get_static_files "200 OK"
'
SMART=smart_noexport
+unset GIT_HTTP_EXPORT_ALL
test_expect_success 'no export by default' '
log_div "no git-daemon-export-ok"
get_static_files "404 Not Found"
@@ -71,6 +73,7 @@ test_expect_success 'export if git-daemon-export-ok' '
get_static_files "200 OK"
'
SMART=smart
+export GIT_HTTP_EXPORT_ALL=1
test_expect_success 'static file if http.getanyfile true is ok' '
log_div "getanyfile true"
config http.getanyfile true &&
--
1.6.6
next prev parent reply other threads:[~2009-12-30 18:59 UTC|newest]
Thread overview: 31+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-12-28 22:04 [PATCH RFC 1/2] Smart-http tests: Break test t5560-http-backend into pieces Tarmigan Casebolt
2009-12-28 22:04 ` [PATCH RFC 2/2] Smart-http tests: Test http-backend without curl or a webserver Tarmigan Casebolt
2009-12-30 17:54 ` [PATCH RFC 1/2] Smart-http tests: Break test t5560-http-backend into pieces Junio C Hamano
2009-12-30 18:09 ` Tarmigan
2009-12-30 18:59 ` Tarmigan Casebolt
2009-12-30 18:59 ` Tarmigan Casebolt [this message]
2010-01-01 5:15 ` Junio C Hamano
2010-01-02 20:44 ` Tarmigan
2010-01-02 20:45 ` [PATCH v3 RFC 1/3] Smart-http tests: Improve coverage in test t5560 Tarmigan Casebolt
2010-01-02 20:54 ` Shawn O. Pearce
2010-01-02 20:45 ` [PATCH v3 2/3] Smart-http tests: Break test t5560-http-backend into pieces Tarmigan Casebolt
2010-01-02 20:59 ` Shawn O. Pearce
2010-01-02 21:38 ` [PATCH v4 1/3] Smart-http tests: Improve coverage in test t5560 Tarmigan Casebolt
2010-01-02 21:38 ` [PATCH v4 2/3] Smart-http tests: Break test t5560-http-backend into pieces Tarmigan Casebolt
2010-01-02 21:38 ` [PATCH v4 3/3] Smart-http tests: Test http-backend without curl or a webserver Tarmigan Casebolt
2010-01-02 20:45 ` [PATCH v3 " Tarmigan Casebolt
2010-01-02 21:03 ` Shawn O. Pearce
2010-01-02 21:37 ` Tarmigan
2010-01-02 21:41 ` Shawn O. Pearce
2010-01-02 21:43 ` [PATCH v4 " Tarmigan Casebolt
2010-01-14 5:27 ` Michael Haggerty
2010-01-14 7:01 ` [PATCH] Test t5560: Fix test when run with dash Tarmigan Casebolt
2010-01-14 8:23 ` Michael Haggerty
2010-01-14 8:41 ` Junio C Hamano
2010-01-15 6:44 ` [PATCH v2] " Tarmigan Casebolt
2010-01-15 8:30 ` Johannes Sixt
2010-01-15 18:18 ` Junio C Hamano
2010-01-15 19:16 ` Johannes Sixt
2010-01-15 19:53 ` Junio C Hamano
2010-01-16 1:05 ` Junio C Hamano
2010-01-21 16:15 ` Michael Haggerty
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1262199542-73876-2-git-send-email-tarmigan+git@gmail.com \
--to=tarmigan+git@gmail.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=spearce@spearce.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.