File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -298,6 +298,36 @@ func TestServerClose(t *testing.T) {
298298 checkServerShutdown (t , server )
299299}
300300
301+ func TestImmediateServerShutdown (t * testing.T ) {
302+ var (
303+ ctx = context .Background ()
304+ server = mustServer (t )(NewServer ())
305+ addr , listener = newTestListener (t )
306+ errs = make (chan error , 1 )
307+ _ , cleanup = newTestClient (t , addr )
308+ )
309+ defer cleanup ()
310+ defer listener .Close ()
311+ go func () {
312+ time .Sleep (1 * time .Millisecond )
313+ errs <- server .Serve (ctx , listener )
314+ }()
315+
316+ registerTestingService (server , & testingServer {})
317+
318+ if err := server .Shutdown (ctx ); err != nil {
319+ t .Fatal (err )
320+ }
321+ select {
322+ case err := <- errs :
323+ if err != ErrServerClosed {
324+ t .Fatal (err )
325+ }
326+ case <- time .After (2 * time .Second ):
327+ t .Fatal ("retreiving error from server.Shutdown() timed out" )
328+ }
329+ }
330+
301331func TestOversizeCall (t * testing.T ) {
302332 var (
303333 ctx = context .Background ()
You can’t perform that action at this time.
0 commit comments