* Add pkg/fall for Fallthrough Move this into it's own package to facilitate tests. Important bug was fixed: make the names fully qualified. Add fall package to hosts, reverse, etcd, and fix kubernetes and any tests. The k8s tests are still as-is, might need a future cleanup.
70 lines
1.6 KiB
Go
70 lines
1.6 KiB
Go
package reverse
|
|
|
|
import (
|
|
"net"
|
|
"regexp"
|
|
"testing"
|
|
|
|
"github.com/coredns/coredns/plugin"
|
|
"github.com/coredns/coredns/plugin/pkg/dnstest"
|
|
"github.com/coredns/coredns/plugin/test"
|
|
|
|
"github.com/miekg/dns"
|
|
"golang.org/x/net/context"
|
|
)
|
|
|
|
func TestReverse(t *testing.T) {
|
|
_, net4, _ := net.ParseCIDR("10.1.1.0/24")
|
|
regexIP4, _ := regexp.Compile("^.*ip-" + regexMatchV4 + "\\.example\\.org\\.$")
|
|
|
|
em := Reverse{
|
|
Networks: networks{network{
|
|
IPnet: net4,
|
|
Zone: "example.org.",
|
|
Template: "ip-{ip}.example.org.",
|
|
RegexMatchIP: regexIP4,
|
|
}},
|
|
}
|
|
|
|
tests := []struct {
|
|
next plugin.Handler
|
|
qname string
|
|
qtype uint16
|
|
expectedCode int
|
|
expectedReply string
|
|
expectedErr error
|
|
}{
|
|
{
|
|
next: test.NextHandler(dns.RcodeSuccess, nil),
|
|
qname: "test.ip-10.1.1.2.example.org.",
|
|
expectedCode: dns.RcodeSuccess,
|
|
expectedReply: "10.1.1.2",
|
|
expectedErr: nil,
|
|
},
|
|
}
|
|
|
|
ctx := context.TODO()
|
|
|
|
for i, tr := range tests {
|
|
req := new(dns.Msg)
|
|
|
|
tr.qtype = dns.TypeA
|
|
req.SetQuestion(tr.qname, tr.qtype)
|
|
|
|
rec := dnstest.NewRecorder(&test.ResponseWriter{})
|
|
code, err := em.ServeDNS(ctx, rec, req)
|
|
|
|
if err != tr.expectedErr {
|
|
t.Errorf("Test %d: Expected error %v, but got %v", i, tr.expectedErr, err)
|
|
}
|
|
if code != int(tr.expectedCode) {
|
|
t.Errorf("Test %d: Expected status code %d, but got %d", i, tr.expectedCode, code)
|
|
}
|
|
if tr.expectedReply != "" {
|
|
answer := rec.Msg.Answer[0].(*dns.A).A.String()
|
|
if answer != tr.expectedReply {
|
|
t.Errorf("Test %d: Expected answer %s, but got %s", i, tr.expectedReply, answer)
|
|
}
|
|
}
|
|
}
|
|
}
|