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.
This commit is contained in:
Chris Darroch 2021-11-18 15:15:37 -08:00 committed by brian m. carlson
parent a106dcb1e0
commit b9c8e1de4a
No known key found for this signature in database
GPG Key ID: 2D0C9BC12F82B3A1

@ -2,11 +2,11 @@
. "$(dirname "$0")/testlib.sh"
begin_test "ssh with proxy command in lfs.url"
begin_test "ssh with proxy command in lfs.url (default variant)"
(
set -e
reponame="batch-ssh-proxy"
reponame="batch-ssh-proxy-default"
setup_remote_repo "$reponame"
clone_repo "$reponame" "$reponame"
@ -20,6 +20,7 @@ begin_test "ssh with proxy command in lfs.url"
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"
@ -30,3 +31,33 @@ begin_test "ssh with proxy command in lfs.url"
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