aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rw-r--r--test/reload_test.go50
1 files changed, 50 insertions, 0 deletions
diff --git a/test/reload_test.go b/test/reload_test.go
new file mode 100644
index 000000000..61fc76b26
--- /dev/null
+++ b/test/reload_test.go
@@ -0,0 +1,50 @@
+package test
+
+import (
+ "testing"
+
+ "github.com/miekg/dns"
+)
+
+func TestReload(t *testing.T) {
+ corefile := `.:0 {
+ whoami
+}
+`
+ coreInput := NewInput(corefile)
+
+ c, err := CoreDNSServer(corefile)
+ if err != nil {
+ t.Fatalf("Could not get CoreDNS serving instance: %s", err)
+ }
+
+ udp, _ := CoreDNSServerPorts(c, 0)
+
+ send(t, udp)
+
+ c1, err := c.Restart(coreInput)
+ if err != nil {
+ t.Fatal(err)
+ }
+ udp, _ = CoreDNSServerPorts(c1, 0)
+
+ send(t, udp)
+
+ c1.Stop()
+}
+
+func send(t *testing.T, server string) {
+ m := new(dns.Msg)
+ m.SetQuestion("whoami.example.org.", dns.TypeSRV)
+
+ r, err := dns.Exchange(m, server)
+ if err != nil {
+ t.Fatalf("Could not send message: %s", err)
+ }
+ if r.Rcode != dns.RcodeSuccess {
+ t.Fatalf("Expected successful reply, got %s", dns.RcodeToString[r.Rcode])
+ }
+ if len(r.Extra) != 2 {
+ t.Fatalf("Expected 2 RRs in additional, got %s", len(r.Extra))
+ }
+}