mirror of
https://github.com/git/git.git
synced 2024-12-03 06:53:53 +08:00
ca386ee177
The recent cleanup in b7cbbff
switched t5532's use of
backticks to $(). This matches our normal shell style, which
is good. But it also breaks the test on Solaris, where
/bin/sh does not understand $().
Our normal shell style assumes a modern-ish shell which
knows about $(). However, some tests create small helper
scripts and just write "#!/bin/sh" into them. These scripts
either need to go back to using backticks, or they need to
respect $SHELL_PATH. The easiest way to do the latter is to
use write_script.
While we're at it, let's also stick the script creation
inside a test_expect block (our usual style), and split the
perl snippet into its own script (to prevent quoting
madness).
Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
47 lines
934 B
Bash
Executable File
47 lines
934 B
Bash
Executable File
#!/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
|
|
)
|
|
'
|
|
|
|
test_expect_success 'setup proxy script' '
|
|
write_script proxy-get-cmd "$PERL_PATH" <<-\EOF &&
|
|
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;
|
|
EOF
|
|
|
|
write_script proxy <<-\EOF
|
|
echo >&2 "proxying for $*"
|
|
cmd=$(./proxy-get-cmd)
|
|
echo >&2 "Running $cmd"
|
|
exec $cmd
|
|
EOF
|
|
'
|
|
|
|
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
|