From: Remi Gacogne Date: Tue, 19 Nov 2019 14:18:19 +0000 (+0100) Subject: dnsdist: Update tests now that more actions default to RA=RD X-Git-Tag: auth-4.3.0-beta1~26^2 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=refs%2Fpull%2F8556%2Fhead;p=thirdparty%2Fpdns.git dnsdist: Update tests now that more actions default to RA=RD --- diff --git a/regression-tests.dnsdist/test_Advanced.py b/regression-tests.dnsdist/test_Advanced.py index 3d9fb5716f..6be7d4f3c0 100644 --- a/regression-tests.dnsdist/test_Advanced.py +++ b/regression-tests.dnsdist/test_Advanced.py @@ -496,6 +496,8 @@ class TestAdvancedAndNot(DNSDistTest): """ name = 'andnot.advanced.tests.powerdns.com.' query = dns.message.make_query(name, 'TXT', 'IN') + # dnsdist sets RA = RD for TC responses + query.flags &= ~dns.flags.RD expectedResponse = dns.message.make_response(query) expectedResponse.set_rcode(dns.rcode.NOTIMP) @@ -535,6 +537,7 @@ class TestAdvancedOr(DNSDistTest): """ name = 'aorudp.advanced.tests.powerdns.com.' query = dns.message.make_query(name, 'AAAA', 'IN') + query.flags &= ~dns.flags.RD response = dns.message.make_response(query) rrset = dns.rrset.from_text(name, 3600, @@ -567,6 +570,7 @@ class TestAdvancedOr(DNSDistTest): """ name = 'aorudp.advanced.tests.powerdns.com.' query = dns.message.make_query(name, 'A', 'IN') + query.flags &= ~dns.flags.RD expectedResponse = dns.message.make_response(query) expectedResponse.set_rcode(dns.rcode.NOTIMP) @@ -901,6 +905,7 @@ class TestAdvancedQPSNone(DNSDistTest): """ name = 'qpsnone.advanced.tests.powerdns.com.' query = dns.message.make_query(name, 'A', 'IN') + query.flags &= ~dns.flags.RD expectedResponse = dns.message.make_response(query) expectedResponse.set_rcode(dns.rcode.REFUSED) @@ -927,6 +932,7 @@ class TestAdvancedNMGRule(DNSDistTest): """ name = 'nmgrule.advanced.tests.powerdns.com.' query = dns.message.make_query(name, 'A', 'IN') + query.flags &= ~dns.flags.RD expectedResponse = dns.message.make_response(query) expectedResponse.set_rcode(dns.rcode.REFUSED) @@ -953,6 +959,7 @@ class TestDSTPortRule(DNSDistTest): name = 'dstportrule.advanced.tests.powerdns.com.' query = dns.message.make_query(name, 'A', 'IN') + query.flags &= ~dns.flags.RD expectedResponse = dns.message.make_response(query) expectedResponse.set_rcode(dns.rcode.REFUSED) @@ -995,6 +1002,7 @@ class TestAdvancedLabelsCountRule(DNSDistTest): # more than 6 labels, the query should be refused name = 'not.ok.labelscount.advanced.tests.powerdns.com.' query = dns.message.make_query(name, 'A', 'IN') + query.flags &= ~dns.flags.RD expectedResponse = dns.message.make_response(query) expectedResponse.set_rcode(dns.rcode.REFUSED) @@ -1006,6 +1014,7 @@ class TestAdvancedLabelsCountRule(DNSDistTest): # less than 5 labels, the query should be refused name = 'labelscountadvanced.tests.powerdns.com.' query = dns.message.make_query(name, 'A', 'IN') + query.flags &= ~dns.flags.RD expectedResponse = dns.message.make_response(query) expectedResponse.set_rcode(dns.rcode.REFUSED) @@ -1047,6 +1056,7 @@ class TestAdvancedWireLengthRule(DNSDistTest): # too short, the query should be refused name = 'short.qnamewirelength.advanced.tests.powerdns.com.' query = dns.message.make_query(name, 'A', 'IN') + query.flags &= ~dns.flags.RD expectedResponse = dns.message.make_response(query) expectedResponse.set_rcode(dns.rcode.REFUSED) @@ -1058,6 +1068,7 @@ class TestAdvancedWireLengthRule(DNSDistTest): # too long, the query should be refused name = 'toolongtobevalid.qnamewirelength.advanced.tests.powerdns.com.' query = dns.message.make_query(name, 'A', 'IN') + query.flags &= ~dns.flags.RD expectedResponse = dns.message.make_response(query) expectedResponse.set_rcode(dns.rcode.REFUSED) @@ -1100,6 +1111,7 @@ class TestAdvancedIncludeDir(DNSDistTest): # this one should be refused name = 'notincludedir.advanced.tests.powerdns.com.' query = dns.message.make_query(name, 'A', 'IN') + query.flags &= ~dns.flags.RD expectedResponse = dns.message.make_response(query) expectedResponse.set_rcode(dns.rcode.REFUSED) @@ -1367,6 +1379,7 @@ class TestAdvancedRD(DNSDistTest): query = dns.message.make_query(name, 'A', 'IN') expectedResponse = dns.message.make_response(query) expectedResponse.set_rcode(dns.rcode.REFUSED) + expectedResponse.flags |= dns.flags.RA for method in ("sendUDPQuery", "sendTCPQuery"): sender = getattr(self, method) @@ -1661,14 +1674,15 @@ class TestAdvancedEDNSVersionRule(DNSDistTest): addAction(EDNSVersionRule(0), ERCodeAction(DNSRCode.BADVERS)) """ - def testDropped(self): + def testBadVers(self): """ - Advanced: A question with ECS version larger than 0 is dropped + Advanced: A question with ECS version larger than 0 yields BADVERS """ name = 'ednsversionrule.advanced.tests.powerdns.com.' query = dns.message.make_query(name, 'A', 'IN', use_edns=1) + query.flags &= ~dns.flags.RD expectedResponse = dns.message.make_response(query) expectedResponse.set_rcode(dns.rcode.BADVERS) diff --git a/regression-tests.dnsdist/test_Basics.py b/regression-tests.dnsdist/test_Basics.py index 79efaa0fc4..c2dc85f426 100644 --- a/regression-tests.dnsdist/test_Basics.py +++ b/regression-tests.dnsdist/test_Basics.py @@ -203,6 +203,7 @@ class TestBasics(DNSDistTest): """ name = 'evil4242.regex.tests.powerdns.com.' query = dns.message.make_query(name, 'A', 'IN') + query.flags &= ~dns.flags.RD expectedResponse = dns.message.make_response(query) expectedResponse.set_rcode(dns.rcode.REFUSED) @@ -245,6 +246,7 @@ class TestBasics(DNSDistTest): """ name = 'nameAndQtype.tests.powerdns.com.' query = dns.message.make_query(name, 'TXT', 'IN') + query.flags &= ~dns.flags.RD expectedResponse = dns.message.make_response(query) expectedResponse.set_rcode(dns.rcode.NOTIMP) @@ -398,6 +400,7 @@ class TestBasics(DNSDistTest): """ name = 'dnsname.addaction.powerdns.com.' query = dns.message.make_query(name, 'A', 'IN') + query.flags &= ~dns.flags.RD expectedResponse = dns.message.make_response(query) expectedResponse.set_rcode(dns.rcode.REFUSED) @@ -412,6 +415,7 @@ class TestBasics(DNSDistTest): """ for name in ['dnsname-table{}.addaction.powerdns.com.'.format(i) for i in range(1,2)]: query = dns.message.make_query(name, 'A', 'IN') + query.flags &= ~dns.flags.RD expectedResponse = dns.message.make_response(query) expectedResponse.set_rcode(dns.rcode.REFUSED) diff --git a/regression-tests.dnsdist/test_DOH.py b/regression-tests.dnsdist/test_DOH.py index 563d3b5029..bb27fde286 100644 --- a/regression-tests.dnsdist/test_DOH.py +++ b/regression-tests.dnsdist/test_DOH.py @@ -321,6 +321,7 @@ class TestDOH(DNSDistDOHTest): name = 'refused.doh.tests.powerdns.com.' query = dns.message.make_query(name, 'A', 'IN') query.id = 0 + query.flags &= ~dns.flags.RD expectedResponse = dns.message.make_response(query) expectedResponse.set_rcode(dns.rcode.REFUSED) diff --git a/regression-tests.dnsdist/test_EDNSSelfGenerated.py b/regression-tests.dnsdist/test_EDNSSelfGenerated.py index 25984ecfcf..42567f3cab 100644 --- a/regression-tests.dnsdist/test_EDNSSelfGenerated.py +++ b/regression-tests.dnsdist/test_EDNSSelfGenerated.py @@ -33,6 +33,7 @@ class TestEDNSSelfGenerated(DNSDistTest): """ name = 'no-edns.rcode.edns-self.tests.powerdns.com.' query = dns.message.make_query(name, 'A', 'IN') + query.flags &= ~dns.flags.RD expectedResponse = dns.message.make_response(query) expectedResponse.set_rcode(dns.rcode.REFUSED) @@ -85,6 +86,7 @@ class TestEDNSSelfGenerated(DNSDistTest): """ name = 'edns-no-do.rcode.edns-self.tests.powerdns.com.' query = dns.message.make_query(name, 'A', 'IN', use_edns=True, payload=4096, want_dnssec=False) + query.flags &= ~dns.flags.RD expectedResponse = dns.message.make_response(query, our_payload=1042) expectedResponse.set_rcode(dns.rcode.REFUSED) @@ -145,6 +147,7 @@ class TestEDNSSelfGenerated(DNSDistTest): """ name = 'edns-do.rcode.edns-self.tests.powerdns.com.' query = dns.message.make_query(name, 'A', 'IN', use_edns=True, payload=4096, want_dnssec=True) + query.flags &= ~dns.flags.RD expectedResponse = dns.message.make_response(query, our_payload=1042) expectedResponse.set_rcode(dns.rcode.REFUSED) @@ -206,6 +209,7 @@ class TestEDNSSelfGenerated(DNSDistTest): name = 'edns-options.rcode.edns-self.tests.powerdns.com.' ecso = clientsubnetoption.ClientSubnetOption('127.0.0.1', 24) query = dns.message.make_query(name, 'A', 'IN', use_edns=True, options=[ecso], payload=512, want_dnssec=True) + query.flags &= ~dns.flags.RD expectedResponse = dns.message.make_response(query, our_payload=1042) expectedResponse.set_rcode(dns.rcode.REFUSED) @@ -292,6 +296,7 @@ class TestEDNSSelfGeneratedDisabled(DNSDistTest): """ name = 'edns-no-do.rcode.edns-self-disabled.tests.powerdns.com.' query = dns.message.make_query(name, 'A', 'IN', use_edns=True, payload=4096, want_dnssec=False) + query.flags &= ~dns.flags.RD expectedResponse = dns.message.make_response(query) expectedResponse.set_rcode(dns.rcode.REFUSED) diff --git a/regression-tests.dnsdist/test_RecordsCount.py b/regression-tests.dnsdist/test_RecordsCount.py index 1abe575fd0..07741dba39 100644 --- a/regression-tests.dnsdist/test_RecordsCount.py +++ b/regression-tests.dnsdist/test_RecordsCount.py @@ -20,6 +20,7 @@ class TestRecordsCountOnlyOneAR(DNSDistTest): """ name = 'refuseemptyar.recordscount.tests.powerdns.com.' query = dns.message.make_query(name, 'A', 'IN') + query.flags &= ~dns.flags.RD expectedResponse = dns.message.make_response(query) expectedResponse.set_rcode(dns.rcode.REFUSED) @@ -62,6 +63,7 @@ class TestRecordsCountOnlyOneAR(DNSDistTest): """ name = 'refusetwoar.recordscount.tests.powerdns.com.' query = dns.message.make_query(name, 'A', 'IN', use_edns=True) + query.flags &= ~dns.flags.RD query.additional.append(dns.rrset.from_text(name, 3600, dns.rdataclass.IN, @@ -92,6 +94,7 @@ class TestRecordsCountMoreThanOneLessThanFour(DNSDistTest): """ name = 'refusenoan.recordscount.tests.powerdns.com.' query = dns.message.make_query(name, 'A', 'IN') + query.flags &= ~dns.flags.RD expectedResponse = dns.message.make_response(query) expectedResponse.set_rcode(dns.rcode.REFUSED) @@ -136,6 +139,7 @@ class TestRecordsCountMoreThanOneLessThanFour(DNSDistTest): """ name = 'refusefouran.recordscount.tests.powerdns.com.' query = dns.message.make_query(name, 'A', 'IN', use_edns=True) + query.flags &= ~dns.flags.RD rrset = dns.rrset.from_text_list(name, 3600, dns.rdataclass.IN, @@ -175,6 +179,7 @@ class TestRecordsCountNothingInNS(DNSDistTest): dns.rdatatype.NS, 'ns.tests.powerdns.com.') query.authority.append(rrset) + query.flags &= ~dns.flags.RD expectedResponse = dns.message.make_response(query) expectedResponse.set_rcode(dns.rcode.REFUSED) expectedResponse.authority.append(rrset) @@ -226,6 +231,7 @@ class TestRecordsCountNoOPTInAR(DNSDistTest): """ name = 'refuseoptinar.recordscount.tests.powerdns.com.' query = dns.message.make_query(name, 'A', 'IN', use_edns=True) + query.flags &= ~dns.flags.RD expectedResponse = dns.message.make_response(query) expectedResponse.set_rcode(dns.rcode.REFUSED) diff --git a/regression-tests.dnsdist/test_TCPKeepAlive.py b/regression-tests.dnsdist/test_TCPKeepAlive.py index f975c9f403..c0c8ebb675 100644 --- a/regression-tests.dnsdist/test_TCPKeepAlive.py +++ b/regression-tests.dnsdist/test_TCPKeepAlive.py @@ -45,6 +45,7 @@ class TestTCPKeepAlive(DNSDistTest): """ name = 'refused.tcpka.tests.powerdns.com.' query = dns.message.make_query(name, 'A', 'IN') + query.flags &= ~dns.flags.RD expectedResponse = dns.message.make_response(query) expectedResponse.set_rcode(dns.rcode.REFUSED)