Go vet and golint the new code once again. Drop Name from NameTemplate - it's cleaner: nametemplate.Template.
55 lines
1.3 KiB
Go
55 lines
1.3 KiB
Go
package dnsutil
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/miekg/dns"
|
|
)
|
|
|
|
func TestDuplicateCNAME(t *testing.T) {
|
|
tests := []struct {
|
|
cname string
|
|
records []string
|
|
expected bool
|
|
}{
|
|
{
|
|
"1.0.0.192.IN-ADDR.ARPA. 3600 IN CNAME 1.0.0.0.192.IN-ADDR.ARPA.",
|
|
[]string{
|
|
"US. 86400 IN NSEC 0-.us. NS SOA RRSIG NSEC DNSKEY TYPE65534",
|
|
"1.0.0.192.IN-ADDR.ARPA. 3600 IN CNAME 1.0.0.0.192.IN-ADDR.ARPA.",
|
|
},
|
|
true,
|
|
},
|
|
{
|
|
"1.0.0.192.IN-ADDR.ARPA. 3600 IN CNAME 1.0.0.0.192.IN-ADDR.ARPA.",
|
|
[]string{
|
|
"US. 86400 IN NSEC 0-.us. NS SOA RRSIG NSEC DNSKEY TYPE65534",
|
|
},
|
|
false,
|
|
},
|
|
{
|
|
"1.0.0.192.IN-ADDR.ARPA. 3600 IN CNAME 1.0.0.0.192.IN-ADDR.ARPA.",
|
|
[]string{},
|
|
false,
|
|
},
|
|
}
|
|
for i, test := range tests {
|
|
cnameRR, err := dns.NewRR(test.cname)
|
|
if err != nil {
|
|
t.Fatalf("Test %d, cname ('%s') error (%s)!", i, test.cname, err)
|
|
}
|
|
cname := cnameRR.(*dns.CNAME)
|
|
records := []dns.RR{}
|
|
for j, r := range test.records {
|
|
rr, err := dns.NewRR(r)
|
|
if err != nil {
|
|
t.Fatalf("Test %d, record %d ('%s') error (%s)!", i, j, r, err)
|
|
}
|
|
records = append(records, rr)
|
|
}
|
|
got := DuplicateCNAME(cname, records)
|
|
if got != test.expected {
|
|
t.Errorf("Test %d, expected '%v', got '%v' for CNAME ('%s') and RECORDS (%v)", i, test.expected, got, test.cname, test.records)
|
|
}
|
|
}
|
|
}
|