@@ -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