diff options
Diffstat (limited to 'middleware/file/lookup_test.go')
-rw-r--r-- | middleware/file/lookup_test.go | 50 |
1 files changed, 40 insertions, 10 deletions
diff --git a/middleware/file/lookup_test.go b/middleware/file/lookup_test.go index 9b4e31cc8..6f9f59251 100644 --- a/middleware/file/lookup_test.go +++ b/middleware/file/lookup_test.go @@ -14,6 +14,16 @@ import ( var dnsTestCases = []coretest.Case{ { + Qname: "www.miek.nl.", Qtype: dns.TypeA, + Answer: []dns.RR{ + coretest.CNAME("www.miek.nl. 1800 IN CNAME a.miek.nl."), + }, + + Extra: []dns.RR{ + coretest.A("a.miek.nl. 1800 IN A 139.162.196.78"), + }, + }, + { Qname: "miek.nl.", Qtype: dns.TypeSOA, Answer: []dns.RR{ coretest.SOA("miek.nl. 1800 IN SOA linode.atoom.net. miek.miek.nl. 1282630057 14400 3600 604800 14400"), @@ -36,16 +46,6 @@ var dnsTestCases = []coretest.Case{ }, }, { - Qname: "www.miek.nl.", Qtype: dns.TypeA, - Answer: []dns.RR{ - coretest.CNAME("www.miek.nl. 1800 IN CNAME a.miek.nl."), - }, - - Extra: []dns.RR{ - coretest.A("a.miek.nl. 1800 IN A 139.162.196.78"), - }, - }, - { Qname: "a.miek.nl.", Qtype: dns.TypeSRV, Ns: []dns.RR{ coretest.SOA("miek.nl. 1800 IN SOA linode.atoom.net. miek.miek.nl. 1282630057 14400 3600 604800 14400"), @@ -124,6 +124,36 @@ func TestLookup(t *testing.T) { } } +func BenchmarkLookup(b *testing.B) { + zone, err := Parse(strings.NewReader(dbMiekNL), testzone, "stdin") + if err != nil { + return + } + + fm := File{Next: coretest.ErrorHandler(), Zones: Zones{Z: map[string]*Zone{testzone: zone}, Names: []string{testzone}}} + ctx := context.TODO() + rec := middleware.NewResponseRecorder(&middleware.TestResponseWriter{}) + + tc := coretest.Case{ + Qname: "www.miek.nl.", Qtype: dns.TypeA, + Answer: []dns.RR{ + coretest.CNAME("www.miek.nl. 1800 IN CNAME a.miek.nl."), + }, + + Extra: []dns.RR{ + coretest.A("a.miek.nl. 1800 IN A 139.162.196.78"), + }, + } + + m := tc.Msg() + + b.ResetTimer() + + for i := 0; i < b.N; i++ { + fm.ServeDNS(ctx, rec, m) + } +} + const dbMiekNL = ` $TTL 30M $ORIGIN miek.nl. |