From: Otto Moerbeek Date: Wed, 26 Nov 2025 13:14:33 +0000 (+0100) Subject: Fix tests using ANY queries X-Git-Tag: rec-5.4.0-alpha1~37^2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=refs%2Fpull%2F16553%2Fhead;p=thirdparty%2Fpdns.git Fix tests using ANY queries Signed-off-by: Otto Moerbeek --- diff --git a/regression-tests.recursor-dnssec/test_Interop.py b/regression-tests.recursor-dnssec/test_Interop.py index a00e746610..53090134cc 100644 --- a/regression-tests.recursor-dnssec/test_Interop.py +++ b/regression-tests.recursor-dnssec/test_Interop.py @@ -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==') diff --git a/regression-tests.recursor-dnssec/test_Protobuf.py b/regression-tests.recursor-dnssec/test_Protobuf.py index e9e4553945..f89a7ecbf0 100644 --- a/regression-tests.recursor-dnssec/test_Protobuf.py +++ b/regression-tests.recursor-dnssec/test_Protobuf.py @@ -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]) diff --git a/regression-tests.recursor-dnssec/test_Sortlist.py b/regression-tests.recursor-dnssec/test_Sortlist.py index 000827bf4b..a8b22588ac 100644 --- a/regression-tests.recursor-dnssec/test_Sortlist.py +++ b/regression-tests.recursor-dnssec/test_Sortlist.py @@ -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)