aboutsummaryrefslogtreecommitdiff
path: root/plugin/etcd/multi_test.go
diff options
context:
space:
mode:
authorGravatar Miek Gieben <miek@miek.nl> 2017-09-14 09:36:06 +0100
committerGravatar GitHub <noreply@github.com> 2017-09-14 09:36:06 +0100
commitd8714e64e400ef873c2adc4d929a07d7890727b9 (patch)
treec9fa4c157e6af12eb1517654f8d23ca5d5619513 /plugin/etcd/multi_test.go
parentb984aa45595dc95253b91191afe7d3ee29e71b48 (diff)
downloadcoredns-d8714e64e400ef873c2adc4d929a07d7890727b9.tar.gz
coredns-d8714e64e400ef873c2adc4d929a07d7890727b9.tar.zst
coredns-d8714e64e400ef873c2adc4d929a07d7890727b9.zip
Remove the word middleware (#1067)
* Rename middleware to plugin first pass; mostly used 'sed', few spots where I manually changed text. This still builds a coredns binary. * fmt error * Rename AddMiddleware to AddPlugin * Readd AddMiddleware to remain backwards compat
Diffstat (limited to 'plugin/etcd/multi_test.go')
-rw-r--r--plugin/etcd/multi_test.go59
1 files changed, 59 insertions, 0 deletions
diff --git a/plugin/etcd/multi_test.go b/plugin/etcd/multi_test.go
new file mode 100644
index 000000000..56b5af265
--- /dev/null
+++ b/plugin/etcd/multi_test.go
@@ -0,0 +1,59 @@
+// +build etcd
+
+package etcd
+
+import (
+ "testing"
+
+ "github.com/coredns/coredns/plugin/etcd/msg"
+ "github.com/coredns/coredns/plugin/pkg/dnsrecorder"
+ "github.com/coredns/coredns/plugin/test"
+
+ "github.com/miekg/dns"
+)
+
+func TestMultiLookup(t *testing.T) {
+ etc := newEtcdMiddleware()
+ etc.Zones = []string{"skydns.test.", "miek.nl."}
+ etc.Fallthrough = true
+ etc.Next = test.ErrorHandler()
+
+ for _, serv := range servicesMulti {
+ set(t, etc, serv.Key, 0, serv)
+ defer delete(t, etc, serv.Key)
+ }
+ for _, tc := range dnsTestCasesMulti {
+ m := tc.Msg()
+
+ rec := dnsrecorder.New(&test.ResponseWriter{})
+ _, err := etc.ServeDNS(ctxt, rec, m)
+ if err != nil {
+ t.Errorf("expected no error, got %v\n", err)
+ return
+ }
+
+ resp := rec.Msg
+ test.SortAndCheck(t, resp, tc)
+ }
+}
+
+// Note the key is encoded as DNS name, while in "reality" it is a etcd path.
+var servicesMulti = []*msg.Service{
+ {Host: "dev.server1", Port: 8080, Key: "a.server1.dev.region1.skydns.test."},
+ {Host: "dev.server1", Port: 8080, Key: "a.server1.dev.region1.miek.nl."},
+ {Host: "dev.server1", Port: 8080, Key: "a.server1.dev.region1.example.org."},
+}
+
+var dnsTestCasesMulti = []test.Case{
+ {
+ Qname: "a.server1.dev.region1.skydns.test.", Qtype: dns.TypeSRV,
+ Answer: []dns.RR{test.SRV("a.server1.dev.region1.skydns.test. 300 SRV 10 100 8080 dev.server1.")},
+ },
+ {
+ Qname: "a.server1.dev.region1.miek.nl.", Qtype: dns.TypeSRV,
+ Answer: []dns.RR{test.SRV("a.server1.dev.region1.miek.nl. 300 SRV 10 100 8080 dev.server1.")},
+ },
+ {
+ Qname: "a.server1.dev.region1.example.org.", Qtype: dns.TypeSRV, Rcode: dns.RcodeServerFailure,
+ },
+}