]> git.ipfire.org Git - thirdparty/pdns.git/blobdiff - regression-tests.dnsdist/test_Dnstap.py
Merge pull request #13980 from karelbilek/d_xfr
[thirdparty/pdns.git] / regression-tests.dnsdist / test_Dnstap.py
index 874579a45d65590d27a208745a2ce3ba8ca8ae42..1b699f15275718a02b2846678e7be6b500bddc23 100644 (file)
@@ -1,12 +1,11 @@
 #!/usr/bin/env python
-import Queue
 import threading
 import os
 import socket
 import struct
 import sys
 import time
-from dnsdisttests import DNSDistTest
+from dnsdisttests import DNSDistTest, Queue, pickAvailablePort
 
 import dns
 import dnstap_pb2
@@ -21,26 +20,26 @@ FSTRM_CONTROL_FINISH = 0x05
 def checkDnstapBase(testinstance, dnstap, protocol, initiator):
     testinstance.assertTrue(dnstap)
     testinstance.assertTrue(dnstap.HasField('identity'))
-    testinstance.assertEqual(dnstap.identity, 'a.server')
+    testinstance.assertEqual(dnstap.identity, b'a.server')
     testinstance.assertTrue(dnstap.HasField('version'))
-    testinstance.assertIn('dnsdist ', dnstap.version)
+    testinstance.assertIn(b'dnsdist ', dnstap.version)
     testinstance.assertTrue(dnstap.HasField('type'))
     testinstance.assertEqual(dnstap.type, dnstap.MESSAGE)
     testinstance.assertTrue(dnstap.HasField('message'))
     testinstance.assertTrue(dnstap.message.HasField('socket_protocol'))
     testinstance.assertEqual(dnstap.message.socket_protocol, protocol)
     testinstance.assertTrue(dnstap.message.HasField('socket_family'))
-    testinstance.assertEquals(dnstap.message.socket_family, dnstap_pb2.INET)
+    testinstance.assertEqual(dnstap.message.socket_family, dnstap_pb2.INET)
     testinstance.assertTrue(dnstap.message.HasField('query_address'))
-    testinstance.assertEquals(socket.inet_ntop(socket.AF_INET, dnstap.message.query_address), initiator)
+    testinstance.assertEqual(socket.inet_ntop(socket.AF_INET, dnstap.message.query_address), initiator)
     testinstance.assertTrue(dnstap.message.HasField('response_address'))
-    testinstance.assertEquals(socket.inet_ntop(socket.AF_INET, dnstap.message.response_address), initiator)
+    testinstance.assertEqual(socket.inet_ntop(socket.AF_INET, dnstap.message.response_address), initiator)
     testinstance.assertTrue(dnstap.message.HasField('response_port'))
-    testinstance.assertEquals(dnstap.message.response_port, testinstance._dnsDistPort)
+    testinstance.assertEqual(dnstap.message.response_port, testinstance._dnsDistPort)
   
 
 def checkDnstapQuery(testinstance, dnstap, protocol, query, initiator='127.0.0.1'):
-    testinstance.assertEquals(dnstap.message.type, dnstap_pb2.Message.CLIENT_QUERY)
+    testinstance.assertEqual(dnstap.message.type, dnstap_pb2.Message.CLIENT_QUERY)
     checkDnstapBase(testinstance, dnstap, protocol, initiator)
 
     testinstance.assertTrue(dnstap.message.HasField('query_time_sec'))
@@ -61,7 +60,7 @@ def checkDnstapNoExtra(testinstance, dnstap):
 
 
 def checkDnstapResponse(testinstance, dnstap, protocol, response, initiator='127.0.0.1'):
-    testinstance.assertEquals(dnstap.message.type, dnstap_pb2.Message.CLIENT_RESPONSE)
+    testinstance.assertEqual(dnstap.message.type, dnstap_pb2.Message.CLIENT_RESPONSE)
     checkDnstapBase(testinstance, dnstap, protocol, initiator)
 
     testinstance.assertTrue(dnstap.message.HasField('query_time_sec'))
