]> git.ipfire.org Git - thirdparty/pdns.git/commitdiff
dnsdist: Close file descriptors in regression tests
authorRemi Gacogne <remi.gacogne@powerdns.com>
Wed, 29 Jun 2022 16:32:45 +0000 (18:32 +0200)
committerRemi Gacogne <remi.gacogne@powerdns.com>
Wed, 29 Jun 2022 16:32:45 +0000 (18:32 +0200)
regression-tests.dnsdist/dnsdisttests.py
regression-tests.dnsdist/test_TLS.py

index 5da02e030b2c8a1906e304c7f3d327e61394155a..4fd5694bcb4a3ccc8a0d649f8d9de9c224fd8a5c 100644 (file)
@@ -150,6 +150,7 @@ class DNSDistTest(AssertEqualDNSMessageMixin, unittest.TestCase):
 
     @classmethod
     def tearDownClass(cls):
+        cls._sock.close()
         if 'DNSDIST_FAST_TESTS' in os.environ:
             delay = 0.1
         else:
@@ -712,6 +713,7 @@ class DNSDistTest(AssertEqualDNSMessageMixin, unittest.TestCase):
         (responseLen,) = struct.unpack("!I", data)
         data = sock.recv(responseLen)
         response = cls._decryptConsole(data, readingNonce)
+        sock.close()
         return response
 
     def compareOptions(self, a, b):
index 896a577f6da8f902ed56e67081cebe0175884d82..61624a5097221907a3de41cca6f5fafd9c405287 100644 (file)
@@ -12,7 +12,9 @@ class TLSTests(object):
 
     def getServerCertificate(self):
         conn = self.openTLSConnection(self._tlsServerPort, self._serverName, self._caCert)
-        return conn.getpeercert()
+        cert = conn.getpeercert()
+        conn.close()
+        return cert
 
     def getTLSProvider(self):
         return self.sendConsoleCommand("getBind(0):getEffectiveTLSProvider()").rstrip()
@@ -59,6 +61,7 @@ class TLSTests(object):
         self.generateNewCertificateAndKey()
         self.sendConsoleCommand("reloadAllCertificates()")
 
+        conn.close()
         # open a new connection
         conn = self.openTLSConnection(self._tlsServerPort, self._serverName, self._caCert)
 
@@ -86,6 +89,7 @@ class TLSTests(object):
 
         # and that the serial is different
         self.assertNotEqual(serialNumber, cert['serialNumber'])
+        conn.close()
 
     def testTLKA(self):
         """
@@ -112,6 +116,8 @@ class TLSTests(object):
             self.assertEqual(query, receivedQuery)
             self.assertEqual(response, receivedResponse)
 
+        conn.close()
+
     def testTLSPipelining(self):
         """
         TLS: Several queries over the same connection without waiting for the responses
@@ -139,6 +145,8 @@ class TLSTests(object):
             self.assertEqual(query, receivedQuery)
             self.assertEqual(response, receivedResponse)
 
+        conn.close()
+
     def testTLSSNIRouting(self):
         """
         TLS: SNI Routing
@@ -169,6 +177,7 @@ class TLSTests(object):
         self.assertTrue(receivedResponse)
         self.assertEqual(expectedResponse, receivedResponse)
 
+        conn.close()
         # this one should not
         conn = self.openTLSConnection(self._tlsServerPort, self._serverName, self._caCert)
 
@@ -179,6 +188,7 @@ class TLSTests(object):
         receivedQuery.id = query.id
         self.assertEqual(query, receivedQuery)
         self.assertEqual(response, receivedResponse)
+        conn.close()
 
     def testTLSSNIRoutingAfterResumption(self):
         # we have more complicated tests about session resumption itself,
@@ -352,12 +362,14 @@ class TestDOTWithCache(DNSDistTest):
         self.assertEqual(expectedQuery, receivedQuery)
         self.checkQueryNoEDNS(expectedQuery, receivedQuery)
         self.assertEqual(response, receivedResponse)
+        conn.close()
 
         for _ in range(numberOfQueries):
             conn = self.openTLSConnection(self._tlsServerPort, self._serverName, self._caCert)
             self.sendTCPQueryOverConnection(conn, query, response=None)
             receivedResponse = self.recvTCPResponseOverConnection(conn, useQueue=False)
             self.assertEqual(receivedResponse, response)
+            conn.close()
 
 class TestTLSFrontendLimits(DNSDistTest):
 
@@ -461,6 +473,7 @@ class TestProtocols(DNSDistTest):
         receivedQuery.id = query.id
         self.assertEqual(query, receivedQuery)
         self.assertEqual(response, receivedResponse)
+        conn.close()
 
 class TestPKCSTLSCertificate(DNSDistTest, TLSTests):
     _consoleKey = DNSDistTest.generateConsoleKey()