From ae58a7bde0ebc1afab65a3bbcffcf63d4e7e7e9c Mon Sep 17 00:00:00 2001 From: Joel Sing Date: Mon, 12 Nov 2012 02:50:33 +1100 Subject: go.crypto/ssh: make tests work on non-cgo platforms. user.Current() currently requires cgo - if an error is returned attempt to get the username from the environment. R=golang-dev, minux.ma, bradfitz, dave CC=golang-dev https://golang.org/cl/6819113 --- ssh/test/test_unix_test.go | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) (limited to 'ssh') diff --git a/ssh/test/test_unix_test.go b/ssh/test/test_unix_test.go index ad10408..47a03d0 100644 --- a/ssh/test/test_unix_test.go +++ b/ssh/test/test_unix_test.go @@ -150,15 +150,26 @@ type server struct { output bytes.Buffer // holds stderr from sshd process } -func clientConfig() *ssh.ClientConfig { - user, err := user.Current() - if err != nil { - panic(err) +func username() string { + var username string + if user, err := user.Current(); err == nil { + username = user.Username + } else { + // user.Current() currently requires cgo. If an error is + // returned attempt to get the username from the environment. + username = os.Getenv("USER") + } + if username == "" { + panic("Unable to get username") } + return username +} + +func clientConfig() *ssh.ClientConfig { kc := new(keychain) kc.keys = append(kc.keys, rsakey) config := &ssh.ClientConfig{ - User: user.Username, + User: username(), Auth: []ssh.ClientAuth{ ssh.ClientAuthKeyring(kc), }, -- cgit v1.3-5-g9baa