t5500: add test cases for diag-url
Add test cases using git fetch-pack --diag-url: - parse out host and path for URLs with a scheme (git:// file:// ssh://) - parse host names embedded by [] correctly - extract the port number, if present - separate URLs like "file" (which are local) from URLs like "host:repo" which should use ssh Signed-off-by: Torsten Bögershausen <tboegi@web.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
5610b7c0c6
commit
854aeb7beb
@ -531,5 +531,64 @@ test_expect_success 'shallow fetch with tags does not break the repository' '
|
|||||||
git fsck
|
git fsck
|
||||||
)
|
)
|
||||||
'
|
'
|
||||||
|
check_prot_path () {
|
||||||
|
cat >expected <<-EOF &&
|
||||||
|
Diag: url=$1
|
||||||
|
Diag: protocol=$2
|
||||||
|
Diag: path=$3
|
||||||
|
EOF
|
||||||
|
git fetch-pack --diag-url "$1" | grep -v hostandport= >actual &&
|
||||||
|
test_cmp expected actual
|
||||||
|
}
|
||||||
|
|
||||||
|
check_prot_host_path () {
|
||||||
|
cat >expected <<-EOF &&
|
||||||
|
Diag: url=$1
|
||||||
|
Diag: protocol=$2
|
||||||
|
Diag: hostandport=$3
|
||||||
|
Diag: path=$4
|
||||||
|
EOF
|
||||||
|
git fetch-pack --diag-url "$1" >actual &&
|
||||||
|
test_cmp expected actual
|
||||||
|
}
|
||||||
|
|
||||||
|
for r in repo re:po re/po
|
||||||
|
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
|
||||||
|
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"
|
||||||
|
'
|
||||||
|
# "/~" -> "~" conversion
|
||||||
|
test_expect_success "fetch-pack --diag-url $p://$h/~$r" '
|
||||||
|
check_prot_host_path $p://$h/~$r $pp "$hh" "~$r"
|
||||||
|
'
|
||||||
|
done
|
||||||
|
done
|
||||||
|
# file with scheme
|
||||||
|
for p in file
|
||||||
|
do
|
||||||
|
test_expect_success "fetch-pack --diag-url $p://$h/$r" '
|
||||||
|
check_prot_path $p://$h/$r $p "/$r"
|
||||||
|
'
|
||||||
|
# No "/~" -> "~" conversion for file
|
||||||
|
test_expect_success "fetch-pack --diag-url $p://$h/~$r" '
|
||||||
|
check_prot_path $p://$h/~$r $p "/~$r"
|
||||||
|
'
|
||||||
|
done
|
||||||
|
done
|
||||||
|
|
||||||
test_done
|
test_done
|
||||||
|
Loading…
Reference in New Issue
Block a user