From: Remi Gacogne Date: Fri, 11 Jul 2025 10:02:10 +0000 (+0200) Subject: dnsdist: Test the built-in console client in our regression tests X-Git-Tag: rec-5.4.0-alpha0~6^2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=refs%2Fpull%2F15824%2Fhead;p=thirdparty%2Fpdns.git dnsdist: Test the built-in console client in our regression tests Signed-off-by: Remi Gacogne --- diff --git a/regression-tests.dnsdist/test_Console.py b/regression-tests.dnsdist/test_Console.py index 8d394322a5..8dc957da03 100644 --- a/regression-tests.dnsdist/test_Console.py +++ b/regression-tests.dnsdist/test_Console.py @@ -4,6 +4,7 @@ import cdbx import dns import os import socket +import subprocess import time from dnsdisttests import DNSDistTest @@ -243,3 +244,33 @@ class TestConsoleRings(DNSDistTest): self.assertEqual(backend, f"127.0.0.1:{self._testServerPort}") isResponse = self.sendConsoleCommand(f'tostring(getRingEntries()[{index}].isResponse)').rstrip() self.assertEqual(isResponse, "true") + +class TestConsoleViaBuiltInClient(DNSDistTest): + + _consoleKey = DNSDistTest.generateConsoleKey() + _consoleKeyB64 = base64.b64encode(_consoleKey).decode('ascii') + + _config_params = ['_consoleKeyB64', '_consolePort', '_testServerPort'] + _config_template = """ + setKey("%s") + controlSocket("127.0.0.1:%s") + newServer{address="127.0.0.1:%d"} + """ + + def testConsoleViaBuiltInclient(self): + """ + Console: Built-in client + """ + output = None + try: + confFile = os.path.join('configs', 'dnsdist_%s.conf' % (self.__class__.__name__)) + testcmd = [os.environ['DNSDISTBIN'], '--client', '-C', confFile ] + process = subprocess.Popen(testcmd, stdout=subprocess.PIPE, stdin=subprocess.PIPE, stderr=subprocess.STDOUT, close_fds=True) + output = process.communicate(input=b'showVersion()\n') + except subprocess.CalledProcessError as exc: + raise AssertionError('%s failed (%d): %s' % (testcmd, process.returncode, process.output)) + + if process.returncode != 0: + raise AssertionError('%s failed (%d): %s' % (testcmd, process.returncode, output)) + + self.assertTrue(output[0].startswith(b'dnsdist '))