mw/file: wildcard at apex fix (#785)
* mw/file: wildcard at apex fix This adds a test case (that does passes!) * completer test
This commit is contained in:
parent
6f152dd8fd
commit
df137d971c
1 changed files with 61 additions and 0 deletions
|
@ -212,6 +212,60 @@ func TestReplaceWithAsteriskLabel(t *testing.T) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var apexWildcardTestCases = []test.Case{
|
||||||
|
{
|
||||||
|
Qname: "foo.example.org.", Qtype: dns.TypeA,
|
||||||
|
Answer: []dns.RR{test.A(`foo.example.org. 3600 IN A 127.0.0.54`)},
|
||||||
|
Ns: []dns.RR{test.NS(`example.org. 3600 IN NS b.iana-servers.net.`)},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
Qname: "bar.example.org.", Qtype: dns.TypeA,
|
||||||
|
Answer: []dns.RR{test.A(`bar.example.org. 3600 IN A 127.0.0.53`)},
|
||||||
|
Ns: []dns.RR{test.NS(`example.org. 3600 IN NS b.iana-servers.net.`)},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestLookupApexWildcard(t *testing.T) {
|
||||||
|
const name = "example.org."
|
||||||
|
zone, err := Parse(strings.NewReader(apexWildcard), name, "stdin", 0)
|
||||||
|
if err != nil {
|
||||||
|
t.Fatalf("Expect no error when reading zone, got %q", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
fm := File{Next: test.ErrorHandler(), Zones: Zones{Z: map[string]*Zone{name: zone}, Names: []string{name}}}
|
||||||
|
ctx := context.TODO()
|
||||||
|
|
||||||
|
for _, tc := range apexWildcardTestCases {
|
||||||
|
m := tc.Msg()
|
||||||
|
|
||||||
|
rec := dnsrecorder.New(&test.ResponseWriter{})
|
||||||
|
_, err := fm.ServeDNS(ctx, rec, m)
|
||||||
|
if err != nil {
|
||||||
|
t.Errorf("Expected no error, got %v\n", err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
resp := rec.Msg
|
||||||
|
sort.Sort(test.RRSet(resp.Answer))
|
||||||
|
sort.Sort(test.RRSet(resp.Ns))
|
||||||
|
sort.Sort(test.RRSet(resp.Extra))
|
||||||
|
|
||||||
|
if !test.Header(t, tc, resp) {
|
||||||
|
t.Logf("%v\n", resp)
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
if !test.Section(t, tc, test.Answer, resp.Answer) {
|
||||||
|
t.Logf("%v\n", resp)
|
||||||
|
}
|
||||||
|
if !test.Section(t, tc, test.Ns, resp.Ns) {
|
||||||
|
t.Logf("%v\n", resp)
|
||||||
|
}
|
||||||
|
if !test.Section(t, tc, test.Extra, resp.Extra) {
|
||||||
|
t.Logf("%v\n", resp)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
const exampleOrg = `; example.org test file
|
const exampleOrg = `; example.org test file
|
||||||
example.org. IN SOA sns.dns.icann.org. noc.dns.icann.org. 2015082541 7200 3600 1209600 3600
|
example.org. IN SOA sns.dns.icann.org. noc.dns.icann.org. 2015082541 7200 3600 1209600 3600
|
||||||
example.org. IN NS b.iana-servers.net.
|
example.org. IN NS b.iana-servers.net.
|
||||||
|
@ -224,3 +278,10 @@ a.b.c.w.example.org. IN TXT "Not a wildcard"
|
||||||
*.d.example.org. IN CNAME alias.example.org.
|
*.d.example.org. IN CNAME alias.example.org.
|
||||||
alias.example.org. IN TXT "Wildcard CNAME expansion"
|
alias.example.org. IN TXT "Wildcard CNAME expansion"
|
||||||
`
|
`
|
||||||
|
|
||||||
|
const apexWildcard = `; example.org test file with wildcard at apex
|
||||||
|
example.org. IN SOA sns.dns.icann.org. noc.dns.icann.org. 2015082541 7200 3600 1209600 3600
|
||||||
|
example.org. IN NS b.iana-servers.net.
|
||||||
|
*.example.org. IN A 127.0.0.53
|
||||||
|
foo.example.org. IN A 127.0.0.54
|
||||||
|
`
|
||||||
|
|
Loading…
Add table
Reference in a new issue