tony2001                Wed Dec 12 20:21:57 2007 UTC

  Modified files:              (Branch: PHP_5_2)
    /php-src    run-tests.php 
  Log:
  MFH: add valgrind 3.3.0 support
  
  
http://cvs.php.net/viewvc.cgi/php-src/run-tests.php?r1=1.226.2.37.2.37&r2=1.226.2.37.2.38&diff_format=u
Index: php-src/run-tests.php
diff -u php-src/run-tests.php:1.226.2.37.2.37 
php-src/run-tests.php:1.226.2.37.2.38
--- php-src/run-tests.php:1.226.2.37.2.37       Wed Nov 21 08:20:45 2007
+++ php-src/run-tests.php       Wed Dec 12 20:21:57 2007
@@ -24,7 +24,7 @@
    +----------------------------------------------------------------------+
  */
 
-/* $Id: run-tests.php,v 1.226.2.37.2.37 2007/11/21 08:20:45 jani Exp $ */
+/* $Id: run-tests.php,v 1.226.2.37.2.38 2007/12/12 20:21:57 tony2001 Exp $ */
 
 /* Sanity check to ensure that pcre extension needed by this script is 
available.
  * In the event it is not, print a nice error message indicating that this 
script will
@@ -76,6 +76,8 @@
 $cwd = getcwd();
 set_time_limit(0);
 
+$valgrind_version = 0;
+
 // delete as much output buffers as possible
 while(@ob_end_clean());
 if (ob_get_level()) echo "Not all buffers were deleted.\n";
@@ -401,7 +403,7 @@
                                        $html_output = is_resource($html_file);
                                        break;
                                case '--version':
-                                       echo '$Revision: 1.226.2.37.2.37 
$'."\n";
+                                       echo '$Revision: 1.226.2.37.2.38 
$'."\n";
                                        exit(1);
 
                                case 'u':
@@ -950,6 +952,7 @@
        global $pass_options, $DETAILED, $IN_REDIRECT, $test_cnt, $test_idx;
        global $leak_check, $temp_source, $temp_target, $cfg, $environment;
        global $no_clean;
+       global $valgrind_version;
 
        $temp_filenames = null;
        $org_file = $file;
@@ -1378,7 +1381,26 @@
 
        if ($leak_check) {
                $env['USE_ZEND_ALLOC'] = '0';
-               $cmd = "valgrind -q --tool=memcheck --trace-children=yes 
--log-file-exactly=$memcheck_filename $cmd";
+               if (!$valgrind_version) {
+                       $valgrind_cmd = "valgrind --version";
+                       $out = system_with_timeout($valgrind_cmd);
+                       $replace_count = 0;
+
+                       if (!$out) {
+                               error("Valgrind returned no version info, 
cannot proceed.\nPlease check if Valgrind is installed.");
+                       } else {
+                               $valgrind_version = 
preg_replace("/valgrind-([0-9])\.([0-9])\.([0-9]+)(\s+)/", '$1$2$3', $out, 1, 
$replace_count);
+                               if ($replace_count != 1 || 
!is_numeric($valgrind_version)) {
+                                       error("Valgrind returned invalid 
version info (\"$out\"), cannot proceed.");
+                               }
+                       }
+               }
+               if ($valgrind_version < 330) {
+                       $cmd = "valgrind -q --tool=memcheck 
--trace-children=yes --log-file-exactly=$memcheck_filename $cmd";
+               } else {
+                       /* valgrind 3.3.0+ doesn't have --log-file-exactly 
option */
+                       $cmd = "valgrind -q --tool=memcheck 
--trace-children=yes --log-file=$memcheck_filename $cmd";
+               }
        } else {
                $env['USE_ZEND_ALLOC'] = '1';
        }

-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to