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:
parent
7f61c6631b
commit
7482521355
|
@ -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")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue