]> git.ipfire.org Git - thirdparty/pdns.git/commitdiff
Fix tests using ANY queries 16553/head
authorOtto Moerbeek <otto.moerbeek@open-xchange.com>
Wed, 26 Nov 2025 13:14:33 +0000 (14:14 +0100)
committerOtto Moerbeek <otto.moerbeek@open-xchange.com>
Wed, 26 Nov 2025 13:33:56 +0000 (14:33 +0100)
Signed-off-by: Otto Moerbeek <otto.moerbeek@open-xchange.com>
regression-tests.recursor-dnssec/test_Interop.py
regression-tests.recursor-dnssec/test_Protobuf.py
regression-tests.recursor-dnssec/test_Sortlist.py

index a00e746610d09b40ad1b01f9946d599abd53f7f4..53090134cc6739ba1a466014ea82b2b22b62556e 100644 (file)
@@ -209,7 +209,7 @@ forward-zones+=undelegated.insecure.example=%s.12
         query = dns.message.make_query('non-apex-dnskey3.secure.example.', 'ANY')
         query.flags |= dns.flags.AD
 
-        res = self.sendUDPQuery(query)
+        res = self.sendTCPQuery(query)
         print(res)
         expectedDNSKEY = dns.rrset.from_text('non-apex-dnskey3.secure.example.', 0, dns.rdataclass.IN, 'DNSKEY', '256 3 13 DT6AJ4MEOtNDgj0+xLtTLGHf1WbLsKWZI8ONHOt/6q7hTjeWSnY/SGig1dIKZrHg+pJFUSPaxeShv48SYVRKEg==')
 
index e9e4553945a9dca2434867e725e73bc71c9c9405..f89a7ecbf02d8e34f823e9cdc310d99a1ceb9e86 100644 (file)
@@ -1507,19 +1507,30 @@ auth-zones=example=configs/%s/example.zone""" % _confdir
                    ]
         query = dns.message.make_query(name, 'ANY', want_dnssec=True)
         query.flags |= dns.flags.CD
-        raw = self.sendUDPQuery(query, decode=False)
-        res = dns.message.from_wire(raw)
+        raw1 = self.sendUDPQuery(query, decode=False)
+        res = dns.message.from_wire(raw1)
+        self.assertMessageHasFlags(res, ['QR', 'TC', 'RD', 'RA', 'CD'], ['DO'])
+        raw2 = self.sendTCPQuery(query, decode=False)
+        res = dns.message.from_wire(raw2)
 
         for rrset in expected:
             self.assertRRsetInAnswer(res, rrset)
 
-        # check the protobuf messages corresponding to the UDP query and answer
+        # check the protobuf messages corresponding to the UDP query
         msg = self.getFirstProtobufMessage()
         self.checkProtobufQuery(msg, dnsmessage_pb2.PBDNSMessage.UDP, query, dns.rdataclass.IN, dns.rdatatype.ANY, name)
-        # then the response
+        # then TC response
         msg = self.getFirstProtobufMessage()
-        self.checkProtobufResponse(msg, dnsmessage_pb2.PBDNSMessage.UDP, res, '127.0.0.1', receivedSize=len(raw))
+        self.checkProtobufResponse(msg, dnsmessage_pb2.PBDNSMessage.UDP, res, '127.0.0.1', receivedSize=len(raw1))
+        self.assertEqual(len(msg.response.rrs), 0)
+
+        # check the protobuf messages corresponding to the TCP query and answer
+        msg = self.getFirstProtobufMessage()
+        self.checkProtobufQuery(msg, dnsmessage_pb2.PBDNSMessage.TCP, query, dns.rdataclass.IN, dns.rdatatype.ANY, name)
+        msg = self.getFirstProtobufMessage()
+        self.checkProtobufResponse(msg, dnsmessage_pb2.PBDNSMessage.TCP, res, '127.0.0.1', receivedSize=len(raw2))
         self.assertEqual(len(msg.response.rrs), 5)
+
         for rr in msg.response.rrs:
             self.assertIn(rr.type, [dns.rdatatype.AAAA, dns.rdatatype.TXT, dns.rdatatype.MX, dns.rdatatype.SPF, dns.rdatatype.SRV])
 
index 000827bf4b55189b35580ba32b3e8cc03aaf15f6..a8b22588ac25f3cc749cd02f84197725b78916c5 100644 (file)
@@ -18,7 +18,9 @@ class SortlistTest(RecursorTest):
         msg.flags = dns.flags.from_text('RD')
 
         res = self.sendUDPQuery(msg, fwparams=dict(one_rr_per_rrset=True))
+        self.assertMessageHasFlags(res, ['QR', 'RA', 'RD', 'TC'], [])
 
+        res = self.sendTCPQuery(msg, fwparams=dict(one_rr_per_rrset=True))
         self.assertMessageHasFlags(res, ['QR', 'RA', 'RD'], [])
         self.assertRcodeEqual(res, dns.rcode.NOERROR)