]> git.ipfire.org Git - thirdparty/pdns.git/commitdiff
Add very basic DoT regression test
authorOtto <otto.moerbeek@open-xchange.com>
Wed, 9 Jun 2021 11:10:48 +0000 (13:10 +0200)
committerOtto <otto.moerbeek@open-xchange.com>
Fri, 18 Jun 2021 06:47:43 +0000 (08:47 +0200)
.circleci/config.yml
regression-tests.recursor-dnssec/test_SimpleForwardOverDoT.py [new file with mode: 0644]

index 06c48153cd7cdb20d8836638f5c31d595b4a19ff..15cd5bcd0f707322634177ea6d026fa965007f10 100644 (file)
@@ -1275,6 +1275,7 @@ jobs:
             --with-lua=luajit \
             --with-libcap \
             --with-net-snmp \
+            --enable-dns-over-tls \
             --enable-asan \
             --enable-ubsan
           working_directory: ~/project/pdns/recursordist
diff --git a/regression-tests.recursor-dnssec/test_SimpleForwardOverDoT.py b/regression-tests.recursor-dnssec/test_SimpleForwardOverDoT.py
new file mode 100644 (file)
index 0000000..768bbe6
--- /dev/null
@@ -0,0 +1,51 @@
+import dns
+import os
+import subprocess
+from recursortests import RecursorTest
+
+class testSimpleForwardOverDoT(RecursorTest):
+    """
+    This forwarding to a DoT srever in avery basic way and is dependent on Quad9 working
+    """
+
+    _confdir = 'SimpleForwardOverDoT'
+    _config_template = """
+dnssec=validate
+forward-zones-recurse=.=9.9.9.9:853
+    """
+
+    def testA(self):
+        expected = dns.rrset.from_text('dns.google.', 0, dns.rdataclass.IN, 'A', '8.8.8.8', '8.8.4.4')
+        query = dns.message.make_query('dns.google', 'A', want_dnssec=True)
+        query.flags |= dns.flags.AD
+
+        res = self.sendUDPQuery(query)
+
+        self.assertMessageIsAuthenticated(res)
+        self.assertRRsetInAnswer(res, expected)
+        self.assertMatchingRRSIGInAnswer(res, expected)
+
+        rec_controlCmd = [os.environ['RECCONTROL'],
+                          '--config-dir=%s' % 'configs/' + self._confdir,
+                          'get dot-outqueries']
+        try:
+            ret = subprocess.check_output(rec_controlCmd, stderr=subprocess.STDOUT)
+            self.assertNotEqual(ret, b'UNKNOWN\n')
+            self.assertNotEqual(ret, b'0\n')
+
+        except subprocess.CalledProcessError as e:
+            print(e.output)
+            raise
+
+        rec_controlCmd = [os.environ['RECCONTROL'],
+                          '--config-dir=%s' % 'configs/' + self._confdir,
+                          'get tcp-outqueries']
+        try:
+            ret = subprocess.check_output(rec_controlCmd, stderr=subprocess.STDOUT)
+            self.assertEqual(ret, b'0\n')
+
+        except subprocess.CalledProcessError as e:
+            print(e.output)
+            raise
+
+