]> granicus.if.org Git - pdns/commitdiff
dnsdist: Make sure that DynBlock tests do not pass when they shouldn't
authorRemi Gacogne <remi.gacogne@powerdns.com>
Fri, 6 Jul 2018 14:06:13 +0000 (16:06 +0200)
committerRemi Gacogne <remi.gacogne@powerdns.com>
Fri, 6 Jul 2018 14:06:13 +0000 (16:06 +0200)
regression-tests.dnsdist/dnsdisttests.py
regression-tests.dnsdist/test_DynBlocks.py
regression-tests.dnsdist/test_HealthChecks.py
regression-tests.dnsdist/test_TCPLimits.py

index 1d3ad6e7a9d2397de2e2a6235228a1717f82e8b7..51cf6ac02fd55ed79285b9a44faf1811ab01c326 100644 (file)
@@ -52,7 +52,7 @@ class DNSDistTest(unittest.TestCase):
     _consoleKey = None
     _healthCheckName = 'a.root-servers.net.'
     _healthCheckCounter = 0
-    _healthCheckAnswerUnexpected = False
+    _answerUnexpected = True
 
     @classmethod
     def startResponders(cls):
@@ -159,9 +159,12 @@ class DNSDistTest(unittest.TestCase):
                     response.id = request.id
                     toQueue.put(request, True, cls._queueTimeout)
 
-        if not response and (healthCheck or cls._healthCheckAnswerUnexpected):
-            # unexpected query, or health check
-            response = dns.message.make_response(request)
+        if not response:
+            if healthCheck:
+                response = dns.message.make_response(request)
+            elif cls._answerUnexpected:
+                response = dns.message.make_response(request)
+                response.set_rcode(dns.rcode.SERVFAIL)
 
         return response
 
index caa32d35dd060318f09e7abf5704000ff9e665b8..5cd01e46ae5fc6fd2d08424356e975858d0013bf 100644 (file)
@@ -34,7 +34,7 @@ class DynBlocksTest(DNSDistTest):
         self.assertGreaterEqual(values['blocks'], minBlocks)
         self.assertLessEqual(values['blocks'], maxBlocks)
 
-    def doTestQRate(self, name, testViaAPI=False):
+    def doTestQRate(self, name, testViaAPI=True):
         query = dns.message.make_query(name, 'A', 'IN')
         response = dns.message.make_response(query)
         rrset = dns.rrset.from_text(name,
@@ -459,7 +459,7 @@ class TestDynBlockQPS(DynBlocksTest):
         Dyn Blocks: QRate
         """
         name = 'qrate.dynblocks.tests.powerdns.com.'
-        self.doTestQRate(name, testViaAPI=True)
+        self.doTestQRate(name)
 
 class TestDynBlockGroupQPS(DynBlocksTest):
 
@@ -483,7 +483,7 @@ class TestDynBlockGroupQPS(DynBlocksTest):
         Dyn Blocks (Group): QRate
         """
         name = 'qrate.group.dynblocks.tests.powerdns.com.'
-        self.doTestQRate(name, testViaAPI=True)
+        self.doTestQRate(name)
 
 
 class TestDynBlockQPSRefused(DynBlocksTest):
index 7acbbf552c8045e7cd21e8548f6c4808f9ecbbe7..8e25488c07ebc84b6e77d1bacc3967889368cfce 100644 (file)
@@ -133,7 +133,7 @@ class TestHealthCheckCustomNameNoAnswer(HealthCheckTest):
     # because it uses a different health check configuration
     _testServerPort = 5384
 
-    _healthCheckAnswerUnexpected = False
+    _answerUnexpected = False
     _config_template = """
     setKey("%s")
     controlSocket("127.0.0.1:%d")
@@ -153,7 +153,7 @@ class TestHealthCheckCustomFunction(HealthCheckTest):
     # this test suite uses a different responder port
     # because it uses a different health check configuration
     _testServerPort = 5385
-    _healthCheckAnswerUnexpected = False
+    _answerUnexpected = False
 
     _healthCheckName = 'powerdns.com.'
     _config_template = """
index 41ccbb9b451770ac8a74e1f811bae993c1ed5867..e67a152d375db844a39c2a02a765ba6745169a7b 100644 (file)
@@ -9,7 +9,7 @@ class TestTCPLimits(DNSDistTest):
     # this test suite uses a different responder port
     # because it uses a different health check configuration
     _testServerPort = 5395
-    _healthCheckAnswerUnexpected = True
+    _answerUnexpected = True
 
     _tcpIdleTimeout = 2
     _maxTCPQueriesPerConn = 5