]> git.ipfire.org Git - thirdparty/pdns.git/blobdiff - regression-tests.dnsdist/test_Carbon.py
Merge pull request #9211 from rgacogne/ddist-doh-non-blocking
[thirdparty/pdns.git] / regression-tests.dnsdist / test_Carbon.py
index dc25cd676934992b84b411cd910c77241a91d377..f075f4859e2dfc7f8c0524d69bf78a74e974a2db 100644 (file)
@@ -7,12 +7,6 @@ from dnsdisttests import DNSDistTest, Queue
 
 class TestCarbon(DNSDistTest):
 
-    _serverCount = 3
-    _serverUpCount = 2
-    _baseUDPPort = 5350
-    _serverTemplate = """newServer{address="127.0.0.1:%s"}"""
-    _toResponderQueue1 = Queue()
-    _fromResponderQueue1 = Queue()
     _carbonServer1Port = 8000
     _carbonServer1Name = "carbonname1"
     _carbonServer2Port = 8001
@@ -24,6 +18,12 @@ class TestCarbon(DNSDistTest):
     _config_params = ['_carbonServer1Port', '_carbonServer1Name', '_carbonInterval',
                       '_carbonServer2Port', '_carbonServer2Name', '_carbonInterval']
     _config_template = """
+    s = newServer{address="127.0.0.1:5353"}
+    s:setDown()
+    s = newServer{address="127.0.0.1:5354"}
+    s:setUp()
+    s = newServer{address="127.0.0.1:5355"}
+    s:setUp()
     carbonServer("127.0.0.1:%s", "%s", %s)
     carbonServer("127.0.0.1:%s", "%s", %s)
     """
@@ -61,14 +61,8 @@ class TestCarbon(DNSDistTest):
             conn.close()
         sock.close()
 
-    @classmethod
-    def UDPResponder(cls, port, fromQueue, toQueue):
-        DNSDistTest.UDPResponder.im_func(cls, port, fromQueue, toQueue)
-
     @classmethod
     def startResponders(cls):
-        cls.startUDPResponders(cls._serverCount, cls._serverUpCount)
-
         cls._CarbonResponder1 = threading.Thread(name='Carbon Responder 1', target=cls.CarbonResponder, args=[cls._carbonServer1Port])
         cls._CarbonResponder1.setDaemon(True)
         cls._CarbonResponder1.start()
@@ -77,30 +71,6 @@ class TestCarbon(DNSDistTest):
         cls._CarbonResponder2.setDaemon(True)
         cls._CarbonResponder2.start()
 
-    @classmethod
-    def startUDPResponders(cls, servers, servers_up):
-        if servers < servers_up:
-            print('startUDPResponders failed: servers cannot be less than servers_up')
-            sys.exit(1)
-
-        serverCollectionTemplate = b''
-
-        # set up a number of UDP servers
-        # metric: dnsdist.{CARBON_SERVER_NAME}.main.pools._default_.servers {SERVERS} {TIME}
-        for num in xrange(0, servers):
-            ns = str(cls._baseUDPPort+num)
-            serverCollectionTemplate += cls._serverTemplate % ns
-
-        cls._config_template += serverCollectionTemplate
-
-        # add a specific amount to the response queue marking them 'up'
-        # metric: dnsdist.{CARBON_SERVER_NAME}.main.pools._default_.servers-up {SERVERS_UP} {TIME}
-        for num in xrange(0, servers_up):
-            port = cls._baseUDPPort+num
-            cls._UDPResponder = threading.Thread(name='UDP Responder 1', target=cls.UDPResponder, args=[port, cls._toResponderQueue1, cls._fromResponderQueue1])
-            cls._UDPResponder.setDaemon(True)
-            cls._UDPResponder.start()
-
     def testCarbon(self):
         """
         Carbon: send data to 2 carbon servers
@@ -144,6 +114,9 @@ class TestCarbon(DNSDistTest):
             self.assertTrue(value >= 1)
 
     def testCarbonServerUp(self):
+        """
+        Carbon: set up 2 carbon servers
+        """
         # wait for the carbon data to be sent
         time.sleep(self._carbonInterval + 1)
 
@@ -164,16 +137,16 @@ class TestCarbon(DNSDistTest):
         for line in data1.splitlines():
             if expectedStart in line:
                 parts = line.split(b' ')
-                if 'servers-up' in line:
+                if b'servers-up' in line:
                     self.assertEquals(len(parts), 3)
                     self.assertTrue(parts[1].isdigit())
-                    self.assertEquals(int(parts[1]), self._serverUpCount)
+                    self.assertEquals(int(parts[1]), 2)
                     self.assertTrue(parts[2].isdigit())
                     self.assertTrue(int(parts[2]) <= int(after))
                 else:
                     self.assertEquals(len(parts), 3)
                     self.assertTrue(parts[1].isdigit())
-                    self.assertEquals(int(parts[1]), self._serverCount)
+                    self.assertEquals(int(parts[1]), 3)
                     self.assertTrue(parts[2].isdigit())
                     self.assertTrue(int(parts[2]) <= int(after))
 
@@ -187,15 +160,15 @@ class TestCarbon(DNSDistTest):
         for line in data2.splitlines():
             if expectedStart in line:
                 parts = line.split(b' ')
-                if 'servers-up' in line:
+                if b'servers-up' in line:
                     self.assertEquals(len(parts), 3)
                     self.assertTrue(parts[1].isdigit())
-                    self.assertEquals(int(parts[1]), self._serverUpCount)
+                    self.assertEquals(int(parts[1]), 2)
                     self.assertTrue(parts[2].isdigit())
                     self.assertTrue(int(parts[2]) <= int(after))
                 else:
                     self.assertEquals(len(parts), 3)
                     self.assertTrue(parts[1].isdigit())
-                    self.assertEquals(int(parts[1]), self._serverCount)
+                    self.assertEquals(int(parts[1]), 3)
                     self.assertTrue(parts[2].isdigit())
                     self.assertTrue(int(parts[2]) <= int(after))