@@ -31,6 +31,7 @@ import (
3131 "strings"
3232 "testing"
3333 "time"
34+ "io"
3435
3536 "github.com/hyperledger/firefly-common/pkg/config"
3637 "github.com/stretchr/testify/assert"
@@ -100,28 +101,42 @@ func buildTLSListener(t *testing.T, conf config.Section, tlsType TLSType) (strin
100101 server , err := tls .Listen ("tcp4" , "127.0.0.1:0" , tlsConfig )
101102 assert .NoError (t , err )
102103
104+ done := make (chan struct {})
105+
103106 go func () {
104107 for {
105108 tlsConn , err := server .Accept ()
106109 if err != nil {
107- t .Logf ("Server ending: %s" , err )
110+ select {
111+ case <- done :
112+ return // cleanup in progress, don't log
113+ default :
114+ t .Logf ("Server ending: %s" , err )
115+ }
108116 return
109117 }
110118 // Just read until EOF, echoing back
111119 for {
112120 oneByte := make ([]byte , 1 )
113121 _ , err = tlsConn .Read (oneByte )
114122 if err != nil {
115- t .Logf ("read failed: %s" , err )
123+ select {
124+ case <- done :
125+ // cleanup in progress, don't log
126+ default :
127+ if err != io .EOF {
128+ t .Logf ("read failed: %s" , err )
129+ }
130+ }
116131 break
117132 }
118- _ , err = tlsConn .Write (oneByte )
119- assert .NoError (t , err )
133+ _ , _ = tlsConn .Write (oneByte ) // ignore write errors during shutdown
120134 }
121135 tlsConn .Close ()
122136 }
123137 }()
124138 return server .Addr ().String (), func () {
139+ close (done )
125140 err := server .Close ()
126141 assert .NoError (t , err )
127142 }
0 commit comments