Skip to content
Snippets Groups Projects
Commit 79cca074 authored by Alex Pott's avatar Alex Pott
Browse files

Issue #3119017 by Gábor Hojtsy, effulgentsia, catch, daffie: Tests fail with...

Issue #3119017 by Gábor Hojtsy, effulgentsia, catch, daffie: Tests fail with MariaDB 10.2.7, but not 10.3.22
parent 0a65cd60
No related branches found
No related tags found
No related merge requests found
......@@ -188,7 +188,22 @@ protected function runTestQuery($query, $pass, $fail, $fatal = FALSE) {
*/
protected function checkEngineVersion() {
// Ensure that the database server has the right version.
if ($this->minimumVersion() && version_compare(Database::getConnection()->version(), $this->minimumVersion(), '<')) {
// We append '-AnyName' to the minimum version for comparison purposes, so
// that engines that append a package name or other build information to
// their version strings still pass. For example, MariaDB might report its
// version as '10.2.7-MariaDB' or '10.2.7+maria' or similar.
// version_compare() treats '-' and '+' as equivalent, and non-numeric
// parts other than conventional stability specifiers (dev, alpha, beta,
// etc.) as equal to each other and less than numeric parts and stability
// specifiers. In other words, 10.2.7-MariaDB, 10.2.7+maria, and
// 10.2.7-AnyName are all equal to each other and less than 10.2.7-alpha.
// This means that by appending '-AnyName' for the comparison check, that
// alpha and other pre-release versions of the minimum will pass this
// check, which isn't ideal; however, people running pre-release versions
// of database servers should know what they're doing, whether Drupal warns
// them or not.
// @see https://www.php.net/manual/en/function.version-compare.php
if ($this->minimumVersion() && version_compare(Database::getConnection()->version(), $this->minimumVersion() . '-AnyName', '<')) {
$this->fail(t("The database server version %version is less than the minimum required version %minimum_version.", ['%version' => Database::getConnection()->version(), '%minimum_version' => $this->minimumVersion()]));
}
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment