diff options
author | 2017-04-18 11:25:21 +0100 | |
---|---|---|
committer | 2017-04-18 11:25:21 +0100 | |
commit | 3b6eab22563e57471b8bce56e3dc8c3ca06c427d (patch) | |
tree | c6d0579c105dcf208971fa57d47f23e3e583d3f3 /test | |
parent | 73397e4667fbb070b29888900dc1c1d91a21fa51 (diff) | |
download | coredns-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.go | 50 |
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)) + } +} |