Skip to content

Commit fe5eb53

Browse files
committed
dnsdist: Don't waste 2 seconds per test class waiting for the console
Signed-off-by: Remi Gacogne <remi.gacogne@powerdns.com>
1 parent 7b8da63 commit fe5eb53

22 files changed

Lines changed: 73 additions & 17 deletions

regression-tests.dnsdist/dnsdisttests.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,6 @@ class DNSDistTest(AssertEqualDNSMessageMixin, unittest.TestCase):
114114
_extraStartupSleep = 0
115115
_enableStructuredLoggingOnCL = True
116116
_dnsDistPort = pickAvailablePort()
117-
_consolePort = pickAvailablePort()
118117
_testServerPort = pickAvailablePort()
119118

120119
@staticmethod
@@ -167,7 +166,6 @@ def startResponders(cls):
167166
@classmethod
168167
def startDNSDist(cls):
169168
cls._dnsDistPort = pickAvailablePort()
170-
cls._consolePort = pickAvailablePort()
171169

172170
print("Launching dnsdist..")
173171
if cls._yaml_config_template:
@@ -274,11 +272,13 @@ def startDNSDist(cls):
274272
else:
275273
cls.waitForTCPSocket(cls._dnsDistListeningAddr, cls._dnsDistPort)
276274

277-
cls.waitForTCPSocket(cls._dnsDistListeningAddr, cls._consolePort)
275+
consolePort = getattr(cls, '_consolePort', None)
276+
if consolePort:
277+
cls.waitForTCPSocket(cls._dnsDistListeningAddr, consolePort)
278278

279-
web_port = getattr(cls, '_webServerPort', None)
280-
if web_port is not None:
281-
cls.waitForTCPSocket(cls._dnsDistListeningAddr, web_port)
279+
webPort = getattr(cls, '_webServerPort', None)
280+
if webPort:
281+
cls.waitForTCPSocket(cls._dnsDistListeningAddr, webPort)
282282

283283
if cls._dnsdist.poll() is not None:
284284
print(f"\n*** startDNSDist log for {logFile} ***")

