Skip to content

Commit dbb6ec1

Browse files
Bryan C. Millsgopherbot
Bryan C. Mills
authored andcommitted
ssh/test: skip tests on darwin that fail on the darwin-amd64-longtest LUCI builder
We don't yet understand why these tests fail, but the Apple sshd seems to have some non-trivial vendor patches, so it is plausibly a platform-specific bug in the test. Let's skip that failure mode on the whole platform until/unless someone has time to reproduce and investigate the failure. For golang/go#64959. Cq-Include-Trybots: luci.golang.try:x_crypto-gotip-darwin-amd64-longtest,x_crypto-gotip-linux-amd64-longtest,x_crypto-gotip-windows-amd64-longtest Change-Id: I9e43579469de3fe9329c093b5916bbed0edd3751 Reviewed-on: https://go-review.googlesource.com/c/crypto/+/554077 Reviewed-by: Dmitri Shuralyov <[email protected]> Reviewed-by: Dmitri Shuralyov <[email protected]> Reviewed-by: Nicola Murino <[email protected]> LUCI-TryBot-Result: Go LUCI <[email protected]> Auto-Submit: Bryan Mills <[email protected]>
1 parent 403f699 commit dbb6ec1

File tree

4 files changed

+29
-0
lines changed

4 files changed

+29
-0
lines changed

ssh/test/agent_unix_test.go

+1
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ func TestAgentForward(t *testing.T) {
3434

3535
sess, err := conn.NewSession()
3636
if err != nil {
37+
skipIfIssue64959(t, err)
3738
t.Fatalf("NewSession: %v", err)
3839
}
3940
if err := agent.RequestAgentForwarding(sess); err != nil {

ssh/test/dial_unix_test.go

+1
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,7 @@ func testDial(t *testing.T, n, listenAddr string, x dialTester) {
5353
// on the opened connection.
5454
cancel()
5555
if err != nil {
56+
skipIfIssue64959(t, err)
5657
t.Fatalf("Dial: %v", err)
5758
}
5859
x.TestClientConn(t, conn)

ssh/test/forward_unix_test.go

+10
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ import (
1212
"io"
1313
"math/rand"
1414
"net"
15+
"runtime"
1516
"testing"
1617
"time"
1718
)
@@ -27,6 +28,9 @@ func testPortForward(t *testing.T, n, listenAddr string) {
2728

2829
sshListener, err := conn.Listen(n, listenAddr)
2930
if err != nil {
31+
if runtime.GOOS == "darwin" && err == io.EOF {
32+
t.Skipf("skipping test broken on some versions of macOS; see https://go.dev/issue/64959")
33+
}
3034
t.Fatal(err)
3135
}
3236

@@ -122,6 +126,9 @@ func testAcceptClose(t *testing.T, n, listenAddr string) {
122126

123127
sshListener, err := conn.Listen(n, listenAddr)
124128
if err != nil {
129+
if runtime.GOOS == "darwin" && err == io.EOF {
130+
t.Skipf("skipping test broken on some versions of macOS; see https://go.dev/issue/64959")
131+
}
125132
t.Fatal(err)
126133
}
127134

@@ -163,6 +170,9 @@ func testPortForwardConnectionClose(t *testing.T, n, listenAddr string) {
163170

164171
sshListener, err := client.Listen(n, listenAddr)
165172
if err != nil {
173+
if runtime.GOOS == "darwin" && err == io.EOF {
174+
t.Skipf("skipping test broken on some versions of macOS; see https://go.dev/issue/64959")
175+
}
166176
t.Fatal(err)
167177
}
168178

ssh/test/session_test.go

+17
Original file line numberDiff line numberDiff line change
@@ -22,13 +22,21 @@ import (
2222
"golang.org/x/crypto/ssh"
2323
)
2424

25+
func skipIfIssue64959(t *testing.T, err error) {
26+
if err != nil && runtime.GOOS == "darwin" && strings.Contains(err.Error(), "ssh: unexpected packet in response to channel open: <nil>") {
27+
t.Helper()
28+
t.Skipf("skipping test broken on some versions of macOS; see https://go.dev/issue/64959")
29+
}
30+
}
31+
2532
func TestRunCommandSuccess(t *testing.T) {
2633
server := newServer(t)
2734
conn := server.Dial(clientConfig())
2835
defer conn.Close()
2936

3037
session, err := conn.NewSession()
3138
if err != nil {
39+
skipIfIssue64959(t, err)
3240
t.Fatalf("session failed: %v", err)
3341
}
3442
defer session.Close()
@@ -66,6 +74,7 @@ func TestRunCommandStdin(t *testing.T) {
6674

6775
session, err := conn.NewSession()
6876
if err != nil {
77+
skipIfIssue64959(t, err)
6978
t.Fatalf("session failed: %v", err)
7079
}
7180
defer session.Close()
@@ -88,6 +97,7 @@ func TestRunCommandStdinError(t *testing.T) {
8897

8998
session, err := conn.NewSession()
9099
if err != nil {
100+
skipIfIssue64959(t, err)
91101
t.Fatalf("session failed: %v", err)
92102
}
93103
defer session.Close()
@@ -111,6 +121,7 @@ func TestRunCommandFailed(t *testing.T) {
111121

112122
session, err := conn.NewSession()
113123
if err != nil {
124+
skipIfIssue64959(t, err)
114125
t.Fatalf("session failed: %v", err)
115126
}
116127
defer session.Close()
@@ -127,6 +138,7 @@ func TestRunCommandWeClosed(t *testing.T) {
127138

128139
session, err := conn.NewSession()
129140
if err != nil {
141+
skipIfIssue64959(t, err)
130142
t.Fatalf("session failed: %v", err)
131143
}
132144
err = session.Shell()
@@ -146,6 +158,7 @@ func TestFuncLargeRead(t *testing.T) {
146158

147159
session, err := conn.NewSession()
148160
if err != nil {
161+
skipIfIssue64959(t, err)
149162
t.Fatalf("unable to create new session: %s", err)
150163
}
151164

@@ -182,6 +195,7 @@ func TestKeyChange(t *testing.T) {
182195
for i := 0; i < 4; i++ {
183196
session, err := conn.NewSession()
184197
if err != nil {
198+
skipIfIssue64959(t, err)
185199
t.Fatalf("unable to create new session: %s", err)
186200
}
187201

@@ -223,6 +237,7 @@ func TestValidTerminalMode(t *testing.T) {
223237

224238
session, err := conn.NewSession()
225239
if err != nil {
240+
skipIfIssue64959(t, err)
226241
t.Fatalf("session failed: %v", err)
227242
}
228243
defer session.Close()
@@ -287,6 +302,7 @@ func TestWindowChange(t *testing.T) {
287302

288303
session, err := conn.NewSession()
289304
if err != nil {
305+
skipIfIssue64959(t, err)
290306
t.Fatalf("session failed: %v", err)
291307
}
292308
defer session.Close()
@@ -349,6 +365,7 @@ func testOneCipher(t *testing.T, cipher string, cipherOrder []string) {
349365
// Exercise receiving data from the server
350366
session, err := conn.NewSession()
351367
if err != nil {
368+
skipIfIssue64959(t, err)
352369
t.Fatalf("NewSession: %v", err)
353370
}
354371

0 commit comments

Comments
 (0)