mirror of
https://gitlab.nic.cz/knot/knot-dns.git
synced 2026-06-08 16:12:37 -04:00
func-test: add explicit checks to nsec/nsec3 tests
This commit is contained in:
parent
0e38ba03ed
commit
ccdc39e04b
3 changed files with 31 additions and 3 deletions
|
|
@ -18,34 +18,42 @@ t.start()
|
|||
|
||||
# B1. Answer.
|
||||
resp = knot.dig("x.w.example", "MX", dnssec=True)
|
||||
resp.check(rcode="NOERROR", flags="QR AA", eflags="DO")
|
||||
resp.cmp(bind)
|
||||
|
||||
# B2. Name Error.
|
||||
resp = knot.dig("mv.example", "A", dnssec=True)
|
||||
resp = knot.dig("ml.example", "A", dnssec=True)
|
||||
resp.check(rcode="NXDOMAIN", flags="QR AA", eflags="DO")
|
||||
resp.cmp(bind)
|
||||
|
||||
# B3. No Data Error.
|
||||
resp = knot.dig("ns1.example", "MX", dnssec=True)
|
||||
resp.check(rcode="NOERROR", flags="QR AA", eflags="DO")
|
||||
resp.cmp(bind)
|
||||
|
||||
# B4. Referral to Signed Zone.
|
||||
resp = knot.dig("mc.a.example", "MX", dnssec=True)
|
||||
resp.check(rcode="NOERROR", flags="QR", noflags="AA", eflags="DO")
|
||||
resp.cmp(bind)
|
||||
|
||||
# B5. Referral to Unsigned Zone.
|
||||
resp = knot.dig("mc.b.example", "MX", dnssec=True)
|
||||
resp.check(rcode="NOERROR", flags="QR", noflags="AA", eflags="DO")
|
||||
resp.cmp(bind)
|
||||
|
||||
# B6. Wildcard Expansion.
|
||||
resp = knot.dig("a.z.w.example", "MX", dnssec=True)
|
||||
resp.check(rcode="NOERROR", flags="QR AA", eflags="DO")
|
||||
resp.cmp(bind)
|
||||
|
||||
# B7. Wildcard No Data Error.
|
||||
resp = knot.dig("a.z.w.example", "AAAA", dnssec=True)
|
||||
resp.check(rcode="NOERROR", flags="QR AA", eflags="DO")
|
||||
resp.cmp(bind)
|
||||
|
||||
# B8. DS Child Zone No Data Error.
|
||||
resp = knot.dig("example", "DS", dnssec=True)
|
||||
resp.check(rcode="NOERROR", flags="QR AA", eflags="DO")
|
||||
resp.cmp(bind)
|
||||
|
||||
t.end()
|
||||
|
|
|
|||
|
|
@ -18,34 +18,42 @@ t.start()
|
|||
|
||||
# B1. Answer.
|
||||
resp = knot.dig("x.w.example", "MX", dnssec=True)
|
||||
resp.check(rcode="NOERROR", flags="QR AA", eflags="DO")
|
||||
resp.cmp(bind)
|
||||
|
||||
# B2. Name Error.
|
||||
resp = knot.dig("mv.example", "A", dnssec=True)
|
||||
resp = knot.dig("ml.example", "A", dnssec=True)
|
||||
resp.check(rcode="NXDOMAIN", flags="QR AA", eflags="DO")
|
||||
resp.cmp(bind)
|
||||
|
||||
# B3. No Data Error.
|
||||
resp = knot.dig("ns1.example", "MX", dnssec=True)
|
||||
resp.check(rcode="NOERROR", flags="QR AA", eflags="DO")
|
||||
resp.cmp(bind)
|
||||
|
||||
# B4. Referral to Signed Zone.
|
||||
resp = knot.dig("mc.a.example", "MX", dnssec=True)
|
||||
resp.check(rcode="NOERROR", flags="QR", noflags="AA", eflags="DO")
|
||||
resp.cmp(bind)
|
||||
|
||||
# B5. Referral to Unsigned Zone.
|
||||
resp = knot.dig("mc.b.example", "MX", dnssec=True)
|
||||
resp.check(rcode="NOERROR", flags="QR", noflags="AA", eflags="DO")
|
||||
resp.cmp(bind)
|
||||
|
||||
# B6. Wildcard Expansion.
|
||||
resp = knot.dig("a.z.w.example", "MX", dnssec=True)
|
||||
resp.check(rcode="NOERROR", flags="QR AA", eflags="DO")
|
||||
resp.cmp(bind)
|
||||
|
||||
# B7. Wildcard No Data Error.
|
||||
resp = knot.dig("a.z.w.example", "AAAA", dnssec=True)
|
||||
resp.check(rcode="NOERROR", flags="QR AA", eflags="DO")
|
||||
resp.cmp(bind)
|
||||
|
||||
# B8. DS Child Zone No Data Error.
|
||||
resp = knot.dig("example", "DS", dnssec=True)
|
||||
resp.check(rcode="NOERROR", flags="QR AA", eflags="DO")
|
||||
resp.cmp(bind)
|
||||
|
||||
t.end()
|
||||
|
|
|
|||
|
|
@ -42,11 +42,23 @@ class Response(object):
|
|||
flag_val = dns.flags.from_text(flag)
|
||||
isset(not(self.resp.flags & flag_val), "no %s flag" % flag)
|
||||
|
||||
def _check_eflags(self, eflags, noeflags):
|
||||
eflag_names = eflags.split()
|
||||
for flag in eflag_names:
|
||||
flag_val = dns.flags.edns_from_text(flag)
|
||||
isset(self.resp.ednsflags & flag_val, "%s flag" % flag)
|
||||
|
||||
eflag_names = noeflags.split()
|
||||
for flag in eflag_names:
|
||||
flag_val = dns.flags.edns_from_text(flag)
|
||||
isset(not(self.resp.ednsflags & flag_val), "no %s flag" % flag)
|
||||
|
||||
def check(self, rdata=None, ttl=None, rcode="NOERROR", flags="", \
|
||||
noflags=""):
|
||||
noflags="", eflags="", noeflags=""):
|
||||
'''Flags are text strings separated by whitespace character'''
|
||||
|
||||
self._check_flags(flags, noflags)
|
||||
self._check_eflags(eflags, noeflags)
|
||||
self._check_question()
|
||||
|
||||
# Check rcode.
|
||||
|
|
|
|||
Loading…
Reference in a new issue