t0005: fix broken &&-chains
[gitweb.git] / t / t5500-fetch-pack.sh
index 545dd7b8e1cdb4fa989846fba10a314154629a45..692d71738b15eac20029a7ce667db9d398d944d0 100755 (executable)
@@ -414,7 +414,7 @@ test_expect_success 'setup tests for the --stdin parameter' '
        do
                git tag $head $head
        done &&
-       cat >input <<-\EOF
+       cat >input <<-\EOF &&
        refs/heads/C
        refs/heads/A
        refs/heads/D
@@ -541,13 +541,30 @@ check_prot_path () {
        test_cmp expected actual
 }
 
-check_prot_host_path () {
-       cat >expected <<-EOF &&
+check_prot_host_port_path () {
+       local diagport
+       case "$2" in
+               *ssh*)
+               pp=ssh
+               uah=userandhost
+               ehost=$(echo $3 | tr -d "[]")
+               diagport="Diag: port=$4"
+               ;;
+               *)
+               pp=$p
+               uah=hostandport
+               ehost=$(echo $3$4 | sed -e "s/22$/:22/" -e "s/NONE//")
+               diagport=""
+               ;;
+       esac
+       cat >exp <<-EOF &&
        Diag: url=$1
-       Diag: protocol=$2
-       Diag: hostandport=$3
-       Diag: path=$4
+       Diag: protocol=$pp
+       Diag: $uah=$ehost
+       $diagport
+       Diag: path=$5
        EOF
+       grep -v "^$" exp >expected
        git fetch-pack --diag-url "$1" >actual &&
        test_cmp expected actual
 }
@@ -557,24 +574,20 @@ do
        # git or ssh with scheme
        for p in "ssh+git" "git+ssh" git ssh
        do
-               for h in host host:12 [::1] [::1]:23
+               for h in host user@host user@[::1] user@::1
                do
-                       case "$p" in
-                       *ssh*)
-                               hh=$(echo $h | tr -d "[]")
-                               pp=ssh
-                               ;;
-                       *)
-                               hh=$h
-                               pp=$p
-                       ;;
-                       esac
                        test_expect_success "fetch-pack --diag-url $p://$h/$r" '
-                               check_prot_host_path $p://$h/$r $pp "$hh" "/$r"
+                               check_prot_host_port_path $p://$h/$r $p "$h" NONE "/$r"
                        '
                        # "/~" -> "~" conversion
                        test_expect_success "fetch-pack --diag-url $p://$h/~$r" '
-                               check_prot_host_path $p://$h/~$r $pp "$hh" "~$r"
+                               check_prot_host_port_path $p://$h/~$r $p "$h" NONE "~$r"
+                       '
+               done
+               for h in host User@host User@[::1]
+               do
+                       test_expect_success "fetch-pack --diag-url $p://$h:22/$r" '
+                               check_prot_host_port_path $p://$h:22/$r $p "$h" 22 "/$r"
                        '
                done
        done
@@ -589,6 +602,36 @@ do
                        check_prot_path $p://$h/~$r $p "/~$r"
                '
        done
+       # file without scheme
+       for h in nohost nohost:12 [::1] [::1]:23 [ [:aa
+       do
+               test_expect_success "fetch-pack --diag-url ./$h:$r" '
+                       check_prot_path ./$h:$r $p "./$h:$r"
+               '
+               # No "/~" -> "~" conversion for file
+               test_expect_success "fetch-pack --diag-url ./$p:$h/~$r" '
+               check_prot_path ./$p:$h/~$r $p "./$p:$h/~$r"
+               '
+       done
+       #ssh without scheme
+       p=ssh
+       for h in host [::1]
+       do
+               test_expect_success "fetch-pack --diag-url $h:$r" '
+                       check_prot_host_port_path $h:$r $p "$h" NONE "$r"
+               '
+               # Do "/~" -> "~" conversion
+               test_expect_success "fetch-pack --diag-url $h:/~$r" '
+                       check_prot_host_port_path $h:/~$r $p "$h" NONE "~$r"
+               '
+       done
 done
 
+test_expect_success MINGW 'fetch-pack --diag-url file://c:/repo' '
+       check_prot_path file://c:/repo file c:/repo
+'
+test_expect_success MINGW 'fetch-pack --diag-url c:repo' '
+       check_prot_path c:repo file c:repo
+'
+
 test_done