diff options
Diffstat (limited to 't/t5532-fetch-proxy.sh')
| -rwxr-xr-x | t/t5532-fetch-proxy.sh | 43 | 
1 files changed, 43 insertions, 0 deletions
diff --git a/t/t5532-fetch-proxy.sh b/t/t5532-fetch-proxy.sh new file mode 100755 index 0000000000..62f2460047 --- /dev/null +++ b/t/t5532-fetch-proxy.sh @@ -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  | 
