From 9afc22bd8ffb906829a4ca87a3d683e34c1a767c Mon Sep 17 00:00:00 2001 From: Stephen Abello Date: Fri, 7 Jul 2023 09:29:08 +0200 Subject: [PATCH] =?UTF-8?q?=20N=C2=B06123=20-=20Add=20tests=20and=20commen?= =?UTF-8?q?ts?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- setup/backup.class.inc.php | 4 +++ .../unitary-tests/setup/DBBackupTest.php | 27 +++++++++++++++++++ 2 files changed, 31 insertions(+) diff --git a/setup/backup.class.inc.php b/setup/backup.class.inc.php index a28755afc..edb429961 100644 --- a/setup/backup.class.inc.php +++ b/setup/backup.class.inc.php @@ -523,6 +523,8 @@ EOF; } /** + * Define if we should force a transport option + * * @param string $sHost * * @return string . @@ -533,6 +535,8 @@ EOF; { $sTransportOptions = ''; + /** N°6123 As we're using a --port option, if we use localhost as host, + * MariaDB > 10.6 will implicitly change its protocol from socket to tcp and throw a warning **/ if($sHost === 'localhost'){ $sTransportOptions = '--protocol=tcp'; } diff --git a/tests/php-unit-tests/unitary-tests/setup/DBBackupTest.php b/tests/php-unit-tests/unitary-tests/setup/DBBackupTest.php index 9506b5a59..f0694967b 100644 --- a/tests/php-unit-tests/unitary-tests/setup/DBBackupTest.php +++ b/tests/php-unit-tests/unitary-tests/setup/DBBackupTest.php @@ -84,4 +84,31 @@ class DBBackupTest extends ItopTestCase $this->assertStringStartsWith(' --ssl', $sCliArgsCapathCfg); $this->assertStringEndsWith('--ssl-ca='.DBBackup::EscapeShellArg($sTestCa), $sCliArgsCapathCfg); } + + /** + * Host is localhost, we should be forced into tcp + * + * @return void + */ + public function testGetMysqlCliTransportOptionWithLocalhost() + { + $sHost= 'localhost'; + $sTransport = DBBackup::GetMysqlCliTransportOption($sHost); + + $this->assertStringStartsWith('--protocol=tcp', $sTransport); + $this->assertStringEndsWith('--protocol=tcp', $sTransport); + } + + /** + * Host is not localhost, we shouldn't be forced into tcp + * + * @return void + */ + public function testGetMysqlCliTransportOptionWithoutLocalhost() + { + $sHost= '127.0.0.1'; + $sTransport = DBBackup::GetMysqlCliTransportOption($sHost); + + $this->assertEmpty($sTransport); + } }