diff --git a/application/utils.inc.php b/application/utils.inc.php index 6b69cbf16..13f45e0f7 100644 --- a/application/utils.inc.php +++ b/application/utils.inc.php @@ -601,14 +601,19 @@ class utils /** * Checks if the memory limit is at least what is required * - * @param int $iMemoryLimit set limit in bytes + * @param int $iMemoryLimit set limit in bytes, use {@link utils::ConvertToBytes()} to convert current php.ini value * @param int $iRequiredLimit required limit in bytes * * @return bool */ public static function IsMemoryLimitOk($iMemoryLimit, $iRequiredLimit) { - return ($iMemoryLimit >= $iRequiredLimit) || ($iMemoryLimit === -1); + if ($iMemoryLimit === -1) { + // -1 means : no limit (see https://www.php.net/manual/fr/ini.core.php#ini.memory-limit) + return true; + } + + return ($iMemoryLimit >= $iRequiredLimit); } /** diff --git a/test/application/UtilsTest.php b/test/application/UtilsTest.php index d3a308e7b..1f51b2765 100644 --- a/test/application/UtilsTest.php +++ b/test/application/UtilsTest.php @@ -54,11 +54,10 @@ class UtilsTest extends \Combodo\iTop\Test\UnitTest\ItopTestCase public function memoryLimitDataProvider() { return [ - [true, '-1', 1024], - [true, -1, 1024], - [true, 1024, 1024], - [true, 2048, 1024], - [false, 1024, 2048], + 'current -1, required 1024' => [true, -1, 1024], + 'current 1024, required 1024' => [true, 1024, 1024], + 'current 2048, required 1024' => [true, 2048, 1024], + 'current 1024, required 2048' => [false, 1024, 2048], ]; }