| #!/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_PATH" -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 |