Skip to content

Commit 2292f58

Browse files
committed
crypto/ssh: fix tests on Go 1.7 on OpenBSD and Windows
Dialing the 0.0.0.0 address (as returned by net.Addr().String() for a net.Listen("tcp", ":1") address) is not yet guaranteed to work. It's currently OS-dependent. For some reason it works on Go 1.8+, but it hasn't yet been defined to work reliably. Fix the tests for now (since we need to support older Go releases), even if this might work in the future. Updates golang/go#18806 Change-Id: I2f0476b1d4f2673ab64ffedfa733f2d92fceb6ff Reviewed-on: https://go-review.googlesource.com/42496 Run-TryBot: Brad Fitzpatrick <[email protected]> Run-TryBot: Han-Wen Nienhuys <[email protected]> TryBot-Result: Gobot Gobot <[email protected]> Reviewed-by: Han-Wen Nienhuys <[email protected]>
1 parent 12e9ca7 commit 2292f58

File tree

2 files changed

+13
-7
lines changed

2 files changed

+13
-7
lines changed

ssh/agent/client_test.go

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -180,9 +180,12 @@ func TestCert(t *testing.T) {
180180
// therefore is buffered (net.Pipe deadlocks if both sides start with
181181
// a write.)
182182
func netPipe() (net.Conn, net.Conn, error) {
183-
listener, err := net.Listen("tcp", ":0")
183+
listener, err := net.Listen("tcp", "127.0.0.1:0")
184184
if err != nil {
185-
return nil, nil, err
185+
listener, err = net.Listen("tcp", "[::1]:0")
186+
if err != nil {
187+
return nil, nil, err
188+
}
186189
}
187190
defer listener.Close()
188191
c1, err := net.Dial("tcp", listener.Addr().String())
@@ -200,6 +203,9 @@ func netPipe() (net.Conn, net.Conn, error) {
200203
}
201204

202205
func TestAuth(t *testing.T) {
206+
agent, _, cleanup := startAgent(t)
207+
defer cleanup()
208+
203209
a, b, err := netPipe()
204210
if err != nil {
205211
t.Fatalf("netPipe: %v", err)
@@ -208,9 +214,6 @@ func TestAuth(t *testing.T) {
208214
defer a.Close()
209215
defer b.Close()
210216

211-
agent, _, cleanup := startAgent(t)
212-
defer cleanup()
213-
214217
if err := agent.Add(AddedKey{PrivateKey: testPrivateKeys["rsa"], Comment: "comment"}); err != nil {
215218
t.Errorf("Add: %v", err)
216219
}

ssh/handshake_test.go

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,9 +40,12 @@ func (t *testChecker) Check(dialAddr string, addr net.Addr, key PublicKey) error
4040
// therefore is buffered (net.Pipe deadlocks if both sides start with
4141
// a write.)
4242
func netPipe() (net.Conn, net.Conn, error) {
43-
listener, err := net.Listen("tcp", ":0")
43+
listener, err := net.Listen("tcp", "127.0.0.1:0")
4444
if err != nil {
45-
return nil, nil, err
45+
listener, err = net.Listen("tcp", "[::1]:0")
46+
if err != nil {
47+
return nil, nil, err
48+
}
4649
}
4750
defer listener.Close()
4851
c1, err := net.Dial("tcp", listener.Addr().String())

0 commit comments

Comments
 (0)