tony2001 Wed Dec 12 09:20:54 2007 UTC Modified files: (Branch: PHP_5_3) /php-src run-tests.php Log: MFH: add support for Valgrind 3.3.0 (which doesn't have --log-file-exactly option) http://cvs.php.net/viewvc.cgi/php-src/run-tests.php?r1=1.226.2.37.2.35.2.5&r2=1.226.2.37.2.35.2.6&diff_format=u Index: php-src/run-tests.php diff -u php-src/run-tests.php:1.226.2.37.2.35.2.5 php-src/run-tests.php:1.226.2.37.2.35.2.6 --- php-src/run-tests.php:1.226.2.37.2.35.2.5 Wed Dec 5 14:54:08 2007 +++ php-src/run-tests.php Wed Dec 12 09:20:54 2007 @@ -24,7 +24,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: run-tests.php,v 1.226.2.37.2.35.2.5 2007/12/05 14:54:08 helly Exp $ */ +/* $Id: run-tests.php,v 1.226.2.37.2.35.2.6 2007/12/12 09:20:54 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"; @@ -406,7 +408,7 @@ $html_output = is_resource($html_file); break; case '--version': - echo '$Revision: 1.226.2.37.2.35.2.5 $'."\n"; + echo '$Revision: 1.226.2.37.2.35.2.6 $'."\n"; exit(1); case 'u': @@ -979,6 +981,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; @@ -1399,7 +1402,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) { + /* 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 { + $cmd = "valgrind -q --tool=memcheck --trace-children=yes --log-file-exactly=$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