From 5610589f460e3422755d7b4d3ed0d2639385b82f Mon Sep 17 00:00:00 2001 From: Otto Moerbeek Date: Wed, 26 Nov 2025 14:14:33 +0100 Subject: [PATCH] Fix tests using ANY queries Signed-off-by: Otto Moerbeek --- .../test_Interop.py | 2 +- .../test_Protobuf.py | 21 ++++++++++++++----- .../test_Sortlist.py | 2 ++ 3 files changed, 19 insertions(+), 6 deletions(-) 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) -- 2.47.3