Smart-http tests: Improve coverage in test t5560
authorTarmigan Casebolt <tarmigan+git@gmail.com>
Sat, 2 Jan 2010 21:38:05 +0000 (13:38 -0800)
committerJunio C Hamano <gitster@pobox.com>
Wed, 6 Jan 2010 09:16:54 +0000 (01:16 -0800)
Commit 34b6cb8bb ("http-backend: Protect GIT_PROJECT_ROOT from /../
requests") added the path_info helper function to test t5560 but did
not use it.  We should use it as it provides another level of error
checking.

The /etc/.../passwd case is one that is not special (and the test
fails for reasons other than being aliased), so we remove that test
case.

Also rename the function from 'path_info' to 'expect_aliased'.

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.sh

index 604ff4fe9db1965bf00572776299e3b7915809cc..415a3683d48612ac9ceb50efcdf3c2c96b839072 100755 (executable)
@@ -162,15 +162,15 @@ test_expect_success 'http.receivepack false' '
 run_backend() {
        REQUEST_METHOD=GET \
        GIT_PROJECT_ROOT="$HTTPD_DOCUMENT_ROOT_PATH" \
-       PATH_INFO="$2" \
+       PATH_INFO="$1" \
        git http-backend >act.out 2>act.err
 }
 
-path_info() {
+expect_aliased() {
        if test $1 = 0; then
                run_backend "$2"
        else
-               test_must_fail run_backend "$2" &&
+               run_backend "$2" &&
                echo "fatal: '$2': aliased" >exp.err &&
                test_cmp exp.err act.err
        fi
@@ -179,15 +179,14 @@ path_info() {
 test_expect_success 'http-backend blocks bad PATH_INFO' '
        config http.getanyfile true &&
 
-       run_backend 0 /repo.git/HEAD &&
+       expect_aliased 0 /repo.git/HEAD &&
 
-       run_backend 1 /repo.git/../HEAD &&
-       run_backend 1 /../etc/passwd &&
-       run_backend 1 ../etc/passwd &&
-       run_backend 1 /etc//passwd &&
-       run_backend 1 /etc/./passwd &&
-       run_backend 1 /etc/.../passwd &&
-       run_backend 1 //domain/data.txt
+       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
 '
 
 cat >exp <<EOF