From: Daniel Martí Date: Sat, 5 Oct 2019 14:08:07 +0000 (+0100) Subject: cmd/go: avoid ssh known_hosts prompts on test X-Git-Tag: go1.14beta1~846 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=80fb18e3c0136150965f0bc01c9ef1e6dc4039ac;p=gostls13.git cmd/go: avoid ssh known_hosts prompts on test TestScripts/mod_get_svn would stop with the following prompt if the real user didn't have vcs-test.golang.org in their known_hosts file: The authenticity of host 'vcs-test.golang.org (35.184.38.56)' can't be established. ECDSA key fingerprint is SHA256:[...] Are you sure you want to continue connecting (yes/no/[fingerprint])? This was bad because it relied on the user's real ssh known_hosts file. Worse even, if the user didn't expert or notice the prompt, it could hang a 'go test' run for quite a while. Work around that by forcing svn to not use ssh at all. Other potentially better approaches were tried, but none worked on svn 1.12.2 with openssh 8.0p1. Fixes #33883. Change-Id: I2f925fa892f2fa53c77d86b0034141162517ee69 Reviewed-on: https://go-review.googlesource.com/c/go/+/199142 Run-TryBot: Daniel Martí TryBot-Result: Gobot Gobot Reviewed-by: Brad Fitzpatrick --- diff --git a/src/cmd/go/testdata/script/mod_get_svn.txt b/src/cmd/go/testdata/script/mod_get_svn.txt index cd19d99dbc..1a5376dec0 100644 --- a/src/cmd/go/testdata/script/mod_get_svn.txt +++ b/src/cmd/go/testdata/script/mod_get_svn.txt @@ -1,6 +1,19 @@ [!net] skip [!exec:svn] skip +# 'go get' will fall back to svn+ssh once svn fails over protocols like https. +# If vcs-test.golang.org isn't in the user's known_hosts file, this will result +# in an ssh prompt, which will stop 'go test' entirely +# +# Unfortunately, there isn't a way to globally disable host checking for ssh, +# without modifying the real system's or user's configs. Changing $HOME won't +# affect ssh either, as it ignores the environment variable entirely. +# +# However, a useful trick is pointing SVN_SSH to a program that doesn't exist, +# resulting in svn skipping ssh entirely. Alternatives like +# SVN_SSH="ssh -o StrictHostKeyChecking=no" didn't avoid the prompt. +env SVN_SSH="svn_do_not_use_ssh" + env GO111MODULE=on env GOPROXY=direct env GOSUMDB=off