From efd5135ee365fa2ce09cd41815039efff5a8f8e4 Mon Sep 17 00:00:00 2001 From: Miek Gieben Date: Tue, 26 Apr 2016 20:45:29 +0100 Subject: [PATCH] Some tiny changes and new benchmark test function (#136) --- middleware/cache/cache.go | 3 +- middleware/loadbalance/loadbalance.go | 1 - test/middleware_test.go | 42 +++++++++++++++++++++++++++ test/proxy_test.go | 3 +- 4 files changed, 45 insertions(+), 4 deletions(-) create mode 100644 test/middleware_test.go diff --git a/middleware/cache/cache.go b/middleware/cache/cache.go index 71df68fdd..6249b8faa 100644 --- a/middleware/cache/cache.go +++ b/middleware/cache/cache.go @@ -2,6 +2,7 @@ package cache import ( "log" + "strings" "time" "github.com/miekg/coredns/middleware" @@ -28,7 +29,7 @@ func cacheKey(m *dns.Msg, t middleware.MsgType, do bool) string { } qtype := m.Question[0].Qtype - qname := middleware.Name(m.Question[0].Name).Normalize() + qname := strings.ToLower(m.Question[0].Name) switch t { case middleware.Success: fallthrough diff --git a/middleware/loadbalance/loadbalance.go b/middleware/loadbalance/loadbalance.go index eb5abf62b..1d0d7a848 100644 --- a/middleware/loadbalance/loadbalance.go +++ b/middleware/loadbalance/loadbalance.go @@ -33,7 +33,6 @@ func roundRobin(in []dns.RR) []dns.RR { for _, r := range in { switch r.Header().Rrtype { case dns.TypeCNAME: - // d d d d DNAME and friends here as well? cname = append(cname, r) case dns.TypeA, dns.TypeAAAA: address = append(address, r) diff --git a/test/middleware_test.go b/test/middleware_test.go new file mode 100644 index 000000000..ec90f0d71 --- /dev/null +++ b/test/middleware_test.go @@ -0,0 +1,42 @@ +package test + +import ( + "io/ioutil" + "log" + "testing" + + "github.com/miekg/coredns/middleware/test" + + "github.com/miekg/dns" +) + +func BenchmarkLookupBalanceRewriteCache(b *testing.B) { + t := new(testing.T) + name, rm, err := test.TempFile(t, ".", exampleOrg) + if err != nil { + t.Fatalf("failed to created zone: %s", err) + } + defer rm() + + corefile := `example.org:0 { + file ` + name + ` + rewrite ANY HINFO + loadbalance +} +` + ex, _, udp, err := Server(t, corefile) + if err != nil { + t.Fatalf("Could get server: %s", err) + } + defer ex.Stop() + + log.SetOutput(ioutil.Discard) + c := new(dns.Client) + m := new(dns.Msg) + m.SetQuestion("example.org.", dns.TypeA) + + b.ResetTimer() + for i := 0; i < b.N; i++ { + c.Exchange(m, udp) + } +} diff --git a/test/proxy_test.go b/test/proxy_test.go index 74e60148a..fc1ff2854 100644 --- a/test/proxy_test.go +++ b/test/proxy_test.go @@ -3,7 +3,6 @@ package test import ( "io/ioutil" "log" - "os" "testing" "github.com/miekg/coredns/middleware" @@ -18,6 +17,7 @@ example.org. IN SOA sns.dns.icann.org. noc.dns.icann.org. 2015082541 7200 3600 example.org. IN NS b.iana-servers.net. example.org. IN NS a.iana-servers.net. example.org. IN A 127.0.0.1 +example.org. IN A 127.0.0.2 ` func TestLookupProxy(t *testing.T) { @@ -38,7 +38,6 @@ func TestLookupProxy(t *testing.T) { defer ex.Stop() log.SetOutput(ioutil.Discard) - defer log.SetOutput(os.Stderr) p := proxy.New([]string{udp}) state := middleware.State{W: &test.ResponseWriter{}, Req: new(dns.Msg)}