aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.travis.yml2
-rw-r--r--middleware/file/dnssec_test.go32
-rw-r--r--middleware/file/lookup_test.go50
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.