diff options
Diffstat (limited to 'test')
-rw-r--r-- | test/proxy_health_test.go | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/test/proxy_health_test.go b/test/proxy_health_test.go new file mode 100644 index 000000000..143846688 --- /dev/null +++ b/test/proxy_health_test.go @@ -0,0 +1,43 @@ +package test + +import ( + "io/ioutil" + "log" + "testing" + + "github.com/miekg/coredns/middleware/proxy" + "github.com/miekg/coredns/middleware/test" + "github.com/miekg/coredns/request" + + "github.com/miekg/dns" +) + +func TestProxyErratic(t *testing.T) { + log.SetOutput(ioutil.Discard) + + corefile := `example.org:0 { + erratic { + drop 2 + } + } +` + + backend, err := CoreDNSServer(corefile) + if err != nil { + t.Fatalf("Could not get CoreDNS serving instance: %s", err) + } + + udp, _ := CoreDNSServerPorts(backend, 0) + if udp == "" { + t.Fatalf("Could not get UDP listening port") + } + defer backend.Stop() + + p := proxy.New([]string{udp}) + state := request.Request{W: &test.ResponseWriter{}, Req: new(dns.Msg)} + + // We do one lookup that should not time out. + // After this the backend is marked unhealthy anyway. So basically this + // tests that it times out. + p.Lookup(state, "example.org.", dns.TypeA) +} |