t5603-clone-dirname uses url patterns that are not tested with
fetch-pack --diag-url, and it would be useful if they were.

Interestingly, some of those tests, involving both a port and a
user:password pair, don't currently pass. Note that even if a
user:password pair is actually not supported by git, the values used
could be valid user names (user names can actually contain colons
and at signs), and are still worth testing the url parser for.

Signed-off-by: Mike Hommey <m...@glandium.org>
---
 t/t5500-fetch-pack.sh | 38 ++++++++++++++++++++++++++++++++++----
 1 file changed, 34 insertions(+), 4 deletions(-)

Note I'm not /entirely/ sure about colons in user names, but ssh happily
sends requests to authenticate with logins containing colons. I however
*do* know it works with at signs (hg.mozilla.org ssh accounts are email
addresses).

diff --git a/t/t5500-fetch-pack.sh b/t/t5500-fetch-pack.sh
index e5f83bf..1f0133f 100755
--- a/t/t5500-fetch-pack.sh
+++ b/t/t5500-fetch-pack.sh
@@ -569,12 +569,27 @@ check_prot_host_port_path () {
        test_cmp expected actual
 }
 
-for r in repo re:po re/po
+test_maybe_fail () {
+       host=$1; shift
+       case $host in
+               git=*)
+               test_expect_success "$@"
+               ;;
+               *:*@*)
+               test_expect_failure "$@"
+               ;;
+               *)
+               test_expect_success "$@"
+               ;;
+       esac
+}
+
+for r in repo re:po re/po re@po
 do
        # git or ssh with scheme
        for p in "ssh+git" "git+ssh" git ssh
        do
-               for h in host user@host user@[::1] user@::1
+               for h in host user@host user@[::1] user@::1 user:password@host 
user:passw@rd@host
                do
                        for c in "" :
                        do
@@ -587,9 +602,12 @@ do
                                '
                        done
                done
-               for h in host User@host User@[::1]
+               for h in host User@host User@[::1] User:password@host 
User:passw@rd@host
                do
-                       test_expect_success "fetch-pack --diag-url 
$p://$h:22/$r" '
+                       test_maybe_fail "$p=$h" "fetch-pack --diag-url 
$p://$h:22/$r" '
+                               check_prot_host_port_path $p://$h:22/$r $p "$h" 
22 "/$r"
+                       '
+                       test_maybe_fail "$p=$h" "fetch-pack --diag-url 
$p://$h:22/$r" '
                                check_prot_host_port_path $p://$h:22/$r $p "$h" 
22 "/$r"
                        '
                done
@@ -628,6 +646,18 @@ do
                        check_prot_host_port_path $h:/~$r $p "$h" NONE "~$r"
                '
        done
+       #ssh without scheme with port
+       p=ssh
+       for h in host user@host user:password@host user:passw@rd@host
+       do
+               test_maybe_fail "$h" "fetch-pack --diag-url [$h:22]:$r" '
+                       check_prot_host_port_path [$h:22]:$r $p $h 22 "$r"
+               '
+               # Do "/~" -> "~" conversion
+               test_maybe_fail "$h" "fetch-pack --diag-url [$h:22]:/~$r" '
+                       check_prot_host_port_path [$h:22]:/~$r $p $h 22 "~$r"
+               '
+       done
 done
 
 test_expect_success MINGW 'fetch-pack --diag-url file://c:/repo' '
-- 
2.8.1.16.gaa70619.dirty

--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to