Skip to content

Commit edc325d

Browse files
drakkangopherbot
authored andcommitted
ssh: fix call to Fatalf from a non-test goroutine
Also fix some redundant type declarations. Change-Id: Iad2950b67b1ec2e2590c59393b8ad15421ed3add GitHub-Last-Rev: 41cf552 GitHub-Pull-Request: #263 Reviewed-on: https://go-review.googlesource.com/c/crypto/+/505798 Reviewed-by: Dmitri Shuralyov <[email protected]> Reviewed-by: David Chase <[email protected]> TryBot-Result: Gopher Robot <[email protected]> Auto-Submit: Dmitri Shuralyov <[email protected]> Reviewed-by: Filippo Valsorda <[email protected]> Run-TryBot: Filippo Valsorda <[email protected]>
1 parent eab9315 commit edc325d

8 files changed

+140
-73
lines changed

ssh/agent/client_test.go

+2-1
Original file line numberDiff line numberDiff line change
@@ -369,7 +369,8 @@ func TestAuth(t *testing.T) {
369369
go func() {
370370
conn, _, _, err := ssh.NewServerConn(a, &serverConf)
371371
if err != nil {
372-
t.Fatalf("Server: %v", err)
372+
t.Errorf("NewServerConn error: %v", err)
373+
return
373374
}
374375
conn.Close()
375376
}()

ssh/agent/server_test.go

+6-3
Original file line numberDiff line numberDiff line change
@@ -53,10 +53,11 @@ func TestSetupForwardAgent(t *testing.T) {
5353
incoming := make(chan *ssh.ServerConn, 1)
5454
go func() {
5555
conn, _, _, err := ssh.NewServerConn(a, &serverConf)
56+
incoming <- conn
5657
if err != nil {
57-
t.Fatalf("Server: %v", err)
58+
t.Errorf("NewServerConn error: %v", err)
59+
return
5860
}
59-
incoming <- conn
6061
}()
6162

6263
conf := ssh.ClientConfig{
@@ -71,8 +72,10 @@ func TestSetupForwardAgent(t *testing.T) {
7172
if err := ForwardToRemote(client, socket); err != nil {
7273
t.Fatalf("SetupForwardAgent: %v", err)
7374
}
74-
7575
server := <-incoming
76+
if server == nil {
77+
t.Fatal("Unable to get server")
78+
}
7679
ch, reqs, err := server.OpenChannel(channelType, nil)
7780
if err != nil {
7881
t.Fatalf("OpenChannel(%q): %v", channelType, err)

ssh/benchmark_test.go

+4-3
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ package ssh
66

77
import (
88
"errors"
9+
"fmt"
910
"io"
1011
"net"
1112
"testing"
@@ -90,16 +91,16 @@ func BenchmarkEndToEnd(b *testing.B) {
9091
go func() {
9192
newCh, err := server.Accept()
9293
if err != nil {
93-
b.Fatalf("Client: %v", err)
94+
panic(fmt.Sprintf("Client: %v", err))
9495
}
9596
ch, incoming, err := newCh.Accept()
9697
if err != nil {
97-
b.Fatalf("Accept: %v", err)
98+
panic(fmt.Sprintf("Accept: %v", err))
9899
}
99100
go DiscardRequests(incoming)
100101
for i := 0; i < b.N; i++ {
101102
if _, err := io.ReadFull(ch, output); err != nil {
102-
b.Fatalf("ReadFull: %v", err)
103+
panic(fmt.Sprintf("ReadFull: %v", err))
103104
}
104105
}
105106
ch.Close()

ssh/common_test.go

+5-5
Original file line numberDiff line numberDiff line change
@@ -82,35 +82,35 @@ func TestFindAgreedAlgorithms(t *testing.T) {
8282
}
8383

8484
cases := []testcase{
85-
testcase{
85+
{
8686
name: "standard",
8787
},
8888

89-
testcase{
89+
{
9090
name: "no common hostkey",
9191
serverIn: kexInitMsg{
9292
ServerHostKeyAlgos: []string{"hostkey2"},
9393
},
9494
wantErr: true,
9595
},
9696

97-
testcase{
97+
{
9898
name: "no common kex",
9999
serverIn: kexInitMsg{
100100
KexAlgos: []string{"kex2"},
101101
},
102102
wantErr: true,
103103
},
104104

105-
testcase{
105+
{
106106
name: "no common cipher",
107107
serverIn: kexInitMsg{
108108
CiphersClientServer: []string{"cipher2"},
109109
},
110110
wantErr: true,
111111
},
112112

113-
testcase{
113+
{
114114
name: "client decides cipher",
115115
serverIn: kexInitMsg{
116116
CiphersClientServer: []string{"cipher1", "cipher2"},

ssh/handshake_test.go

+17-15
Original file line numberDiff line numberDiff line change
@@ -148,6 +148,7 @@ func TestHandshakeBasic(t *testing.T) {
148148
clientDone := make(chan int, 0)
149149
gotHalf := make(chan int, 0)
150150
const N = 20
151+
errorCh := make(chan error, 1)
151152

152153
go func() {
153154
defer close(clientDone)
@@ -158,7 +159,9 @@ func TestHandshakeBasic(t *testing.T) {
158159
for i := 0; i < N; i++ {
159160
p := []byte{msgRequestSuccess, byte(i)}
160161
if err := trC.writePacket(p); err != nil {
161-
t.Fatalf("sendPacket: %v", err)
162+
errorCh <- err
163+
trC.Close()
164+
return
162165
}
163166
if (i % 10) == 5 {
164167
<-gotHalf
@@ -177,16 +180,15 @@ func TestHandshakeBasic(t *testing.T) {
177180
checker.waitCall <- 1
178181
}
179182
}
183+
errorCh <- nil
180184
}()
181185

182186
// Server checks that client messages come in cleanly
183187
i := 0
184-
err = nil
185188
for ; i < N; i++ {
186-
var p []byte
187-
p, err = trS.readPacket()
188-
if err != nil {
189-
break
189+
p, err := trS.readPacket()
190+
if err != nil && err != io.EOF {
191+
t.Fatalf("server error: %v", err)
190192
}
191193
if (i % 10) == 5 {
192194
gotHalf <- 1
@@ -198,8 +200,8 @@ func TestHandshakeBasic(t *testing.T) {
198200
}
199201
}
200202
<-clientDone
201-
if err != nil && err != io.EOF {
202-
t.Fatalf("server error: %v", err)
203+
if err := <-errorCh; err != nil {
204+
t.Fatalf("sendPacket: %v", err)
203205
}
204206
if i != N {
205207
t.Errorf("received %d messages, want 10.", i)
@@ -345,16 +347,16 @@ func TestHandshakeAutoRekeyRead(t *testing.T) {
345347

346348
// While we read out the packet, a key change will be
347349
// initiated.
348-
done := make(chan int, 1)
350+
errorCh := make(chan error, 1)
349351
go func() {
350-
defer close(done)
351-
if _, err := trC.readPacket(); err != nil {
352-
t.Fatalf("readPacket(client): %v", err)
353-
}
354-
352+
_, err := trC.readPacket()
353+
errorCh <- err
355354
}()
356355

357-
<-done
356+
if err := <-errorCh; err != nil {
357+
t.Fatalf("readPacket(client): %v", err)
358+
}
359+
358360
<-sync.called
359361
}
360362

0 commit comments

Comments
 (0)