-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Smart-http tests: Break test t5560-http-backend into pieces
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>
- Loading branch information
Tarmigan Casebolt
authored and
Junio C Hamano
committed
Jan 6, 2010
1 parent
4301577
commit 04481ad
Showing
3 changed files
with
173 additions
and
147 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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" | ||
' |