cvs: php-src(PHP_5_3) / run-tests.php
| From: | Antony Dovgal | Date: | Wed, 12 Dec 2007 09:20:54 +0000 |
| Subject: | cvs: php-src(PHP_5_3) / run-tests.php | ||
| Groups: | php.cvs | ||
| Request: | Send a blank email to php-cvs+get-47464@lists.php.net to get a copy of this message | ||
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';
}