From 80fb18e3c0136150965f0bc01c9ef1e6dc4039ac Mon Sep 17 00:00:00 2001 From: =?utf8?q?Daniel=20Mart=C3=AD?= Date: Sat, 5 Oct 2019 15:08:07 +0100 Subject: [PATCH] cmd/go: avoid ssh known_hosts prompts on test MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit 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 --- src/cmd/go/testdata/script/mod_get_svn.txt | 13 +++++++++++++ 1 file changed, 13 insertions(+) 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 -- 2.50.0