Replace the trigger type with chan in server_test.go (#760)

* Replace the trigger type with chan in server_test.go

This was a lot of code to do very little.

* Check the error from ActivateAndServe in TestHandlerCloseTCP

May as well add this missing error check in while we're here.
This commit is contained in:
Tom Thorogood 2018-09-27 05:34:11 +09:30 committed by Miek Gieben
parent 7f61c6631b
commit 7482521355
1 changed files with 9 additions and 21 deletions

View File

@ -802,22 +802,6 @@ func TestInProgressQueriesAtShutdownTLS(t *testing.T) {
checkInProgressQueriesAtShutdownServer(t, s, addr, c) checkInProgressQueriesAtShutdownServer(t, s, addr, c)
} }
type trigger struct {
done bool
sync.RWMutex
}
func (t *trigger) Set() {
t.Lock()
defer t.Unlock()
t.done = true
}
func (t *trigger) Get() bool {
t.RLock()
defer t.RUnlock()
return t.done
}
func TestHandlerCloseTCP(t *testing.T) { func TestHandlerCloseTCP(t *testing.T) {
ln, err := net.Listen("tcp", ":0") ln, err := net.Listen("tcp", ":0")
@ -829,9 +813,9 @@ func TestHandlerCloseTCP(t *testing.T) {
server := &Server{Addr: addr, Net: "tcp", Listener: ln} server := &Server{Addr: addr, Net: "tcp", Listener: ln}
hname := "testhandlerclosetcp." hname := "testhandlerclosetcp."
triggered := &trigger{} triggered := make(chan struct{})
HandleFunc(hname, func(w ResponseWriter, r *Msg) { HandleFunc(hname, func(w ResponseWriter, r *Msg) {
triggered.Set() close(triggered)
w.Close() w.Close()
}) })
defer HandleRemove(hname) defer HandleRemove(hname)
@ -844,7 +828,7 @@ func TestHandlerCloseTCP(t *testing.T) {
exchange: exchange:
_, _, err := c.Exchange(m, addr) _, _, err := c.Exchange(m, addr)
if err != nil && err != io.EOF { if err != nil && err != io.EOF {
t.Errorf("exchange failed: %s\n", err) t.Errorf("exchange failed: %v", err)
if tries == 3 { if tries == 3 {
return return
} }
@ -853,8 +837,12 @@ func TestHandlerCloseTCP(t *testing.T) {
goto exchange goto exchange
} }
}() }()
server.ActivateAndServe() if err := server.ActivateAndServe(); err != nil {
if !triggered.Get() { t.Fatalf("ActivateAndServe failed: %v", err)
}
select {
case <-triggered:
default:
t.Fatalf("handler never called") t.Fatalf("handler never called")
} }
} }