aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorGravatar Miek Gieben <miek@miek.nl> 2017-04-18 11:25:21 +0100
committerGravatar GitHub <noreply@github.com> 2017-04-18 11:25:21 +0100
commit3b6eab22563e57471b8bce56e3dc8c3ca06c427d (patch)
treec6d0579c105dcf208971fa57d47f23e3e583d3f3 /test
parent73397e4667fbb070b29888900dc1c1d91a21fa51 (diff)
downloadcoredns-3b6eab22563e57471b8bce56e3dc8c3ca06c427d.tar.gz
coredns-3b6eab22563e57471b8bce56e3dc8c3ca06c427d.tar.zst
coredns-3b6eab22563e57471b8bce56e3dc8c3ca06c427d.zip
core: add reload tests (#622)
This adds a simple reload test for the UDP socket.
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))
+ }
+}