| 44 | } |
| 45 | |
| 46 | func (s) TestStopBeforeServe(t *testing.T) { |
| 47 | lis, err := net.Listen("tcp", "localhost:0") |
| 48 | if err != nil { |
| 49 | t.Fatalf("failed to create listener: %v", err) |
| 50 | } |
| 51 | |
| 52 | server := NewServer() |
| 53 | server.Stop() |
| 54 | err = server.Serve(lis) |
| 55 | if err != ErrServerStopped { |
| 56 | t.Fatalf("server.Serve() error = %v, want %v", err, ErrServerStopped) |
| 57 | } |
| 58 | |
| 59 | // server.Serve is responsible for closing the listener, even if the |
| 60 | // server was already stopped. |
| 61 | err = lis.Close() |
| 62 | if got, want := errorDesc(err), "use of closed"; !strings.Contains(got, want) { |
| 63 | t.Errorf("Close() error = %q, want %q", got, want) |
| 64 | } |
| 65 | } |
| 66 | |
| 67 | func (s) TestGracefulStop(t *testing.T) { |
| 68 | |