From 0ba31d935055d5c12b5afaf256e5c319366296ef Mon Sep 17 00:00:00 2001
From: Angie Byron <webchick@24967.no-reply.drupal.org>
Date: Mon, 3 Jan 2011 06:40:49 +0000
Subject: [PATCH] #295697 by boombatower, maartenvg, agentrickard, bfroehle,
 beeradb: Fixed warn of PHP memory limit < 64MB for Testing module.

---
 modules/simpletest/simpletest.install | 15 +++++++++++++--
 1 file changed, 13 insertions(+), 2 deletions(-)

diff --git a/modules/simpletest/simpletest.install b/modules/simpletest/simpletest.install
index cf43884bcf0a..3da8bcdccdae 100644
--- a/modules/simpletest/simpletest.install
+++ b/modules/simpletest/simpletest.install
@@ -6,10 +6,13 @@
  * Install, update and uninstall functions for the simpletest module.
  */
 
+/**
+ * Minimum value of PHP memory_limit for SimpleTest.
+ */
+define('SIMPLETEST_MINIMUM_PHP_MEMORY_LIMIT', '64M');
+
 /**
  * Implements hook_requirements().
- *
- * Check that the cURL extension exists for PHP.
  */
 function simpletest_requirements($phase) {
   $requirements = array();
@@ -58,6 +61,14 @@ function simpletest_requirements($phase) {
     $requirements['php_open_basedir']['description'] = t('The testing framework requires the PHP <a href="@open_basedir-url">open_basedir</a> restriction to be disabled. Check your webserver configuration or contact your web host.', array('@open_basedir-url' => 'http://php.net/manual/en/ini.core.php#ini.open-basedir'));
   }
 
+  // Check the current memory limit. If it is set too low, SimpleTest will fail
+  // to load all tests and throw a fatal error.
+  $memory_limit = ini_get('memory_limit');
+  if ($memory_limit && $memory_limit != -1 && parse_size($memory_limit) < parse_size(SIMPLETEST_MINIMUM_PHP_MEMORY_LIMIT)) {
+    $requirements['php_memory_limit']['severity'] = REQUIREMENT_ERROR;
+    $requirements['php_memory_limit']['description'] = t('The testing framework requires the PHP memory limit to be at least %memory_minimum_limit. The current value is %memory_limit. <a href="@url">Follow these steps to continue</a>.', array('%memory_limit' => $memory_limit, '%memory_minimum_limit' => SIMPLETEST_MINIMUM_PHP_MEMORY_LIMIT, '@url' => 'http://drupal.org/node/207036'));
+  }
+
   return $requirements;
 }
 
-- 
GitLab