diff --git a/dev/tests/integration/framework/Magento/TestFramework/Db/Mysql.php b/dev/tests/integration/framework/Magento/TestFramework/Db/Mysql.php index 7fbdd3121a3..182a2d519c8 100644 --- a/dev/tests/integration/framework/Magento/TestFramework/Db/Mysql.php +++ b/dev/tests/integration/framework/Magento/TestFramework/Db/Mysql.php @@ -259,16 +259,35 @@ private function getEndpointArguments() */ private function ensureDefaultsExtraFile() { - if (!file_exists($this->_defaultsExtraFile)) { - $this->assertVarPathWritable(); - $extraConfig = [ - '[client]', - 'user=' . $this->_user, - 'password="' . $this->_password . '"' - ]; - file_put_contents($this->_defaultsExtraFile, implode(PHP_EOL, $extraConfig)); - chmod($this->_defaultsExtraFile, 0640); + if (file_exists($this->_defaultsExtraFile)) { + return; } + + $this->assertVarPathWritable(); + + $config = [ + 'client' => [ + 'user='.$this->_user, + 'password="'.$this->_password.'"', + ], + ]; + + $additionalFile = dirname(dirname($this->_varPath)).'/etc/mysql-client-config.php'; + if (file_exists($additionalFile)) { + $config = array_merge_recursive($config, (array)include $additionalFile); + } + + $ini = ''; + foreach ($config as $section => $values) { + $ini .= "[$section]".PHP_EOL; + foreach ($values as $value) { + $ini .= $value.PHP_EOL; + } + $ini .= PHP_EOL; + } + + file_put_contents($this->_defaultsExtraFile, $ini); + chmod($this->_defaultsExtraFile, 0640); } /**