diff options
author | 2016-03-28 21:18:16 +0100 | |
---|---|---|
committer | 2016-03-30 13:25:45 +0000 | |
commit | 48f7d55f27518d31d5a316669e6ad282b134082c (patch) | |
tree | 745edb0bbdba75e579272419b96be855ae6eded6 /middleware/testing/helpers.go | |
parent | 4a313d67ff6031fec3743ba01e81f4961027ffe8 (diff) | |
download | coredns-48f7d55f27518d31d5a316669e6ad282b134082c.tar.gz coredns-48f7d55f27518d31d5a316669e6ad282b134082c.tar.zst coredns-48f7d55f27518d31d5a316669e6ad282b134082c.zip |
Get positive dnssec stuff going
Diffstat (limited to 'middleware/testing/helpers.go')
-rw-r--r-- | middleware/testing/helpers.go | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/middleware/testing/helpers.go b/middleware/testing/helpers.go index f87025896..dc0fa4c38 100644 --- a/middleware/testing/helpers.go +++ b/middleware/testing/helpers.go @@ -27,11 +27,26 @@ type Case struct { Qname string Qtype uint16 Rcode int + Do bool Answer []dns.RR Ns []dns.RR Extra []dns.RR } +func (c Case) Msg() *dns.Msg { + m := new(dns.Msg) + m.SetQuestion(dns.Fqdn(c.Qname), c.Qtype) + if c.Do { + o := new(dns.OPT) + o.Hdr.Name = "." + o.Hdr.Rrtype = dns.TypeOPT + o.SetDo() + o.SetUDPSize(4096) + m.Extra = []dns.RR{o} + } + return m +} + func A(rr string) *dns.A { r, _ := dns.NewRR(rr); return r.(*dns.A) } func AAAA(rr string) *dns.AAAA { r, _ := dns.NewRR(rr); return r.(*dns.AAAA) } func CNAME(rr string) *dns.CNAME { r, _ := dns.NewRR(rr); return r.(*dns.CNAME) } @@ -41,6 +56,8 @@ func NS(rr string) *dns.NS { r, _ := dns.NewRR(rr); return r.(*dns.NS) } func PTR(rr string) *dns.PTR { r, _ := dns.NewRR(rr); return r.(*dns.PTR) } func TXT(rr string) *dns.TXT { r, _ := dns.NewRR(rr); return r.(*dns.TXT) } func MX(rr string) *dns.MX { r, _ := dns.NewRR(rr); return r.(*dns.MX) } +func RRSIG(rr string) *dns.RRSIG { r, _ := dns.NewRR(rr); return r.(*dns.RRSIG) } +func NSEC(rr string) *dns.NSEC { r, _ := dns.NewRR(rr); return r.(*dns.NSEC) } func CheckSection(t *testing.T, tc Case, sect Section, rr []dns.RR) bool { section := []dns.RR{} @@ -86,6 +103,25 @@ func CheckSection(t *testing.T, tc Case, sect Section, rr []dns.RR) bool { t.Errorf("rr %d should have a Target of %q, but has %q", i, section[i].(*dns.SRV).Target, x.Target) return false } + case *dns.RRSIG: + if x.TypeCovered != section[i].(*dns.RRSIG).TypeCovered { + t.Errorf("rr %d should have a TypeCovered of %d, but has %d", i, section[i].(*dns.RRSIG).TypeCovered, x.TypeCovered) + return false + } + if x.Labels != section[i].(*dns.RRSIG).Labels { + t.Errorf("rr %d should have a Labels of %d, but has %d", i, section[i].(*dns.RRSIG).Labels, x.Labels) + return false + } + if x.SignerName != section[i].(*dns.RRSIG).SignerName { + t.Errorf("rr %d should have a SignerName of %d, but has %d", i, section[i].(*dns.RRSIG).SignerName, x.SignerName) + return false + } + case *dns.NSEC: + if x.NextDomain != section[i].(*dns.NSEC).NextDomain { + t.Errorf("rr %d should have a NextDomain of %d, but has %d", i, section[i].(*dns.NSEC).NextDomain, x.NextDomain) + return false + } + // TypeBitMap case *dns.A: if x.A.String() != section[i].(*dns.A).A.String() { t.Errorf("rr %d should have a Address of %q, but has %q", i, section[i].(*dns.A).A.String(), x.A.String()) |