regression-tests.dnsdist/test_API.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -732,6 +732,7 @@ class TestAPICustomHeaders(APITestsBase):
732732
_basicOnlyPath = "/"
733733
_consoleKey = DNSDistTest.generateConsoleKey()
734734
_consoleKeyB64 = base64.b64encode(_consoleKey).decode("ascii")
735+
_consolePort = pickAvailablePort()
735736
_config_params = [
736737
"_consoleKeyB64",
737738
"_consolePort",
@@ -785,6 +786,7 @@ class TestStatsWithoutAuthentication(APITestsBase):
785786
_noAuthenticationPaths = ["/metrics", "/jsonstat?command=dynblocklist"]
786787
_consoleKey = DNSDistTest.generateConsoleKey()
787788
_consoleKeyB64 = base64.b64encode(_consoleKey).decode("ascii")
789+
_consolePort = pickAvailablePort()
788790
_config_params = [
789791
"_consoleKeyB64",
790792
"_consolePort",
@@ -854,6 +856,7 @@ class TestAPIAuth(APITestsBase):
854856
_basicOnlyPath = "/"
855857
_consoleKey = DNSDistTest.generateConsoleKey()
856858
_consoleKeyB64 = base64.b64encode(_consoleKey).decode("ascii")
859+
_consolePort = pickAvailablePort()
857860
_config_params = [
858861
"_consoleKeyB64",
859862
"_consolePort",
@@ -931,6 +934,7 @@ class TestAPIACL(APITestsBase):
931934
__test__ = True
932935
_consoleKey = DNSDistTest.generateConsoleKey()
933936
_consoleKeyB64 = base64.b64encode(_consoleKey).decode("ascii")
937+
_consolePort = pickAvailablePort()
934938
_config_params = [
935939
"_consoleKeyB64",
936940
"_consolePort",

regression-tests.dnsdist/test_Advanced.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
import time
66
import unittest
77
import dns
8-
from dnsdisttests import DNSDistTest
8+
from dnsdisttests import DNSDistTest, pickAvailablePort
99

1010

1111
class TestAdvancedFixupCase(DNSDistTest):
@@ -133,6 +133,7 @@ def testAdvancedIncludeDirAllowed(self):
133133
class TestStatNodeRespRingSince(DNSDistTest):
134134
_consoleKey = DNSDistTest.generateConsoleKey()
135135
_consoleKeyB64 = base64.b64encode(_consoleKey).decode("ascii")
136+
_consolePort = pickAvailablePort()
136137
_config_params = ["_consoleKeyB64", "_consolePort", "_testServerPort"]
137138
_config_template = """
138139
setKey("%s")
@@ -793,6 +794,7 @@ def testChangeName(self):
793794
class TestFlagsOnTimeout(DNSDistTest):
794795
_consoleKey = DNSDistTest.generateConsoleKey()
795796
_consoleKeyB64 = base64.b64encode(_consoleKey).decode("ascii")
797+
_consolePort = pickAvailablePort()
796798
_config_params = ["_consoleKeyB64", "_consolePort", "_testServerPort"]
797799
_config_template = """
798800
setKey("%s")

regression-tests.dnsdist/test_BackendDiscovery.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
import time
66
import ssl
77

8-
from dnsdisttests import DNSDistTest
8+
from dnsdisttests import DNSDistTest, pickAvailablePort
99

1010

1111
class TestBackendDiscovery(DNSDistTest):
@@ -32,6 +32,7 @@ class TestBackendDiscovery(DNSDistTest):
3232

3333
_consoleKey = DNSDistTest.generateConsoleKey()
3434
_consoleKeyB64 = base64.b64encode(_consoleKey).decode("ascii")
35+
_consolePort = pickAvailablePort()
3536
_config_params = [
3637
"_consoleKeyB64",
3738
"_consolePort",
@@ -659,6 +660,7 @@ def testBackendUpgrade(self):
659660
class TestBackendDiscoveryByHostname(DNSDistTest):
660661
_consoleKey = DNSDistTest.generateConsoleKey()
661662
_consoleKeyB64 = base64.b64encode(_consoleKey).decode("ascii")
663+
_consolePort = pickAvailablePort()
662664
_config_params = ["_consoleKeyB64", "_consolePort"]
663665
_config_template = """
664666
setKey("%s")

regression-tests.dnsdist/test_CacheHitResponses.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
import base64
33
import time
44
import dns
5-
from dnsdisttests import DNSDistTest
5+
from dnsdisttests import DNSDistTest, pickAvailablePort
66

77

88
class TestCacheHitResponses(DNSDistTest):
@@ -88,6 +88,7 @@ def testDroppedWhenCached(self):
8888
class TestStaleCacheHitResponses(DNSDistTest):
8989
_consoleKey = DNSDistTest.generateConsoleKey()
9090
_consoleKeyB64 = base64.b64encode(_consoleKey).decode("ascii")
91+
_consolePort = pickAvailablePort()
9192
_config_params = ["_consoleKeyB64", "_consolePort", "_testServerPort"]
9293
_config_template = """
9394
pc = newPacketCache(100, {maxTTL=86400, minTTL=1})

regression-tests.dnsdist/test_CacheMissActions.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
class TestCacheMissSelfAnswered(DNSDistTest):
1010
_consoleKey = DNSDistTest.generateConsoleKey()
1111
_consoleKeyB64 = base64.b64encode(_consoleKey).decode("ascii")
12+
_consolePort = pickAvailablePort()
1213
_config_params = ["_consoleKeyB64", "_consolePort", "_testServerPort"]
1314

1415
_config_template = """
@@ -76,6 +77,7 @@ def testRefusedWhenNotCached(self):
7677
class TestCacheMissGoToADifferentPool(DNSDistTest):
7778
_consoleKey = DNSDistTest.generateConsoleKey()
7879
_consoleKeyB64 = base64.b64encode(_consoleKey).decode("ascii")
80+
_consolePort = pickAvailablePort()
7981
_testServer2Port = pickAvailablePort()
8082
_config_params = [
8183
"_consoleKeyB64",

regression-tests.dnsdist/test_Caching.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1015,6 +1015,7 @@ def testCacheFull(self):
10151015
class TestCachingNoStale(DNSDistTest):
10161016
_consoleKey = DNSDistTest.generateConsoleKey()
10171017
_consoleKeyB64 = base64.b64encode(_consoleKey).decode("ascii")
1018+
_consolePort = pickAvailablePort()
10181019
_config_params = ["_consoleKeyB64", "_consolePort", "_testServerPort"]
10191020
_config_template = """
10201021
pc = newPacketCache(100, {maxTTL=86400, minTTL=1})
@@ -1061,6 +1062,7 @@ def testCacheNoStale(self):
10611062
class TestCachingStale(DNSDistTest):
10621063
_consoleKey = DNSDistTest.generateConsoleKey()
10631064
_consoleKeyB64 = base64.b64encode(_consoleKey).decode("ascii")
1065+
_consolePort = pickAvailablePort()
10641066
_staleCacheTTL = 60
10651067
_config_params = ["_staleCacheTTL", "_consoleKeyB64", "_consolePort", "_testServerPort", "_testServerPort"]
10661068
_config_template = """
@@ -1165,6 +1167,7 @@ def testCacheStaleTCPOnly(self):
11651167
class TestCachingStaleExpunged(DNSDistTest):
11661168
_consoleKey = DNSDistTest.generateConsoleKey()
11671169
_consoleKeyB64 = base64.b64encode(_consoleKey).decode("ascii")
1170+
_consolePort = pickAvailablePort()
11681171
_staleCacheTTL = 60
11691172
_config_params = ["_staleCacheTTL", "_consoleKeyB64", "_consolePort", "_testServerPort"]
11701173
_config_template = """
@@ -1241,6 +1244,7 @@ def testCacheStale(self):
12411244
class TestCachingStaleExpungePrevented(DNSDistTest):
12421245
_consoleKey = DNSDistTest.generateConsoleKey()
12431246
_consoleKeyB64 = base64.b64encode(_consoleKey).decode("ascii")
1247+
_consolePort = pickAvailablePort()
12441248
_config_params = ["_consoleKeyB64", "_consolePort", "_testServerPort"]
12451249
_config_template = """
12461250
pc = newPacketCache(100, {maxTTL=86400, minTTL=1, temporaryFailureTTL=0, staleTTL=60, dontAge=false, numberOfShards=1, deferrableInsertLock=true, maxNegativeTTL=3600, parseECS=false, keepStaleData=true})
@@ -1311,6 +1315,7 @@ def testCacheStale(self):
13111315
class TestCacheManagement(DNSDistTest):
13121316
_consoleKey = DNSDistTest.generateConsoleKey()
13131317
_consoleKeyB64 = base64.b64encode(_consoleKey).decode("ascii")
1318+
_consolePort = pickAvailablePort()
13141319
_config_params = ["_consoleKeyB64", "_consolePort", "_testServerPort"]
13151320
_config_template = """
13161321
pc = newPacketCache(100, {maxTTL=86400, minTTL=1})
@@ -2423,6 +2428,7 @@ def testCacheDoesntDecreaseTTL(self):
24232428
class TestCachingECSWithoutPoolECS(DNSDistTest):
24242429
_consoleKey = DNSDistTest.generateConsoleKey()
24252430
_consoleKeyB64 = base64.b64encode(_consoleKey).decode("ascii")
2431+
_consolePort = pickAvailablePort()
24262432
_config_params = ["_consoleKeyB64", "_consolePort", "_testServerPort", "_testServerPort"]
24272433
_config_template = """
24282434
pc = newPacketCache(100, {maxTTL=86400, minTTL=1})
@@ -2477,6 +2483,7 @@ def testCached(self):
24772483
class TestCachingECSWithPoolECS(DNSDistTest):
24782484
_consoleKey = DNSDistTest.generateConsoleKey()
24792485
_consoleKeyB64 = base64.b64encode(_consoleKey).decode("ascii")
2486+
_consolePort = pickAvailablePort()
24802487
_config_params = ["_consoleKeyB64", "_consolePort", "_testServerPort"]
24812488
_config_template = """
24822489
pc = newPacketCache(100, {maxTTL=86400, minTTL=1})

regression-tests.dnsdist/test_Console.py

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,13 @@
66
import socket
77
import subprocess
88
import time
9-
from dnsdisttests import DNSDistTest
9+
from dnsdisttests import DNSDistTest, pickAvailablePort
1010

1111

1212
class TestConsoleAllowed(DNSDistTest):
1313
_consoleKey = DNSDistTest.generateConsoleKey()
1414
_consoleKeyB64 = base64.b64encode(_consoleKey).decode("ascii")
15-
15+
_consolePort = pickAvailablePort()
1616
_config_params = ["_consoleKeyB64", "_consolePort", "_testServerPort"]
1717
_config_template = """
1818
setKey("%s")
@@ -31,7 +31,7 @@ def testConsoleAllowed(self):
3131
class TestConsoleAllowedV6(DNSDistTest):
3232
_consoleKey = DNSDistTest.generateConsoleKey()
3333
_consoleKeyB64 = base64.b64encode(_consoleKey).decode("ascii")
34-
34+
_consolePort = pickAvailablePort()
3535
_config_params = ["_consoleKeyB64", "_consolePort", "_testServerPort"]
3636
_config_template = """
3737
setKey("%s")
@@ -52,7 +52,7 @@ def testConsoleAllowed(self):
5252
class TestConsoleNotAllowed(DNSDistTest):
5353
_consoleKey = DNSDistTest.generateConsoleKey()
5454
_consoleKeyB64 = base64.b64encode(_consoleKey).decode("ascii")
55-
55+
_consolePort = pickAvailablePort()
5656
_config_params = ["_consoleKeyB64", "_consolePort", "_testServerPort"]
5757
_config_template = """
5858
setKey("%s")
@@ -71,7 +71,7 @@ def testConsoleAllowed(self):
7171
class TestConsoleNoKey(DNSDistTest):
7272
_consoleKey = DNSDistTest.generateConsoleKey()
7373
_consoleKeyB64 = base64.b64encode(_consoleKey).decode("ascii")
74-
74+
_consolePort = pickAvailablePort()
7575
_config_params = ["_consolePort", "_testServerPort"]
7676
_config_template = """
7777
controlSocket("127.0.0.1:%d")
@@ -88,6 +88,7 @@ def testConsoleAllowed(self):
8888
class TestConsoleConcurrentConnections(DNSDistTest):
8989
_consoleKey = DNSDistTest.generateConsoleKey()
9090
_consoleKeyB64 = base64.b64encode(_consoleKey).decode("ascii")
91+
_consolePort = pickAvailablePort()
9192
_maxConns = 2
9293

9394
_config_params = ["_consoleKeyB64", "_consolePort", "_testServerPort", "_maxConns"]
@@ -136,6 +137,7 @@ def writeCDB(fname, variant=1):
136137
class TestConsoleAccessObjectsFromYAML(DNSDistTest):
137138
_consoleKey = DNSDistTest.generateConsoleKey()
138139
_consoleKeyB64 = base64.b64encode(_consoleKey).decode("ascii")
140+
_consolePort = pickAvailablePort()
139141

140142
_cdbFileName = "/tmp/test-cdb-db"
141143

@@ -185,6 +187,7 @@ def testConsoleCanAccessYamlObject(self):
185187
class TestConsoleRings(DNSDistTest):
186188
_consoleKey = DNSDistTest.generateConsoleKey()
187189
_consoleKeyB64 = base64.b64encode(_consoleKey).decode("ascii")
190+
_consolePort = pickAvailablePort()
188191

189192
_config_params = ["_consoleKeyB64", "_consolePort", "_testServerPort"]
190193
_config_template = """
@@ -252,6 +255,7 @@ def testConsoleRingEntries(self):
252255
class TestConsoleViaBuiltInClient(DNSDistTest):
253256
_consoleKey = DNSDistTest.generateConsoleKey()
254257
_consoleKeyB64 = base64.b64encode(_consoleKey).decode("ascii")
258+
_consolePort = pickAvailablePort()
255259

256260
_config_params = ["_consoleKeyB64", "_consolePort", "_testServerPort"]
257261
_config_template = """

regression-tests.dnsdist/test_DNSCrypt.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ class DNSCryptTest(DNSDistTest):
2020

2121
_consoleKey = DNSDistTest.generateConsoleKey()
2222
_consoleKeyB64 = base64.b64encode(_consoleKey).decode("ascii")
23+
_consolePort = pickAvailablePort()
2324

2425
_providerFingerprint = "E1D7:2108:9A59:BF8D:F101:16FA:ED5E:EA6A:9F6C:C78F:7F91:AF6B:027E:62F4:69C3:B1AA"
2526
_providerName = "2.provider.name"

regression-tests.dnsdist/test_DOH.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
class DOHTests(object):
2525
_consoleKey = DNSDistTest.generateConsoleKey()
2626
_consoleKeyB64 = base64.b64encode(_consoleKey).decode("ascii")
27+
_consolePort = pickAvailablePort()
2728
_serverKey = "server.key"
2829
_serverCert = "server.chain"
2930
_serverName = "tls.tests.dnsdist.org"

0 commit comments

Comments
 (0)