From a2f9c0455ffc7a3af454eb0b31c9243c84c47202 Mon Sep 17 00:00:00 2001 From: Otto Moerbeek Date: Fri, 19 Aug 2022 12:01:16 +0200 Subject: [PATCH] Two more DNS64 test cases: "timeout on AAAA" and "Lua handled things" --- .../recursortests.py | 2 ++ .../test_DNS64.py | 23 +++++++++++-------- 2 files changed, 16 insertions(+), 9 deletions(-) diff --git a/regression-tests.recursor-dnssec/recursortests.py b/regression-tests.recursor-dnssec/recursortests.py index 8907fcdfc6..ecc8f9485c 100644 --- a/regression-tests.recursor-dnssec/recursortests.py +++ b/regression-tests.recursor-dnssec/recursortests.py @@ -299,7 +299,9 @@ node1.undelegated.insecure.example. 3600 IN A 192.0.2.22 delay1.example. 3600 IN SOA {soa} delay1.example. 3600 IN NS n1.delay1.example. ns1.delay1.example. 3600 IN A {prefix}.16 +8.delay1.example. 3600 IN A 192.0.2.100 *.delay1.example. 0 LUA TXT ";" "local socket=require('socket')" "socket.sleep(tonumber(qname:getRawLabels()[1])/10)" "return 'a'" +*.delay1.example. 0 LUA AAAA ";" "local socket=require('socket')" "socket.sleep(tonumber(qname:getRawLabels()[1])/10)" "return '1::2'" """, 'delay2.example': """ diff --git a/regression-tests.recursor-dnssec/test_DNS64.py b/regression-tests.recursor-dnssec/test_DNS64.py index 281be08d98..abf6fdb23a 100644 --- a/regression-tests.recursor-dnssec/test_DNS64.py +++ b/regression-tests.recursor-dnssec/test_DNS64.py @@ -5,11 +5,6 @@ from recursortests import RecursorTest class DNS64RecursorTest(RecursorTest): - _auth_zones = { - '8': {'threads': 1, - 'zones': ['ROOT']} - } - _confdir = 'DNS64' _config_template = """ auth-zones=example.dns64=configs/%s/example.dns64.zone @@ -134,10 +129,20 @@ formerr 3600 IN A 192.0.2.43 self.assertRcodeEqual(res, dns.rcode.NOERROR) self.assertRRsetInAnswer(res, expected) - # If the AAAA FormFails, we still should get a dns64 result - def testFormErrAAAA(self): - qname = 'formerr.example.dns64.' - expected = dns.rrset.from_text(qname, 0, dns.rdataclass.IN, 'AAAA', '64:ff9b::c000:22b') + # If the AAAA is handled by Lua code, we should not get a dns64 result + def testFormerr(self): + qname = 'formerr.example.dns64' + + query = dns.message.make_query(qname, 'AAAA', want_dnssec=True) + for method in ("sendUDPQuery", "sendTCPQuery"): + sender = getattr(self, method) + res = sender(query) + self.assertRcodeEqual(res, dns.rcode.FORMERR) + + # If the AAAA times out, we still should get a dns64 result + def testTimeout(self): + qname = '8.delay1.example.' + expected = dns.rrset.from_text(qname, 0, dns.rdataclass.IN, 'AAAA', '64:ff9b::c000:264') query = dns.message.make_query(qname, 'AAAA', want_dnssec=True) for method in ("sendUDPQuery", "sendTCPQuery"): -- 2.47.2