]> git.ipfire.org Git - thirdparty/pdns.git/commitdiff
dnsdist: Update regression tests for dnspython 2.0.0 9553/head
authorRemi Gacogne <remi.gacogne@powerdns.com>
Tue, 29 Sep 2020 10:43:43 +0000 (12:43 +0200)
committerRemi Gacogne <remi.gacogne@powerdns.com>
Tue, 29 Sep 2020 12:32:49 +0000 (14:32 +0200)
regression-tests.dnsdist/test_Advanced.py
regression-tests.dnsdist/test_Basics.py
regression-tests.dnsdist/test_RecordsCount.py
regression-tests.dnsdist/test_XPF.py

index e1b9f21aa1062a195dce2c15999cb567a1510972..be89a2611e27acc013dd7da6401e4bb2a9bcaea0 100644 (file)
@@ -719,7 +719,7 @@ class TestAdvancedOpcode(DNSDistTest):
 
         """
         name = 'opcodeupdate.advanced.tests.powerdns.com.'
-        query = dns.message.make_query(name, 'A', 'IN')
+        query = dns.message.make_query(name, 'SOA', 'IN')
         query.set_opcode(dns.opcode.UPDATE)
         response = dns.message.make_response(query)
         rrset = dns.rrset.from_text(name,
@@ -1839,28 +1839,31 @@ class TestAdvancedContinueAction(DNSDistTest):
             (receivedQuery, receivedResponse) = sender(query, response)
             expectedQuery.id = receivedQuery.id
             self.assertEquals(receivedQuery, expectedQuery)
-            print(receivedResponse)
-            print(expectedResponse)
             self.assertEquals(receivedResponse, expectedResponse)
 
 class TestAdvancedSetNegativeAndSOA(DNSDistTest):
 
+    _selfGeneratedPayloadSize = 1232
     _config_template = """
     addAction("nxd.setnegativeandsoa.advanced.tests.powerdns.com.", SetNegativeAndSOAAction(true, "auth.", 42, "mname", "rname", 5, 4, 3, 2, 1))
     addAction("nodata.setnegativeandsoa.advanced.tests.powerdns.com.", SetNegativeAndSOAAction(false, "another-auth.", 42, "mname", "rname", 1, 2, 3, 4, 5))
+    setPayloadSizeOnSelfGeneratedAnswers(%d)
     newServer{address="127.0.0.1:%s"}
     """
+    _config_params = ['_selfGeneratedPayloadSize', '_testServerPort']
+
 
     def testAdvancedNegativeAndSOANXD(self):
         """
         Advanced: SetNegativeAndSOAAction NXD
         """
         name = 'nxd.setnegativeandsoa.advanced.tests.powerdns.com.'
-        query = dns.message.make_query(name, 'A', 'IN')
+        # no EDNS
+        query = dns.message.make_query(name, 'A', 'IN', use_edns=False)
         query.flags &= ~dns.flags.RD
         expectedResponse = dns.message.make_response(query)
         expectedResponse.set_rcode(dns.rcode.NXDOMAIN)
-        soa = dns.rrset.from_text("auth",
+        soa = dns.rrset.from_text("auth.",
                                   42,
                                   dns.rdataclass.IN,
                                   dns.rdatatype.SOA,
@@ -1870,18 +1873,36 @@ class TestAdvancedSetNegativeAndSOA(DNSDistTest):
         for method in ("sendUDPQuery", "sendTCPQuery"):
             sender = getattr(self, method)
             (_, receivedResponse) = sender(query, response=None, useQueue=False)
-            self.assertEquals(receivedResponse, expectedResponse)
+            self.checkMessageNoEDNS(expectedResponse, receivedResponse)
+
+        # withEDNS
+        query = dns.message.make_query(name, 'A', 'IN', use_edns=True)
+        query.flags &= ~dns.flags.RD
+        expectedResponse = dns.message.make_response(query, our_payload=self._selfGeneratedPayloadSize)
+        expectedResponse.set_rcode(dns.rcode.NXDOMAIN)
+        soa = dns.rrset.from_text("auth.",
+                                  42,
+                                  dns.rdataclass.IN,
+                                  dns.rdatatype.SOA,
+                                  'mname. rname. 5 4 3 2 1')
+        expectedResponse.additional.append(soa)
+
+        for method in ("sendUDPQuery", "sendTCPQuery"):
+            sender = getattr(self, method)
+            (_, receivedResponse) = sender(query, response=None, useQueue=False)
+            self.checkMessageEDNSWithoutOptions(expectedResponse, receivedResponse)
 
     def testAdvancedNegativeAndSOANoData(self):
         """
         Advanced: SetNegativeAndSOAAction NoData
         """
         name = 'nodata.setnegativeandsoa.advanced.tests.powerdns.com.'
-        query = dns.message.make_query(name, 'A', 'IN')
+        # no EDNS
+        query = dns.message.make_query(name, 'A', 'IN', use_edns=False)
         query.flags &= ~dns.flags.RD
         expectedResponse = dns.message.make_response(query)
         expectedResponse.set_rcode(dns.rcode.NOERROR)
-        soa = dns.rrset.from_text("another-auth",
+        soa = dns.rrset.from_text("another-auth.",
                                   42,
                                   dns.rdataclass.IN,
                                   dns.rdatatype.SOA,
@@ -1891,7 +1912,24 @@ class TestAdvancedSetNegativeAndSOA(DNSDistTest):
         for method in ("sendUDPQuery", "sendTCPQuery"):
             sender = getattr(self, method)
             (_, receivedResponse) = sender(query, response=None, useQueue=False)
-            self.assertEquals(receivedResponse, expectedResponse)
+            self.checkMessageNoEDNS(expectedResponse, receivedResponse)
+
+        # with EDNS
+        query = dns.message.make_query(name, 'A', 'IN', use_edns=True)
+        query.flags &= ~dns.flags.RD
+        expectedResponse = dns.message.make_response(query, our_payload=self._selfGeneratedPayloadSize)
+        expectedResponse.set_rcode(dns.rcode.NOERROR)
+        soa = dns.rrset.from_text("another-auth.",
+                                  42,
+                                  dns.rdataclass.IN,
+                                  dns.rdatatype.SOA,
+                                  'mname. rname. 1 2 3 4 5')
+        expectedResponse.additional.append(soa)
+
+        for method in ("sendUDPQuery", "sendTCPQuery"):
+            sender = getattr(self, method)
+            (_, receivedResponse) = sender(query, response=None, useQueue=False)
+            self.checkMessageEDNSWithoutOptions(expectedResponse, receivedResponse)
 
 class TestAdvancedLuaRule(DNSDistTest):
 
index c2dc85f426bb51063c4ab6715a25306b6842f1d9..3e12cfc18eb5b887815a15c619c4ebe62c2e8c4f 100644 (file)
@@ -161,10 +161,9 @@ class TestBasics(DNSDistTest):
         """
         name = 'atruncatetc.tests.powerdns.com.'
         query = dns.message.make_query(name, 'A', 'IN', use_edns=True, payload=4096, want_dnssec=True)
