coredns/middleware/proxy/lookup_test.go
Miek Gieben 8f9f2cd1ab Add etcd middleware
This middleware acts in the same way as SkyDNS. We might add options
to allow it to be behave different, but for now it will suffice.

A Corefile like:
.:1053 {
    etcd miek.nl
    proxy . 8.8.8.8:53
}
will perform lookup in etcd and proxy everything not miek.nl to Google
for further resolution.

The internal etcd forwarding *also* uses the proxy infrastructure,
meaning you get health check and such for (almost) free
2016-03-23 10:41:40 +00:00

34 lines
864 B
Go

package proxy
import (
"io/ioutil"
"log"
"os"
"testing"
"github.com/miekg/coredns/middleware"
"github.com/miekg/dns"
)
func TestLookupProxy(t *testing.T) {
// TODO(miek): make this fakeDNS backend and ask the question locally
log.SetOutput(ioutil.Discard)
defer log.SetOutput(os.Stderr)
p := New([]string{"8.8.8.8:53"})
resp, err := p.Lookup(fakeState(), "example.org.", dns.TypeA)
if err != nil {
t.Error("Expected to receive reply, but didn't")
}
// expect answer section with A record in it
if len(resp.Answer) == 0 {
t.Error("Expected to at least one RR in the answer section, got none")
}
if resp.Answer[0].Header().Rrtype != dns.TypeA {
t.Error("Expected RR to A, got: %d", resp.Answer[0].Header().Rrtype)
}
}
func fakeState() middleware.State {
return middleware.State{W: &middleware.TestResponseWriter{}, Req: new(dns.Msg)}
}