]> git.ipfire.org Git - thirdparty/pdns.git/blobdiff - regression-tests.dnsdist/test_TCPLimits.py
Merge pull request #8938 from Habbie/auth-4.3.0-rc2-docs
[thirdparty/pdns.git] / regression-tests.dnsdist / test_TCPLimits.py
index fb9dc03a6774c1db67193e19c361decae67fa6db..ec20c929f5966591f857c55e9e0d9a2e52730f37 100644 (file)
@@ -4,8 +4,18 @@ import time
 import dns
 from dnsdisttests import DNSDistTest
 
+try:
+  range = xrange
+except NameError:
+  pass
+
 class TestTCPLimits(DNSDistTest):
 
+    # this test suite uses a different responder port
+    # because it uses a different health check configuration
+    _testServerPort = 5395
+    _answerUnexpected = True
+
     _tcpIdleTimeout = 2
     _maxTCPQueriesPerConn = 5
     _maxTCPConnsPerClient = 3
@@ -28,7 +38,7 @@ class TestTCPLimits(DNSDistTest):
         conn = self.openTCPConnection()
 
         count = 0
-        for idx in xrange(self._maxTCPQueriesPerConn):
+        for idx in range(self._maxTCPQueriesPerConn):
             try:
                 self.sendTCPQueryOverConnection(conn, query)
                 response = self.recvTCPResponseOverConnection(conn)
@@ -62,7 +72,7 @@ class TestTCPLimits(DNSDistTest):
         query = dns.message.make_query(name, 'A', 'IN')
         conns = []
 
-        for idx in xrange(self._maxTCPConnsPerClient + 1):
+        for idx in range(self._maxTCPConnsPerClient + 1):
             conns.append(self.openTCPConnection())
 
         count = 0
@@ -96,19 +106,20 @@ class TestTCPLimits(DNSDistTest):
         conn.send(struct.pack("!H", 65535))
 
         count = 0
-        while count < (self._maxTCPConnDuration * 2):
+        while count < (self._maxTCPConnDuration * 20):
             try:
                 # sleeping for only one second keeps us below the
                 # idle timeout (setTCPRecvTimeout())
-                time.sleep(1)
-                conn.send('A')
+                time.sleep(0.1)
+                conn.send(b'A')
                 count = count + 1
-            except:
+            except Exception as e:
+                print("Exception: %s!" % (e))
                 break
 
         end = time.time()
 
-        self.assertAlmostEquals(count, self._maxTCPConnDuration, delta=2)
+        self.assertAlmostEquals(count / 10, self._maxTCPConnDuration, delta=2)
         self.assertAlmostEquals(end - start, self._maxTCPConnDuration, delta=2)
 
         conn.close()