]> granicus.if.org Git - php/commitdiff
check the available memory on linux and skip if it is not enough
authorFerenc Kovacs <tyrael@php.net>
Sun, 23 Oct 2011 00:07:01 +0000 (00:07 +0000)
committerFerenc Kovacs <tyrael@php.net>
Sun, 23 Oct 2011 00:07:01 +0000 (00:07 +0000)
Zend/tests/bug55509.phpt

index d9957cd5fb18ef8d48370656232295e0444c1e05..3f8657facd1d167176274bc9944d1b6b35357846 100644 (file)
@@ -5,6 +5,21 @@ Bug #55509 (segfault on x86_64 using more than 2G memory)
 if (PHP_INT_SIZE == 4) {\r
   die('skip Not for 32-bits OS');\r
 }\r
+// check the available memory\r
+if (PHP_OS == 'Linux') {\r
+  $lines = file('/proc/meminfo');\r
+  $infos = array();\r
+  foreach ($lines as $line) {\r
+    $tmp = explode(":", $line);\r
+    $index = strtolower($tmp[0]);\r
+    $value = (int)ltrim($tmp[1], " ")*1024;\r
+    $infos[$index] = $value;\r
+  }\r
+  $freeMemory = $infos['memfree']+$infos['buffers']+$infos['cached'];\r
+  if ($freeMemory < 2100*1024*1024) {\r
+    die('skip Not enough memory.');\r
+  }\r
+}\r
 ?>\r
 --INI--\r
 memory_limit=2100M\r