Commit 9e8893a0 authored by Ruslan Drozhdzh's avatar Ruslan Drozhdzh Committed by Miek Gieben

rework TestProxyClose (#1735)

parent 5c3e436d
......@@ -2,8 +2,9 @@ package forward
import (
"context"
"sync"
"runtime"
"testing"
"time"
"github.com/coredns/coredns/plugin/pkg/dnstest"
"github.com/coredns/coredns/plugin/test"
......@@ -30,30 +31,41 @@ func TestProxyClose(t *testing.T) {
p := NewProxy(s.Addr, nil /* no TLS */)
p.start(hcDuration)
var wg sync.WaitGroup
wg.Add(5)
doneCnt := 0
doneCh := make(chan bool)
timeCh := time.After(10 * time.Second)
go func() {
p.connect(ctx, state, false, false)
wg.Done()
doneCh <- true
}()
go func() {
p.connect(ctx, state, true, false)
wg.Done()
doneCh <- true
}()
go func() {
p.close()
wg.Done()
doneCh <- true
}()
go func() {
p.connect(ctx, state, false, false)
wg.Done()
doneCh <- true
}()
go func() {
p.connect(ctx, state, true, false)
wg.Done()
doneCh <- true
}()
wg.Wait()
for doneCnt < 5 {
select {
case <-doneCh:
doneCnt++
case <-timeCh:
t.Error("TestProxyClose is running too long, dumping goroutines:")
buf := make([]byte, 100000)
stackSize := runtime.Stack(buf, true)
t.Fatal(string(buf[:stackSize]))
}
}
if p.inProgress != 0 {
t.Errorf("unexpected query in progress")
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment