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
|
||||
)
|
||||
'
|
||||
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
|
||||
|
Loading…
Reference in New Issue
Block a user