aboutsummaryrefslogtreecommitdiff
path: root/plugin/erratic/erratic_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'plugin/erratic/erratic_test.go')
-rw-r--r--plugin/erratic/erratic_test.go27
1 files changed, 24 insertions, 3 deletions
diff --git a/plugin/erratic/erratic_test.go b/plugin/erratic/erratic_test.go
index 8a3b4e011..406fd8774 100644
--- a/plugin/erratic/erratic_test.go
+++ b/plugin/erratic/erratic_test.go
@@ -14,19 +14,22 @@ func TestErraticDrop(t *testing.T) {
e := &Erratic{drop: 2} // 50% drops
tests := []struct {
+ rrtype uint16
expectedCode int
expectedErr error
drop bool
}{
- {expectedCode: dns.RcodeSuccess, expectedErr: nil, drop: true},
- {expectedCode: dns.RcodeSuccess, expectedErr: nil, drop: false},
+ {rrtype: dns.TypeA, expectedCode: dns.RcodeSuccess, expectedErr: nil, drop: true},
+ {rrtype: dns.TypeA, expectedCode: dns.RcodeSuccess, expectedErr: nil, drop: false},
+ {rrtype: dns.TypeAAAA, expectedCode: dns.RcodeSuccess, expectedErr: nil, drop: true},
+ {rrtype: dns.TypeHINFO, expectedCode: dns.RcodeServerFailure, expectedErr: nil, drop: false},
}
ctx := context.TODO()
for i, tc := range tests {
req := new(dns.Msg)
- req.SetQuestion("example.org.", dns.TypeA)
+ req.SetQuestion("example.org.", tc.rrtype)
rec := dnstest.NewRecorder(&test.ResponseWriter{})
code, err := e.ServeDNS(ctx, rec, req)
@@ -77,3 +80,21 @@ func TestErraticTruncate(t *testing.T) {
}
}
}
+
+func TestAxfr(t *testing.T) {
+ e := &Erratic{truncate: 0} // nothing, just check if we can get an axfr
+
+ ctx := context.TODO()
+
+ req := new(dns.Msg)
+ req.SetQuestion("example.org.", dns.TypeAXFR)
+
+ rec := dnstest.NewRecorder(&test.ResponseWriter{})
+ _, err := e.ServeDNS(ctx, rec, req)
+ if err != nil {
+ t.Errorf("Failed to set up AXFR: %s", err)
+ }
+ if x := rec.Msg.Answer[0].Header().Rrtype; x != dns.TypeSOA {
+ t.Errorf("Expected for record to be %d, got %d", dns.TypeSOA, x)
+ }
+}