File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -188,25 +188,27 @@ func TestSendUpdatesWhileIdle(t *testing.T) {
188188 IdleFunc : func (w imap.UpdateWriter , done chan struct {}, session map [string ]interface {}) error {
189189 session ["idle" ] = done
190190 go func () {
191+ defer close (sent )
192+
191193 err := w .WriteNumMessages (10 )
192194 require .NoError (t , err )
193195 err = w .WriteMessageFlags (20 , []imap.Flag {imap .FlagSeen })
194196 require .NoError (t , err )
195197 err = w .WriteExpunge (1 )
196- sent <- true
197198 }()
198199 return nil
199200 },
200201 },
201202 }
202- defer s .Close ()
203203 go func () {
204204 err := s .ListenAndServe ()
205205 require .ErrorIs (t , err , imap .ErrServerClosed )
206206 }()
207-
208207 c := imap .NewClient (fmt .Sprintf ("localhost:%v" , p ))
209- defer func () { _ = c .Close () }()
208+ defer func () {
209+ _ = c .Close ()
210+ defer s .Close ()
211+ }()
210212
211213 _ , err := c .Dial ()
212214 require .NoError (t , err )
@@ -220,7 +222,11 @@ func TestSendUpdatesWhileIdle(t *testing.T) {
220222 require .NoError (t , err )
221223 require .Equal (t , "+ idling" , res )
222224
223- <- sent
225+ select {
226+ case <- sent :
227+ case <- time .After (4 * time .Second ):
228+ t .Fatal ("timeout waiting for updates" )
229+ }
224230
225231 res , err = c .ReadLine ()
226232 require .NoError (t , err )
You can’t perform that action at this time.
0 commit comments