From 7ba656f7c3ea3d5752616c35f542b02b80665ee6 Mon Sep 17 00:00:00 2001 From: W Anders Date: Tue, 7 May 2024 20:55:25 -0600 Subject: [PATCH] added additional cname test cases tests now check for cname records when `a` records are requested --- netboxdns_test.go | 52 +++++++++++++++++++++++++++++++++++++---------- 1 file changed, 41 insertions(+), 11 deletions(-) diff --git a/netboxdns_test.go b/netboxdns_test.go index 8d2e0ec..6afb83d 100644 --- a/netboxdns_test.go +++ b/netboxdns_test.go @@ -103,7 +103,7 @@ func RunTestLookupCheckCNAME(t *testing.T, tc test.Case, resp *dns.Msg) bool { if err := test.CNAMEOrder(resp); err != nil { t.Errorf("cname response out of order") } - if tc.Qtype == dns.TypeCNAME { + if tc.Qtype == dns.TypeCNAME || RunTestLookupContainsCNAME(resp) { if err := test.Header(tc, resp); err != nil { t.Error(err) } @@ -121,6 +121,16 @@ func RunTestLookupCheckCNAME(t *testing.T, tc test.Case, resp *dns.Msg) bool { return true } +func RunTestLookupContainsCNAME(resp *dns.Msg) bool { + out := false + for _, rr := range resp.Answer { + if rr.Header().Rrtype == dns.TypeCNAME { + out = true + } + } + return out +} + var ( exampledotcomName string = "example.com." subdotexampledotcomName string = "sub.example.com." @@ -150,6 +160,12 @@ var ( exampledotcomNS1Record6, exampledotcomNS2Record6, } + + webdotexampledotcomName string = "web.example.com." + webdotexampledotcomRecordA dns.RR = test.A("web.example.com. 3600 IN A 10.0.0.17") + webdotexampledotcomRecordAAAA dns.RR = test.AAAA("web.example.com. 3600 IN AAAA 2001:db8:dead:beef::1:17") + wwwdotexampledotcomName string = "www.example.com." + wwwdotexampledotcomRecordCNAME dns.RR = test.CNAME("www.example.com. 3600 IN CNAME web.example.com.") ) var ( @@ -378,16 +394,23 @@ var ( }, }, { - Qname: "web.example.com.", Qtype: dns.TypeA, + Qname: webdotexampledotcomName, Qtype: dns.TypeA, Answer: []dns.RR{ - test.A("web.example.com. 3600 IN A 10.0.0.17"), + webdotexampledotcomRecordA, }, }, { - Qname: "www.example.com.", Qtype: dns.TypeCNAME, + Qname: wwwdotexampledotcomName, Qtype: dns.TypeCNAME, Answer: []dns.RR{ - test.CNAME("www.example.com. 3600 IN CNAME web.example.com."), - test.A("web.example.com. 3600 IN A 10.0.0.17"), + wwwdotexampledotcomRecordCNAME, + webdotexampledotcomRecordA, + }, + }, + { + Qname: wwwdotexampledotcomName, Qtype: dns.TypeA, + Answer: []dns.RR{ + wwwdotexampledotcomRecordCNAME, + webdotexampledotcomRecordA, }, }, { @@ -549,16 +572,23 @@ var ( }, }, { - Qname: "web.example.com.", Qtype: dns.TypeAAAA, + Qname: webdotexampledotcomName, Qtype: dns.TypeAAAA, Answer: []dns.RR{ - test.AAAA("web.example.com. 3600 IN AAAA 2001:db8:dead:beef::1:17"), + webdotexampledotcomRecordAAAA, }, }, { - Qname: "www.example.com.", Qtype: dns.TypeCNAME, + Qname: wwwdotexampledotcomName, Qtype: dns.TypeCNAME, Answer: []dns.RR{ - test.CNAME("www.example.com. 3600 IN CNAME web.example.com."), - test.AAAA("web.example.com. 3600 IN AAAA 2001:db8:dead:beef::1:17"), + wwwdotexampledotcomRecordCNAME, + webdotexampledotcomRecordAAAA, + }, + }, + { + Qname: wwwdotexampledotcomName, Qtype: dns.TypeAAAA, + Answer: []dns.RR{ + wwwdotexampledotcomRecordCNAME, + webdotexampledotcomRecordAAAA, }, }, {