Browse Source
* jk/git-connection-deadlock-fix: test core.gitproxy configuration send-pack: avoid deadlock on git:// push with failed pack-objects connect: let callers know if connection is a socket connect: treat generic proxy processes like ssh processes Conflicts: connect.cmaint
Junio C Hamano
14 years ago
4 changed files with 67 additions and 14 deletions
@ -0,0 +1,43 @@
@@ -0,0 +1,43 @@
|
||||
#!/bin/sh |
||||
|
||||
test_description='fetching via git:// using core.gitproxy' |
||||
. ./test-lib.sh |
||||
|
||||
test_expect_success 'setup remote repo' ' |
||||
git init remote && |
||||
(cd remote && |
||||
echo content >file && |
||||
git add file && |
||||
git commit -m one |
||||
) |
||||
' |
||||
|
||||
cat >proxy <<'EOF' |
||||
#!/bin/sh |
||||
echo >&2 "proxying for $*" |
||||
cmd=`perl -e ' |
||||
read(STDIN, $buf, 4); |
||||
my $n = hex($buf) - 4; |
||||
read(STDIN, $buf, $n); |
||||
my ($cmd, $other) = split /\0/, $buf; |
||||
# drop absolute-path on repo name |
||||
$cmd =~ s{ /}{ }; |
||||
print $cmd; |
||||
'` |
||||
echo >&2 "Running '$cmd'" |
||||
exec $cmd |
||||
EOF |
||||
chmod +x proxy |
||||
test_expect_success 'setup local repo' ' |
||||
git remote add fake git://example.com/remote && |
||||
git config core.gitproxy ./proxy |
||||
' |
||||
|
||||
test_expect_success 'fetch through proxy works' ' |
||||
git fetch fake && |
||||
echo one >expect && |
||||
git log -1 --format=%s FETCH_HEAD >actual && |
||||
test_cmp expect actual |
||||
' |
||||
|
||||
test_done |
Loading…
Reference in new issue