]> git.ipfire.org Git - thirdparty/pdns.git/commitdiff
rec: in test_SimpleDot.py make sure we have the root DNSKEY in cache, it might requir...
authorOtto Moerbeek <otto@drijf.net>
Mon, 24 Mar 2025 12:10:28 +0000 (13:10 +0100)
committerOtto Moerbeek <otto@drijf.net>
Mon, 24 Mar 2025 12:10:28 +0000 (13:10 +0100)
Previously we assumed we didn't need TCP at all.

regression-tests.recursor-dnssec/test_SimpleDoT.py

index 20eaea132d295d09dcd904d69dc5a981a9e14c86..30b14dd405796b06919972538adc35a477fd4617 100644 (file)
@@ -33,6 +33,25 @@ devonly-regression-test-mode
 
     @pytest.mark.external
     def testTXT(self):
+        query = dns.message.make_query('.', 'DNSKEY', want_dnssec=True)
+        query.flags |= dns.flags.AD
+
+        # As this test uses external servers, be a more generous wrt timeouts than the default 2.0s
+        res = self.sendUDPQuery(query, timeout=5.0)
+
+        self.assertMessageIsAuthenticated(res)
+        self.assertRcodeEqual(res, 0);
+        rec_controlCmd = [os.environ['RECCONTROL'],
+                          '--config-dir=%s' % 'configs/' + self._confdir,
+                          'get tcp-outqueries']
+        try:
+            ret = subprocess.check_output(rec_controlCmd, stderr=subprocess.STDOUT)
+            tcpcount = ret
+
+        except subprocess.CalledProcessError as e:
+            print(e.output)
+            raise
+
         expected = dns.rrset.from_text('dot-test-target.powerdns.org.', 0, dns.rdataclass.IN, 'TXT', 'https://github.com/PowerDNS/pdns/pull/12825')
         query = dns.message.make_query('dot-test-target.powerdns.org', 'TXT', want_dnssec=True)
         query.flags |= dns.flags.AD
@@ -61,7 +80,7 @@ devonly-regression-test-mode
                           'get tcp-outqueries']
         try:
             ret = subprocess.check_output(rec_controlCmd, stderr=subprocess.STDOUT)
-            self.assertEqual(ret, b'0\n')
+            self.assertEqual(ret, tcpcount)
 
         except subprocess.CalledProcessError as e:
             print(e.output)