diff options
-rw-r--r-- | .travis.yml | 2 | ||||
-rw-r--r-- | middleware/file/dnssec_test.go | 32 | ||||
-rw-r--r-- | middleware/file/lookup_test.go | 50 |
3 files changed, 73 insertions, 11 deletions
diff --git a/.travis.yml b/.travis.yml index 4fe375cae..a9154fe68 100644 --- a/.travis.yml +++ b/.travis.yml @@ -4,4 +4,4 @@ go: - 1.5 - 1.6 script: - - go test -race -bench=./... ./... + - go test -race -bench=. ./... diff --git a/middleware/file/dnssec_test.go b/middleware/file/dnssec_test.go index dc19235da..44f8b0f66 100644 --- a/middleware/file/dnssec_test.go +++ b/middleware/file/dnssec_test.go @@ -156,6 +156,38 @@ func TestLookupDNSSEC(t *testing.T) { } } +func BenchmarkLookupDNSSEC(b *testing.B) { + zone, err := Parse(strings.NewReader(dbMiekNL_signed), 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: "b.miek.nl.", Qtype: dns.TypeA, Do: true, + Rcode: dns.RcodeNameError, + Ns: []dns.RR{ + coretest.NSEC("archive.miek.nl. 14400 IN NSEC go.dns.miek.nl. CNAME RRSIG NSEC"), + coretest.RRSIG("archive.miek.nl. 14400 IN RRSIG NSEC 8 3 14400 20160426031301 20160327031301 12051 miek.nl. jEpx8lcp4do5fWXg="), + coretest.NSEC("miek.nl. 14400 IN NSEC a.miek.nl. A NS SOA MX AAAA RRSIG NSEC DNSKEY"), + coretest.RRSIG("miek.nl. 14400 IN RRSIG NSEC 8 2 14400 20160426031301 20160327031301 12051 miek.nl. mFfc3r/9PSC1H6oSpdC"), + coretest.RRSIG("miek.nl. 1800 IN RRSIG SOA 8 2 1800 20160426031301 20160327031301 12051 miek.nl. FIrzy07acBbtyQczy1dc="), + coretest.SOA("miek.nl. 1800 IN SOA linode.atoom.net. miek.miek.nl. 1282630057 14400 3600 604800 14400"), + }, + } + + m := tc.Msg() + + b.ResetTimer() + + for i := 0; i < b.N; i++ { + fm.ServeDNS(ctx, rec, m) + } +} + const dbMiekNL_signed = ` ; File written on Sun Mar 27 04:13:01 2016 ; dnssec_signzone version 9.10.3-P4-Ubuntu 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. |