From 19d17b2ab3679d574ef55605668403a224988d0f Mon Sep 17 00:00:00 2001 From: Tyler Treat Date: Tue, 27 Jun 2017 12:58:13 -0500 Subject: [PATCH] Fix unit test --- server/service_test.go | 27 +++++++++++++++++++++++---- 1 file changed, 23 insertions(+), 4 deletions(-) diff --git a/server/service_test.go b/server/service_test.go index da1d632e..e8e6f805 100644 --- a/server/service_test.go +++ b/server/service_test.go @@ -4,19 +4,38 @@ package server import ( + "errors" "testing" "time" ) func TestRun(t *testing.T) { - s := New(DefaultOptions()) + var ( + s = New(DefaultOptions()) + started = make(chan error, 1) + errC = make(chan error, 1) + ) + go func() { + errC <- Run(s) + }() go func() { if !s.ReadyForConnections(time.Second) { - t.Fatal("Failed to start server in time") + started <- errors.New("failed to start in time") + return } s.Shutdown() + close(started) }() - if err := Run(s); err != nil { - t.Fatalf("Run failed: %v", err) + + select { + case err := <-errC: + if err != nil { + t.Fatalf("Unexpected error: %v", err) + } + case <-time.After(2 * time.Second): + t.Fatal("Timed out") + } + if err := <-started; err != nil { + t.Fatalf("Unexpected error: %v", err) } }