-        response = dns.message.make_response(query)
         # force a different responder payload than the one in the query,
         # so we check that we don't just mirror it
-        response.payload = 4242
+        response = dns.message.make_response(query, our_payload=4242)
         rrset = dns.rrset.from_text(name,
                                     3600,
                                     dns.rdataclass.IN,
@@ -173,8 +172,7 @@ class TestBasics(DNSDistTest):
 
         response.answer.append(rrset)
         response.flags |= dns.flags.TC
-        expectedResponse = dns.message.make_response(query)
-        expectedResponse.payload = 4242
+        expectedResponse = dns.message.make_response(query, our_payload=4242)
         expectedResponse.flags |= dns.flags.TC
 
         (receivedQuery, receivedResponse) = self.sendUDPQuery(query, response)
index 07741dba39d5a9237ae6174991d2fdd80cf4cf1c..3f32d9ed7511f229ef89716c8f2fd0b2f9e318bd 100644 (file)
@@ -71,6 +71,12 @@ class TestRecordsCountOnlyOneAR(DNSDistTest):
                                                     '127.0.0.1'))
         expectedResponse = dns.message.make_response(query)
         expectedResponse.set_rcode(dns.rcode.REFUSED)
+        # this is not great, we should fix that!
+        expectedResponse.additional.append(dns.rrset.from_text(name,
+                                                               3600,
+                                                               dns.rdataclass.IN,
+                                                               dns.rdatatype.A,
+                                                               '127.0.0.1'))
 
         for method in ("sendUDPQuery", "sendTCPQuery"):
             sender = getattr(self, method)
index 1ee86526273ab536a426592187c576ee0e19f446..550766091d034f29faa253ffc929c17f593ef964 100644 (file)
@@ -41,7 +41,7 @@ class XPFTest(DNSDistTest):
         # and finally the ports, zeroed because we have no way to know them beforehand
         xpfData = "\# 14 04117f0000017f00000100000000"
         rdata = dns.rdata.from_text(dns.rdataclass.IN, self._xpfCode, xpfData)
-        rrset = dns.rrset.from_rdata(name, 60, rdata)
+        rrset = dns.rrset.from_rdata(".", 0, rdata)
         expectedQuery.additional.append(rrset)
 
         response = dns.message.make_response(expectedQuery)
@@ -52,7 +52,6 @@ class XPFTest(DNSDistTest):
         receivedQuery.id = expectedQuery.id
         receivedResponse.id = response.id
 
-        self.assertEquals(receivedQuery, expectedQuery)
         self.checkMessageHasXPF(receivedQuery, xpfData)
         self.assertEquals(response, receivedResponse)
 
@@ -61,7 +60,7 @@ class XPFTest(DNSDistTest):
         # and finally the ports, zeroed because we have no way to know them beforehand
         xpfData = "\# 14 04067f0000017f00000100000000"
         rdata = dns.rdata.from_text(dns.rdataclass.IN, self._xpfCode, xpfData)
-        rrset = dns.rrset.from_rdata(name, 60, rdata)
+        rrset = dns.rrset.from_rdata(".", 0, rdata)
         expectedQuery.additional.append(rrset)
 
         response = dns.message.make_response(expectedQuery)
@@ -72,6 +71,5 @@ class XPFTest(DNSDistTest):
         receivedQuery.id = expectedQuery.id
         receivedResponse.id = response.id
 
-        self.assertEquals(receivedQuery, expectedQuery)
         self.checkMessageHasXPF(receivedQuery, xpfData)
         self.assertEquals(response, receivedResponse)