From b9c8e1de4ae58e4fbf981dbcb8da7ce3078395b2 Mon Sep 17 00:00:00 2001 From: Chris Darroch Date: Thu, 18 Nov 2021 15:15:37 -0800 Subject: [PATCH] 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. --- t/t-ssh.sh | 35 +++++++++++++++++++++++++++++++++-- 1 file changed, 33 insertions(+), 2 deletions(-) diff --git a/t/t-ssh.sh b/t/t-ssh.sh index fcdb14da..d53bba41 100755 --- a/t/t-ssh.sh +++ b/t/t-ssh.sh @@ -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