git-lfs/t/t-ssh.sh
Chris Darroch b9c8e1de4a
t/t-ssh.sh: also perform test without ssh variant
It is currently possible to cause the "ssh with proxy
command in lfs.url" test to fail by setting the
GIT_SSH_VARIANT environment variable to something like
"simple".  This causes the error message from the
lfs-ssh-echo test helper program to contain a different
string, without the "--" end-of-options delimiter and
without a leading "-" character on the invalid argument,
because those are not included by Git LFS.

We therefore want to run two versions of this test, one
with GIT_SSH_VARIANT forcibly unset, to test the default
case, and one with that variable set but with a different
check on the error message from lfs-ssh-echo.

Also, in a previous commit we restored some of the argument
parsing logic in the lfs-ssh-echo test helper program,
so we now want to restore the check that the helper's error
message contains "git@127.0.0.1", not just a "-p" flag.
2021-11-30 20:23:35 +00:00

64 lines
1.5 KiB
Bash
Executable File

#!/usr/bin/env bash
. "$(dirname "$0")/testlib.sh"
begin_test "ssh with proxy command in lfs.url (default variant)"
(
set -e
reponame="batch-ssh-proxy-default"
setup_remote_repo "$reponame"
clone_repo "$reponame" "$reponame"
sshurl="${GITSERVER/http:\/\//ssh://-oProxyCommand=ssh-proxy-test/}/$reponame"
git config lfs.url "$sshurl"
contents="test"
oid="$(calc_oid "$contents")"
git lfs track "*.dat"
printf "%s" "$contents" > test.dat
git add .gitattributes test.dat
git commit -m "initial commit"
unset GIT_SSH_VARIANT
GIT_TRACE=1 git push origin main 2>&1 | tee push.log
if [ "0" -eq "${PIPESTATUS[0]}" ]; then
echo >&2 "fatal: push succeeded"
exit 1
fi
grep 'expected.*git@127.0.0.1' push.log
grep "lfs-ssh-echo -- -oProxyCommand" push.log
)
end_test
begin_test "ssh with proxy command in lfs.url (custom variant)"
(
set -e
reponame="batch-ssh-proxy-simple"
setup_remote_repo "$reponame"
clone_repo "$reponame" "$reponame"
sshurl="${GITSERVER/http:\/\//ssh://-oProxyCommand=ssh-proxy-test/}/$reponame"
git config lfs.url "$sshurl"
contents="test"
oid="$(calc_oid "$contents")"
git lfs track "*.dat"
printf "%s" "$contents" > test.dat
git add .gitattributes test.dat
git commit -m "initial commit"
export GIT_SSH_VARIANT=simple
GIT_TRACE=1 git push origin main 2>&1 | tee push.log
if [ "0" -eq "${PIPESTATUS[0]}" ]; then
echo >&2 "fatal: push succeeded"
exit 1
fi
grep 'expected.*git@127.0.0.1' push.log
grep "lfs-ssh-echo oProxyCommand" push.log
)
end_test