b9c8e1de4a
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.
64 lines
1.5 KiB
Bash
Executable File
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
|