Skip to content

Commit dd32dde

Browse files
committed
server_test: add Serve()/Shutdown() race test.
Signed-off-by: Krisztian Litkey <krisztian.litkey@intel.com>
1 parent b5cd6e4 commit dd32dde

1 file changed

Lines changed: 31 additions & 0 deletions

File tree

server_test.go

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -298,6 +298,37 @@ func TestServerClose(t *testing.T) {
298298
checkServerShutdown(t, server)
299299
}
300300

301+
func TestImmediateServerShutdown(t *testing.T) {
302+
for i := 0; i < 1024; i++ {
303+
var (
304+
ctx = context.Background()
305+
server = mustServer(t)(NewServer())
306+
addr, listener = newTestListener(t)
307+
errs = make(chan error, 1)
308+
_, cleanup = newTestClient(t, addr)
309+
)
310+
defer cleanup()
311+
defer listener.Close()
312+
go func() {
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(time.Second):
327+
t.Fatal("retreiving error from server.Shutdown() timed out")
328+
}
329+
}
330+
}
331+
301332
func TestOversizeCall(t *testing.T) {
302333
var (
303334
ctx = context.Background()

0 commit comments

Comments
 (0)