aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorGravatar Yong Tang <yong.tang.github@outlook.com> 2017-09-21 04:18:13 -0700
committerGravatar GitHub <noreply@github.com> 2017-09-21 04:18:13 -0700
commit7109c6715c6b526e583212598a7c98d39a6e8063 (patch)
tree807d83e15c40f29aa4893d429a854fcfea7ba9bc /test
parentaecf9163776f1d22bd0732b8bcf74dc2c364afde (diff)
downloadcoredns-7109c6715c6b526e583212598a7c98d39a6e8063.tar.gz
coredns-7109c6715c6b526e583212598a7c98d39a6e8063.tar.zst
coredns-7109c6715c6b526e583212598a7c98d39a6e8063.zip
Add inline support for middleware/hosts (#1072)
This fix add inline support for middleware/hosts so that it is possible to specify hosts file insides the Corefile: ``` hosts inline example.org { 10.0.0.1 example.org fallthrough } ``` This fix fixes 999. Signed-off-by: Yong Tang <yong.tang.github@outlook.com>
Diffstat (limited to 'test')
-rw-r--r--test/hosts_file_test.go48
1 files changed, 48 insertions, 0 deletions
diff --git a/test/hosts_file_test.go b/test/hosts_file_test.go
new file mode 100644
index 000000000..fa50233f0
--- /dev/null
+++ b/test/hosts_file_test.go
@@ -0,0 +1,48 @@
+package test
+
+import (
+ "io/ioutil"
+ "log"
+ "testing"
+
+ "github.com/coredns/coredns/plugin/proxy"
+ "github.com/coredns/coredns/plugin/test"
+ "github.com/coredns/coredns/request"
+
+ "github.com/miekg/dns"
+)
+
+func TestHostsInlineLookup(t *testing.T) {
+ corefile := `example.org:0 {
+ hosts highly_unlikely_to_exist_hosts_file example.org {
+ 10.0.0.1 example.org
+ fallthrough
+ }
+ }`
+
+ i, udp, _, err := CoreDNSServerAndPorts(corefile)
+ if err != nil {
+ t.Fatalf("Could not get CoreDNS serving instance: %s", err)
+ }
+ defer i.Stop()
+
+ log.SetOutput(ioutil.Discard)
+
+ p := proxy.NewLookup([]string{udp})
+ state := request.Request{W: &test.ResponseWriter{}, Req: new(dns.Msg)}
+
+ resp, err := p.Lookup(state, "example.org.", dns.TypeA)
+ if err != nil {
+ t.Fatal("Expected to receive reply, but didn't")
+ }
+ // expect answer section with A record in it
+ if len(resp.Answer) == 0 {
+ t.Fatal("Expected to at least one RR in the answer section, got none")
+ }
+ if resp.Answer[0].Header().Rrtype != dns.TypeA {
+ t.Errorf("Expected RR to A, got: %d", resp.Answer[0].Header().Rrtype)
+ }
+ if resp.Answer[0].(*dns.A).A.String() != "10.0.0.1" {
+ t.Errorf("Expected 10.0.0.1, got: %s", resp.Answer[0].(*dns.A).A.String())
+ }
+}