write sanity checker for tests ("rpllint")
There is many ways how to write a test which actually does not testing anything but reports OK. Sanity checker would help a lot. Ideas what can be checked:
-
STEP QUERY should not have MATCH rule -
iter_lame_aaaa.rpl
has MATCH TCP in QUERY steps
-
-
STEP CHECK_ANSWER should have MATCH rule -
STEP CHECK_ANSWER: non-empty sections in ENTRY should be listed in MATCH rule -
STEP CHECK_ANSWER: if ENTRY specifies REPLY with a rcode
thanrcode
should be present in MATCH rule -
STEP CHECK_ANSWER: if ENTRY specifies REPLY some flags than they should be present in MATCH rule -
ENTRY should have ADJUST copy_id -
ENTRY MATCH without qname & qtype should have ADJUST copy_query -
ENTRY definitions with AUTHORITY section containing NS records: consider using subdomain MATCH rule -
RANGE with multiple entries contains an ENTRY with too broad MATCH rule which masks entries defined later -
trust-anchor option contains domain without trailing period (allows to detect typos like 100 IN DS abcdef
vs.. 100 IN DS abcded
) -
tests with RRSIG records or AD flag present somewhere should have trust-anchor
present in test configuration -
tests with RRSIG records present somewhere should have val-override-date
orval-override-timestamp
present in test configuration to make it deterministic -
two overlapping RANGEs should not have the same IP in their addresses -
ENTRY should not have two RCODEs in REPLY
Some of these checks might not be applicable in all cases. Particular check can be overriden by comment on the offending line.