aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorGravatar Miek Gieben <miek@miek.nl> 2016-04-27 10:48:22 +0000
committerGravatar Miek Gieben <miek@miek.nl> 2016-04-27 10:48:22 +0000
commit7a8d943bccc7ec0d21e13374c836cf9197996e10 (patch)
tree6d1647d65cdea0376a5eb818e262af2ac670527f /test
parentefd5135ee365fa2ce09cd41815039efff5a8f8e4 (diff)
downloadcoredns-7a8d943bccc7ec0d21e13374c836cf9197996e10.tar.gz
coredns-7a8d943bccc7ec0d21e13374c836cf9197996e10.tar.zst
coredns-7a8d943bccc7ec0d21e13374c836cf9197996e10.zip
Bail out on failure when starting up
Don't silently hide failures, barf on startup. Also add more integration tests that should catch some of these things.
Diffstat (limited to 'test')
-rw-r--r--test/middleware_dnssec_test.go78
1 files changed, 78 insertions, 0 deletions
diff --git a/test/middleware_dnssec_test.go b/test/middleware_dnssec_test.go
new file mode 100644
index 000000000..434e7ad56
--- /dev/null
+++ b/test/middleware_dnssec_test.go
@@ -0,0 +1,78 @@
+package test
+
+import (
+ "io/ioutil"
+ "log"
+ "os"
+ "testing"
+
+ "github.com/miekg/coredns/middleware/test"
+
+ "github.com/miekg/dns"
+)
+
+func TestLookupBalanceRewriteCacheDnssec(t *testing.T) {
+ name, rm, err := test.TempFile(t, ".", exampleOrg)
+ if err != nil {
+ t.Fatalf("failed to created zone: %s", err)
+ }
+ defer rm()
+ rm1 := createKeyFile(t)
+ defer rm1()
+
+ corefile := `example.org:0 {
+ file ` + name + `
+ rewrite ANY HINFO
+ dnssec {
+ key file ` + base + `
+ }
+ loadbalance
+}
+`
+ ex, _, udp, err := Server(t, corefile)
+ if err != nil {
+ t.Errorf("Could get server to start: %s", err)
+ return
+ }
+ defer ex.Stop()
+
+ log.SetOutput(ioutil.Discard)
+ c := new(dns.Client)
+ m := new(dns.Msg)
+ m.SetQuestion("example.org.", dns.TypeA)
+ m.SetEdns0(4096, true)
+ res, _, err := c.Exchange(m, udp)
+ if err != nil {
+ t.Fatalf("Could not send query: %s", err)
+ }
+ sig := 0
+ for _, a := range res.Answer {
+ if a.Header().Rrtype == dns.TypeRRSIG {
+ sig++
+ }
+ }
+ if sig == 0 {
+ t.Errorf("expected RRSIGs, got none")
+ t.Logf("%v\n", res)
+ }
+}
+
+func createKeyFile(t *testing.T) func() {
+ ioutil.WriteFile(base+".key",
+ []byte(`example.org. IN DNSKEY 256 3 13 tDyI0uEIDO4SjhTJh1AVTFBLpKhY3He5BdAlKztewiZ7GecWj94DOodg ovpN73+oJs+UfZ+p9zOSN5usGAlHrw==`),
+ 0644)
+ ioutil.WriteFile(base+".private",
+ []byte(`Private-key-format: v1.3
+Algorithm: 13 (ECDSAP256SHA256)
+PrivateKey: HPmldSNfrkj/aDdUMFwuk/lgzaC5KIsVEG3uoYvF4pQ=
+Created: 20160426083115
+Publish: 20160426083115
+Activate: 20160426083115`),
+ 0644)
+ return func() {
+ os.Remove(base + ".key")
+ os.Remove(base + ".private")
+ }
+}
+
+const base = "Kexample.org.+013+44563"