[!net] skip
[!exec:svn] skip

# 'go mod download' 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

# Attempting to get a module zip using svn should succeed.
go mod download vcs-test.golang.org/svn/hello.svn@000000000001
exists $GOPATH/pkg/mod/cache/download/vcs-test.golang.org/svn/hello.svn/@v/v0.0.0-20170922011245-000000000001.zip

# Attempting to get a nonexistent module using svn should fail with a
# reasonable message instead of a panic.
! go mod download vcs-test.golang.org/svn/nonexistent.svn@latest
! stderr panic
stderr 'go: module vcs-test.golang.org/svn/nonexistent.svn: no matching versions for query "latest"$'
