diff options
Diffstat (limited to 'middleware/test/helpers.go')
-rw-r--r-- | middleware/test/helpers.go | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/middleware/test/helpers.go b/middleware/test/helpers.go index 2074f46c2..35316dd38 100644 --- a/middleware/test/helpers.go +++ b/middleware/test/helpers.go @@ -13,7 +13,7 @@ type sect int const ( // Answer is the answer section in an Msg. Answer sect = iota - // Ns is the authrotitative section in an Msg. + // Ns is the authoritative section in an Msg. Ns // Extra is the additional section in an Msg. Extra @@ -264,6 +264,23 @@ func Section(t *testing.T, tc Case, sec sect, rr []dns.RR) bool { return true } +// CNAMEOrder makes sure that CNAMES do not appear after their target records +func CNAMEOrder(t *testing.T, res *dns.Msg) { + for i, c := range res.Answer { + if c.Header().Rrtype != dns.TypeCNAME { + continue + } + for _, a := range res.Answer[:i] { + if a.Header().Name != c.(*dns.CNAME).Target { + continue + } + t.Errorf("CNAME found after target record\n") + t.Logf("%v\n", res) + + } + } +} + // SortAndCheck sorts resp and the checks the header and three sections against the testcase in tc. func SortAndCheck(t *testing.T, resp *dns.Msg, tc Case) { sort.Sort(RRSet(resp.Answer)) |