@@ -79,8 +78,8 @@ def checkDnstapResponse(testinstance, dnstap, protocol, response, initiator='127
 
 
 class TestDnstapOverRemoteLogger(DNSDistTest):
-    _remoteLoggerServerPort = 4242
-    _remoteLoggerQueue = Queue.Queue()
+    _remoteLoggerServerPort = pickAvailablePort()
+    _remoteLoggerQueue = Queue()
     _remoteLoggerCounter = 0
     _config_params = ['_testServerPort', '_remoteLoggerServerPort']
     _config_template = """
@@ -103,7 +102,7 @@ class TestDnstapOverRemoteLogger(DNSDistTest):
 
     function luaFunc(dq)
       dq.dh:setQR(true)
-      dq.dh:setRCode(dnsdist.NXDOMAIN)
+      dq.dh:setRCode(DNSRCode.NXDOMAIN)
       return DNSAction.None, ""
     end
 
@@ -152,7 +151,7 @@ class TestDnstapOverRemoteLogger(DNSDistTest):
         DNSDistTest.startResponders()
 
         cls._remoteLoggerListener = threading.Thread(name='RemoteLogger Listener', target=cls.RemoteLoggerListener, args=[cls._remoteLoggerServerPort])
-        cls._remoteLoggerListener.setDaemon(True)
+        cls._remoteLoggerListener.daemon = True
         cls._remoteLoggerListener.start()
 
     def getFirstDnstap(self):
@@ -191,8 +190,8 @@ class TestDnstapOverRemoteLogger(DNSDistTest):
         self.assertTrue(receivedQuery)
         self.assertTrue(receivedResponse)
         receivedQuery.id = query.id
-        self.assertEquals(query, receivedQuery)
-        self.assertEquals(response, receivedResponse)
+        self.assertEqual(query, receivedQuery)
+        self.assertEqual(response, receivedResponse)
 
         # give the dnstap messages time to get here
         time.sleep(1)
@@ -212,8 +211,8 @@ class TestDnstapOverRemoteLogger(DNSDistTest):
         self.assertTrue(receivedQuery)
         self.assertTrue(receivedResponse)
         receivedQuery.id = query.id
-        self.assertEquals(query, receivedQuery)
-        self.assertEquals(response, receivedResponse)
+        self.assertEqual(query, receivedQuery)
+        self.assertEqual(response, receivedResponse)
 
         # give the dnstap messages time to get here
         time.sleep(1)
@@ -257,8 +256,8 @@ class TestDnstapOverRemoteLogger(DNSDistTest):
         self.assertTrue(receivedQuery)
         self.assertTrue(receivedResponse)
         receivedQuery.id = query.id
-        self.assertEquals(query, receivedQuery)
-        self.assertEquals(response, receivedResponse)
+        self.assertEqual(query, receivedQuery)
+        self.assertEqual(response, receivedResponse)
 
         # give the dnstap messages time to get here
         time.sleep(1)
@@ -266,19 +265,19 @@ class TestDnstapOverRemoteLogger(DNSDistTest):
         # check the dnstap message corresponding to the UDP query
         dnstap = self.getFirstDnstap()
         checkDnstapQuery(self, dnstap, dnstap_pb2.UDP, query)
-        checkDnstapExtra(self, dnstap, "Type,Query")
+        checkDnstapExtra(self, dnstap, b"Type,Query")
 
         # check the dnstap message corresponding to the UDP response
         dnstap = self.getFirstDnstap()
         checkDnstapResponse(self, dnstap, dnstap_pb2.UDP, response)
-        checkDnstapExtra(self, dnstap, "Type,Response")
+        checkDnstapExtra(self, dnstap, b"Type,Response")
 
         (receivedQuery, receivedResponse) = self.sendTCPQuery(query, response)
         self.assertTrue(receivedQuery)
         self.assertTrue(receivedResponse)
         receivedQuery.id = query.id
-        self.assertEquals(query, receivedQuery)
-        self.assertEquals(response, receivedResponse)
+        self.assertEqual(query, receivedQuery)
+        self.assertEqual(response, receivedResponse)
 
         # give the dnstap messages time to get here
         time.sleep(1)
@@ -286,12 +285,12 @@ class TestDnstapOverRemoteLogger(DNSDistTest):
         # check the dnstap message corresponding to the TCP query
         dnstap = self.getFirstDnstap()
         checkDnstapQuery(self, dnstap, dnstap_pb2.TCP, query)
-        checkDnstapExtra(self, dnstap, "Type,Query")
+        checkDnstapExtra(self, dnstap, b"Type,Query")
 
         # check the dnstap message corresponding to the TCP response
         dnstap = self.getFirstDnstap()
         checkDnstapResponse(self, dnstap, dnstap_pb2.TCP, response)
-        checkDnstapExtra(self, dnstap, "Type,Response")
+        checkDnstapExtra(self, dnstap, b"Type,Response")
 
 
 def fstrm_get_control_frame_type(data):
@@ -302,7 +301,7 @@ def fstrm_get_control_frame_type(data):
 def fstrm_make_control_frame_reply(cft, data):
     if cft == FSTRM_CONTROL_READY:
         # Reply with ACCEPT frame and content-type
-        contenttype = 'protobuf:dnstap.Dnstap'
+        contenttype = b'protobuf:dnstap.Dnstap'
         frame = struct.pack('!LLL', FSTRM_CONTROL_ACCEPT, 1,
                             len(contenttype)) + contenttype
         buf = struct.pack("!LL", 0, len(frame)) + frame
@@ -349,7 +348,7 @@ def fstrm_handle_bidir_connection(conn, on_data):
 
 class TestDnstapOverFrameStreamUnixLogger(DNSDistTest):
     _fstrmLoggerAddress = '/tmp/fslutest.sock'
-    _fstrmLoggerQueue = Queue.Queue()
+    _fstrmLoggerQueue = Queue()
     _fstrmLoggerCounter = 0
     _config_params = ['_testServerPort', '_fstrmLoggerAddress']
     _config_template = """
@@ -385,7 +384,7 @@ class TestDnstapOverFrameStreamUnixLogger(DNSDistTest):
         DNSDistTest.startResponders()
 
         cls._fstrmLoggerListener = threading.Thread(name='FrameStreamUnixListener', target=cls.FrameStreamUnixListener, args=[cls._fstrmLoggerAddress])
-        cls._fstrmLoggerListener.setDaemon(True)
+        cls._fstrmLoggerListener.daemon = True
         cls._fstrmLoggerListener.start()
 
     def getFirstDnstap(self):
@@ -423,8 +422,8 @@ class TestDnstapOverFrameStreamUnixLogger(DNSDistTest):
         self.assertTrue(receivedQuery)
         self.assertTrue(receivedResponse)
         receivedQuery.id = query.id
-        self.assertEquals(query, receivedQuery)
-        self.assertEquals(response, receivedResponse)
+        self.assertEqual(query, receivedQuery)
+        self.assertEqual(response, receivedResponse)
 
         # check the dnstap message corresponding to the UDP query
         dnstap = self.getFirstDnstap()
@@ -434,8 +433,8 @@ class TestDnstapOverFrameStreamUnixLogger(DNSDistTest):
 
 
 class TestDnstapOverFrameStreamTcpLogger(DNSDistTest):
-    _fstrmLoggerPort = 4000
-    _fstrmLoggerQueue = Queue.Queue()
+    _fstrmLoggerPort = pickAvailablePort()
+    _fstrmLoggerQueue = Queue()
     _fstrmLoggerCounter = 0
     _config_params = ['_testServerPort', '_fstrmLoggerPort']
     _config_template = """
@@ -467,7 +466,7 @@ class TestDnstapOverFrameStreamTcpLogger(DNSDistTest):
         DNSDistTest.startResponders()
 
         cls._fstrmLoggerListener = threading.Thread(name='FrameStreamUnixListener', target=cls.FrameStreamUnixListener, args=[cls._fstrmLoggerPort])
-        cls._fstrmLoggerListener.setDaemon(True)
+        cls._fstrmLoggerListener.daemon = True
         cls._fstrmLoggerListener.start()
 
     def getFirstDnstap(self):
@@ -505,8 +504,8 @@ class TestDnstapOverFrameStreamTcpLogger(DNSDistTest):
         self.assertTrue(receivedQuery)
         self.assertTrue(receivedResponse)
         receivedQuery.id = query.id
-        self.assertEquals(query, receivedQuery)
-        self.assertEquals(response, receivedResponse)
+        self.assertEqual(query, receivedQuery)
+        self.assertEqual(response, receivedResponse)
 
         # check the dnstap message corresponding to the UDP query
         dnstap = self.getFirstDnstap()